ffmpeg網(wǎng)頁視頻流m3u8 ts實現(xiàn)視頻下載
引言
現(xiàn)在很多視頻網(wǎng)站播放流視頻,都不是采用mp4/flv文件直接播放,而是采用m3u8/ts這種方式播放。
簡單說就是,網(wǎng)站后臺把視頻切片成成百上千個xx.ts文件,一般10秒一個,每個都幾百kb很小。然后通過xx.m3u8播放列表把這些文件連接起來。
通過Chrome DevTool的Network欄,我們可以清楚的看到加載過程:

我們直接點擊這個playlist.m3u8播放列表文件,在旁邊的preview欄中查看內(nèi)容,可以看到:
#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 ...........
那我們怎么下載呢?
下載視頻所有的ts切片文件
一般的思路是,想辦法把所有的ts切片文件下載下來,然后合成一個完整的視頻。
然而,配合xx.m3u8播放列表文件,我們可以直接用ffmpeg在線下載播放列表中所有的視頻,然后直接用ffmpeg合并為一個視頻。
我們就直接執(zhí)行這一句命令即可:
$ 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
然后就會看到這樣的下載過程:

為什么下載播放列表就能下載所有的切片文件?
因為播放列表里的都是相對路徑,既然我們有了播放列表的絕對路徑,那么其它所有文件的絕對路徑也就不難獲取了。
好在ffmpeg直接實現(xiàn)了這種播放列表一鍵下載的方式。
以上就是ffmpeg網(wǎng)頁視頻流m3u8 ts實現(xiàn)視頻下載的詳細內(nèi)容,更多關(guān)于ffmpeg網(wǎng)頁視頻流m3u8 ts下載的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Git基礎(chǔ)學(xué)習(xí)之tag標簽操作詳解
標簽對象(tag?object)?非常類似于一個提交對象,它包含一個標簽創(chuàng)建者信息、一個日期、一段注釋信息,以及一個指針。本文主要介紹了Git標簽tag的一些基礎(chǔ)操作,需要的可以參考一下2022-10-10
將Git存儲庫克隆到本地IntelliJ IDEA項目中的詳細教程
這篇文章主要介紹了將Git存儲庫克隆到本地IntelliJ IDEA項目中的詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
VSCode 安裝 Copilot 詳細過程和實例代碼(最新推薦)
Copilot 作為一款 AI 輔助編程工具,可以極大地提高開發(fā)效率,讓編程變得更加輕松愉快,在實際開發(fā)過程中,我們要注意審查和測試生成的代碼,確保其符合項目需求和標準,這篇文章主要介紹了VSCode 安裝 Copilot 詳細過程和實例,需要的朋友可以參考下2024-05-05
網(wǎng)站性能提高實戰(zhàn)經(jīng)驗點滴記錄
網(wǎng)站性能提高實戰(zhàn)經(jīng)驗點滴記錄,需要的朋友可以參考下。2011-02-02
HTTP協(xié)議詳解_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了HTTP協(xié)議詳解,超文本傳輸協(xié)議(HTTP)是一種通信協(xié)議,它允許將超文本標記語言(HTML)文檔從Web服務(wù)器傳送到客戶端的瀏覽器2017-07-07
VSCODE內(nèi)使用Jupyter模式運行backtrader不展示圖片、圖片尺寸無法自定義的解決方案
VSCODE中使用Jupyter模式運行backtrader時,圖片無法展示或調(diào)整尺寸,通過修改matplotlib的全局設(shè)置,并將配置文件傳遞給cerebro.plot,可以解決圖片展示和尺寸調(diào)整的問題,感興趣的朋友一起看看吧2025-02-02
使用git?config?--global設(shè)置用戶名和郵件問題
這篇文章主要介紹了使用git?config?--global設(shè)置用戶名和郵件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
301重定向代碼合集(iis,asp,php,asp.net,apache)
腳本之家將SEO工作中所需要的301轉(zhuǎn)向代碼進行了整理,收藏并分享,以備查閱。2011-02-02

