PHP не может играть .m3u8 живой эфир - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь воспроизвести видео в реальном времени .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);

}
?>

1 Ответ

0 голосов
/ 10 сентября 2018

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

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

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

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

...