我正在尝试使用PHP的.m3u8
通过默认的网络浏览器播放器播放实时流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 :(得分:1)
要播放* .m3u8文件,客户端需要具有支持HLS protocol的特定播放器。
要在浏览器中播放,您可以尝试使用videojs + videojs-contrib-hls插件。
要在台式机上播放,您可以尝试使用VLC media player。只需安装它并打开您的*.m3u8
。
要实现hls流式传输,您可以使用nginx-vod Web服务器(已修改的nginx版本)。这是《纽约时报》提供的dockerized example工作。