我正在尝试使用PHP的readfile()通过默认的web浏览器播放器播放实时流.m3u8视频。然而,播放器似乎只加载了视频,但无法播放。此外,我没有收到任何错误。使用相同的代码,我能够播放预先录制的视频(例如.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);
}
?>发布于 2018-09-10 16:48:27
为了播放*.m3u8文件,客户端需要有一个支持HLS protocol的特定播放器。
要在浏览器中播放,你可以尝试videojs + videojs-contrib-hls插件。
对于在桌面上玩游戏,你可以尝试使用VLC media player。只需安装它并打开您的*.m3u8。
要实现hls流,您可以使用nginx-vod web服务器(修改后的nginx版本)。这是纽约时报提供的一个有效的dockerized example。
https://stackoverflow.com/questions/52253667
复制相似问题