如何通过m3u8地址获取多种清晰度m3u8地址
发布时间:2019-06-25 10:32:48不管是上传还是api方式入库,保存到系统的m3u8地址只有一个,但是在实际情况可能会需要调用到不同的清晰度地址。这里用php给大家一个示范思路,以后就知道怎么去应用了。
<?php
$url=$_GET['url'];//'http://localhost:2100/20190615/7W0Vaxpi/index.m3u8'
$URL2ARR=parse_url($url);
$DIRPATH=explode('/',$URL2ARR['path']);
$PORT=$URL2ARR['port']?':'.$URL2ARR['port']:'';
$INDEXM3U8_URL=$URL2ARR['scheme'].'://'.$URL2ARR['host'].$PORT.'/'.$DIRPATH[1].'/'.$DIRPATH[2];
/**
* 拼接入口M3U8
* */
$M3U8_CONTENT=file_get_contents($INDEXM3U8_URL.'/index.m3u8');
/**
* 获取入口M3U8内容
*/
preg_match_all('/(d+)kb/hls/i',$M3U8_CONTENT,$BITARR);
/**
* 正则提取多码率
* */
foreach ($BITARR[1] as $key => $value) {
$BITJSON[$value]=[
'url'=>$INDEXM3U8_URL.'/'.$value.'kb/hls/index.m3u8'
];
}
echo json_encode($BITJSON);
以上示范通过一个云转码输出的一个m3u8地址,来获取该视频下面多种清晰度的m3u8地址。
应用场景:
1、通过会员权限控制,输出不同清晰度的视频地址。
2、手机app播放器需要用到多种清晰度切换。