PHP无法播放.m3u8直播

问题描述 投票:0回答:1

我正在尝试使用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);

}
?>
php video-streaming
1个回答
1
投票

对于播放* .m3u8文件,客户端需要有一个支持HLS protocol的特定播放器。

要在浏览器中播放,您可以尝试使用videojs + videojs-contrib-hls插件。

要在桌面上播放,您可以尝试使用VLC media player。只需安装它并打开你的*.m3u8

要实现hls流,您可以使用nginx-vod Web服务器(修改后的nginx版本)。这是纽约时报提供的一个有效的dockerized example

© www.soinside.com 2019 - 2024. All rights reserved.