Php не может воспроизводить прямую трансляцию .m3u8

Я пытаюсь воспроизвести видео .m3u8 в прямом эфире через проигрыватель веб-браузера по умолчанию, используя PHP readfile(). Однако проигрыватель только загружает видео, но не может его воспроизвести. Кроме того, я не получаю никаких ошибок. Используя тот же код, я могу без проблем воспроизводить предварительно записанные видео (например, .mp4, предварительно записанные .m3u8). Любые идеи?

<?php

//Live video URL: https://abclive1-lh.akamaihd.net/i/abc_live01@423395/master.m3u8

//Pre recorded video URL: http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8

$url = $_GET['url'];

if (!$url) {
print "no URL";
} 


else {


$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$lastUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

header('Content-Type: application/x-mpegurl'); 

readfile($lastUrl); 

curl_close($ch);

}
?>
0
0
1 890
1

Ответы 1

Для воспроизведения файлов * .m3u8 у клиента должен быть специальный проигрыватель, поддерживающий Протокол HLS.

Для игры в браузере вы можете попробовать плагин videojs + videojs-contrib-hls.

Для игры на рабочем столе вы можете попробовать использовать Медиаплеер VLC. Просто установите его и откройте свой *.m3u8.

Для реализации потоковой передачи hls вы можете использовать веб-сервер nginx-vod (модифицированная версия nginx). Вот рабочий Докеризованный пример, предоставленный NY Times.

Спасибо за разъяснения. Однако файл m3u8 безупречно воспроизводится при вводе непосредственно в веб-браузер, в моем случае chrome. Например, этот URL-адрес воспроизводится в веб-браузере по умолчанию без каких-либо проблем: abclive1-lh.akamaihd.net/i/abc_live01@423395/master.m3u8, однако, когда я пытаюсь выполнить его с помощью своего кода, он загружает проигрыватель, но не запускает видео. Есть ли заголовки, которые могут отсутствовать в коде?

Beff Jezos 10.09.2018 12:18

Не могли бы вы подробнее рассказать о том, как вы проигрываете файлы m3u8? Какой веб-сервер вы используете? Какой видеоплеер?

Prisacari Dmitrii 10.09.2018 13:02

Я пытаюсь воспроизвести видео через браузер по умолчанию, используя сервер в качестве прокси. Предварительно записанные видеофайлы воспроизводятся безупречно даже во внешних проигрывателях, таких как vlc. Я выполняю код таким образом: myserver.com/code.php?url=http://linktolivestream.m3u8. Единственная проблема, с которой я столкнулся, - это воспроизведение видео в реальном времени.

Beff Jezos 10.09.2018 13:47

Другие вопросы по теме