在當前的視頻網站上,m3u8格式的視頻文件已成為廣泛使用的一種格式。同時,m3u8與php結合使用也得到了推廣。本文將一步步地介紹m3u8 php的基礎知識并提供一些有用的示例。
對于其他文件格式,直接在Web服務器上返回其內容,但對于m3u8文件,需要在這個文件內部指定其視頻的地址,因此PHP可能會用到m3u8文件獲取相關視頻的地址信息。
// 獲取視頻動態地址 function getLiveUrl() { $url = "http://example.com/play.m3u8"; $content = file_get_contents($url); $lines = explode("\n", $content); if (!empty($lines) && strpos($lines[0], "#EXTM3U") !== false) { foreach ($lines as $key =>$value) { if (strpos($value, "#EXTINF") !== false) { $key++; return $lines[$key]; } } } }
以上代碼可以解析m3u8文件并從其指定的地址獲取視頻動態地址的信息。但其僅能獲取第一條視頻片段地址信息。想要獲取整個播放列表中的所有地址信息,就需要使用下面這個函數:
// 獲取所有視頻動態地址 function getLiveUrls() { $url = "http://example.com/play.m3u8"; $content = file_get_contents($url); $lines = explode("\n", $content); if (!empty($lines) && strpos($lines[0], "#EXTM3U") !== false) { foreach ($lines as $key =>$value) { if (strpos($value, "#EXTINF") !== false) { $key++; $url = $lines[$key]; echo $url . "\n"; } } } }
根據以上兩個函數,可以獲取m3u8中所包含的所有視頻片段的動態下載地址。
如果想要讓用戶通過Web頁面訪問視頻,需要將m3u8按照約定規則拆分,并加上普通的HTML鏈接。
function splitM3U8ToLinks() { $url = "http://example.com/play.m3u8"; $content = file_get_contents($url); $lines = explode("\n", $content); if (!empty($lines) && strpos($lines[0], "#EXTM3U") !== false) { foreach ($lines as $key =>$value) { if (strpos($value, "#EXTINF") !== false) { $key++; $url = $lines[$key]; echo "<a href='" . $url . "'>視頻片段" . $key . "</a>
"; } } } }
以上代碼將該m3u8視頻文件的所有片段動態下載地址分別生成一個鏈接標簽,并在Web頁面上展示內容,用戶點擊鏈接就能夠訪問相應的視頻片段。
m3u8 php作為一種較為新興的使用方法,需要更多的探索和嘗試。不過,隨著越來越多的視頻網站選擇使用m3u8格式,相信這種技術的運用也會越來越廣泛。
上一篇css3變形scal