如何下載某些 flash 在線視頻 並使用ffmpeg下載分段並加密的m3u8視頻流


有些網站使用 flash 在線播放視頻,不方便進行下載。

可以使用 Chrome 的 Developer Tools 模擬成 iOS 設備(通過修改 User Agent),然后取得 h.264 視頻流的地址。

 

取得 h.264 視頻流的地址

1. 在頁面上打開 Developer Tools (開發者工具),點擊坐上的"手機"按鈕(如下圖)。

 

2. 在左邊 "Device" 選擇 "Apple iPhone" 或 "Apple iPad" 等設備,刷新頁面。

3. 這時頁面應該會提供 html5 的視頻播放支持,定位到播放器元素,找到數據源鏈接(通常是一個 m3u8 文件)。

 

如何下載分段並加密的 .m3u8 視頻流

1. 下載一個編譯好的 ffmpeg 可執行文件(http://ffmpeg.org)。

2. 使用命令 ffmpeg -i http://...m3u8 -c copy out.mkv 將視頻流下載並合並成 out.mkv。

4. 如果視頻流並未加密,或者加密密鑰(URI 存在於 m3u8 中)可以直接通過 http 訪問到,通常可以正常下載(這種情況一般也可以用各種瀏覽器視頻下載插件下載),但如果 URI 通過 https 協議,或者有 cookies 驗證等機制,則需要手動下載密鑰。

5. m3u8 中的密鑰通常是這樣的:#EXT-X-KEY:METHOD=AES-128,URI="https://xxx" 這時需要用能夠在線觀看到這個視頻的瀏覽器會話去訪問這個 URI (通過 cookies 驗證),並保存到本地,把 m3u8 也保存到本地,密鑰的 URI 改為下載好的本地路徑(一個 m3u8 中可能有多個密鑰,需要一一處理)。

6. 再次執行 ffmpeg 的命令,即可正常下載。

 

注:

使用 ffmpeg 無法直接下載 m3u8 內容的情況:

1. m3u8 中的密鑰的 URI 是走 https 協議的(這時 ffmpeg 一般會提示不支持 https 協議,但可以通過自己編譯一個 ffmpeg 來打開 https 的支持)。

2. URI 有 cookies 認證(這種情況應該只能用瀏覽器先下載密鑰了)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM