《HTML5PHP动态生成m3u8文件》由会员分享,可在线阅读,更多相关《HTML5PHP动态生成m3u8文件(5页珍藏版)》请在金锄头文库上搜索。
1、PHP 动态生成 m3u8 文件1 需求分析由于要在视频播放前(中)播放广告,一种 HLS 方案是在电影 m3u8 文件中插入广告的 m3u8,动态生成一个新的 m3u8 文件,播放这个新的 m3u8 文件,就可以实现播放视频时插播广告,或在播放电影之前播放广告。广告 m3u8 文件电影 m3u8 文件:2 PHP 源码PHP 程序读取这两个文件的 ts 部分内容,合成一个新的文件即可。PHP 源码参考:;/echo $mvname.;/echo date(ymdhis,time();/echo aa.file_exists(test.txt);/$fileName = test.m3u8;$
2、fileName = $adname . $mvname . .m3u8;/echo $fileName;if (file_exists(ad2mov8.m3u8) /echo file already exist;else/根据传进来的路径,解析出广告和电影切片文件所在路径/取最后一个/之前的内容即可$adSegSrc = substr($adsrc, 2, strrpos($adsrc, /) - 1);$movSegSrc = substr($moviesrc, 2, strrpos($moviesrc, /) - 1);/echo $adSegSrc .;/echo $movSegSr
3、c.;/读广告 m3u8 文件$fp = fopen($adsrc, r);if ($fp) for ($i = 1; !feof($fp); $i+) $lineStr = fgets($fp);if (false = strpos($lineStr, EXT-X-ENDLIST) if (strpos($lineStr, .ts) /echo $domainAddr.$adSegSrc.$lineStr;file_put_contents($fileName, $domainAddr . $adSegSrc . $lineStr, FILE_APPEND); else /echo $lin
4、eStr;file_put_contents($fileName, $lineStr, FILE_APPEND); else echo 打开文件失败 ;fclose($fp);/读电影 m3u8 文件$fp2 = fopen($moviesrc, r);if ($fp2) for ($i = 1; !feof($fp2); $i+) $lineStr = fgets($fp2);if (strpos($lineStr, .ts) /echo $domainAddr.$movSegSrc.$lineStr;file_put_contents($fileName, $domainAddr . $m
5、ovSegSrc . $lineStr, FILE_APPEND); else if (strpos($lineStr, EXTINF) /echo $lineStr;file_put_contents($fileName, $lineStr, FILE_APPEND); else echo 打开文件失败 ;fclose($fp2);/最后输出一个 m3u8 结尾file_put_contents($fileName, #EXT-X-ENDLIST, FILE_APPEND);/echo #EXT-X-ENDLIST;/返回 m3u8 file url 给调用者echo $domainAddr . /php/ . $fileName;?