Воспроизвести файл mp4 через php в HTML5 Video Tag в Chrome?

У меня проблема с файлами mp4. Html5 Video Tag может воспроизводить его с прямой ссылкой, но не с PHP Header (Mp3 отлично работает с заголовком PHP). Я попробовал почти решение в Stack, но до сих пор не решил свою проблему 🙁

Услышь мой код:

PHP mp4.php

error_reporting(0); $local_file = 'z.mp4';//'b.mp3'; $download_file = 'out.mp4'; // send headers header('Cache-control: private'); header('Content-Type: video/mp4'); header('Content-Length: '.filesize($local_file)); header('Content-Disposition: filename='.$download_file); header('Accept-Ranges: bytes'); header("Content-Transfer-Encoding: binary"); readfile($local_file); 

HTML

  <video controls="" autoplay="" name="media"> <source src="http://localhost/videos/mp4.php" type="video/mp4"> </video> 

Я не знаю, почему 🙁 Пожалуйста, помогите мне.

Благодаря,

ОК! Я решил свою проблему 🙂 Надеюсь, это поможет любому, у меня такая же проблема, как у меня

Просто используйте этот код:

 $file = 'local_file'; $newfile = 'outFile'; if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($newfile)); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; } 

Я думаю, вы добавили ненужные заголовки в ваш php-файл. Попробуй это:

 $local_file = 'z.mp4'; $size = filesize($local_file); header("Content-Type: video/mp4"); header("Content-Length: ".$size); readfile($local_file); 

И код HTML что-то вроде этого

 <video width="480" height="320" controls> <source src="mp4.php" type="video/mp4"> </video> 

EDIT: это также будет работать для mp3-файлов при изменении заголовка Content-Type и типа видео html.

 <video width="480" height="320" controls> <source src="mp3.php" type="audio/mpeg"> </video>