網頁視頻流m3u8/ts視頻下載

如今不少視頻網站播放流視頻,都不是採用mp4/flv文件直接播放,而是採用m3u8/ts這種方式播放。網站

簡單說就是,網站後臺把視頻切片成成百上千個xx.ts文件,通常10秒一個,每一個都幾百kb很小。而後經過xx.m3u8播放列表把這些文件鏈接起來。spa

經過Chrome DevTool的Network欄,咱們能夠清楚的看到加載過程:code

image

咱們直接點擊這個playlist.m3u8播放列表文件,在旁邊的preview欄中查看內容,能夠看到:視頻

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:11
#EXTINF:5.250000,
out000.ts
#EXTINF:9.500000,
out001.ts
#EXTINF:8.375000,
out002.ts
#EXTINF:5.375000,
out003.ts
#EXTINF:9.000000,
out004.ts
...........

那咱們怎麼下載呢?blog

下載視頻全部的ts切片文件

通常的思路是,想辦法把全部的ts切片文件下載下來,而後合成一個完整的視頻。
然而,配合xx.m3u8播放列表文件,咱們能夠直接用ffmpeg在線下載播放列表中全部的視頻,而後直接用ffmpeg合併爲一個視頻。ip

咱們就直接執行這一句命令便可:rem

$ ffmpeg -i <m3u8-path> -c copy OUTPUT.mp4
$ ffmpeg -i <m3u8-path> -vcodec copy -acodec copy OUTPUT.mp4

# 例如:
ffmpeg -i https://v6.438vip.com/2018/10/17/3JAHPTdvPhQb9LrE/playlist.m3u8 -c copy  OUTPUT.mp4

而後就會看到這樣的下載過程:it

image

爲何下載播放列表就能下載全部的切片文件?
由於播放列表裏的都是相對路徑,既然咱們有了播放列表的絕對路徑,那麼其它全部文件的絕對路徑也就不難獲取了。
好在ffmpeg直接實現了這種播放列表一鍵下載的方式。class

相關文章
相關標籤/搜索