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

#php #video #mp4

#php #Видео #МР4

Вопрос:

У меня проблема с файлами mp4. Тег Html5 Video может воспроизводить его по прямой ссылке, но не с заголовком PHP (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>
  

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

Спасибо,

Ответ №1:

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

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

 $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;
}
  

Ответ №2:

Я думаю, вы добавили ненужные заголовки в свой 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>
  

РЕДАКТИРОВАТЬ: Это также будет работать для файлов mp3 при изменении заголовка Content-Type и типа html video.

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

Комментарии:

1. Спасибо за ваш ответ 🙂 Я пробовал это и все еще не работает: ( mp3.php и прямая ссылка (как mp3, так и mp4) работает нормально, но mp4.php не является

2. Возможно, что-то не так с вашим файлом mp4. Вы пробовали другой?

3. Да, я пробовал другие файлы. Они также не сработали 🙂