網絡視頻m3u8解密及ts文件合並


網絡視頻m3u8解密及ts文件合並

參考了兩篇博客:

https://blog.csdn.net/weixin_41624645/article/details/95939510

https://blog.csdn.net/u014484783/article/details/79350392

 

再加上了自己的辦法寫的更詳細了一點:

直接用ffmpeg下載是排隊逐個下載,嫌慢就寫了個腳本多線程下載能快一些,,然后用ffmpeg合並ts文件。 

 

進入chrome開發者模式,然后Network選項卡,如果文件已經加載就刷新下頁面,可以看到以下文件列表:

需要下載兩個文件:.m3u8 文件和 .key 文件(一般名稱為:index.m3u8 和 key.key 

注:.ts文件就是視頻文件。

上面所示,index.m3u8有兩個同名文件,都下載下來看看哪個文件有下面的信息就用那個,文件名稱改為 index.m3u8。

 

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:13
#EXT-X-MEDIA-SEQUENCE:0

//這里是注釋,真實文件里不會有的,
//看看你的m3u8文件里有沒有這一行,如果有的話,那么恭喜你這個m3u8文件是加密的,請繼續往下看
//如果沒有這行的話,特別是沒有這個#EXT-X-KEY,那么同樣恭喜你,這個m3u8沒有加密,你直接百度vlc下載合並就行,也可根據本文章進行合並
#EXT-X-KEY:METHOD=AES-128,URI="http://www.example.com/20180125/key.key"

#EXTINF:12.5,
//下面的這個其實才是視頻真正的地址,你放在瀏覽器地址欄上直接回車是可以直接下載的
//不過這樣的鏈接在m3u8文件里會有很多,建議使用工具下載(迅雷)、ffmpeg、vlc等
//這里還可能出現GBDYO3576000.ts這種情況,其實是把前面的路徑省略了,可根據m3u8文件的路徑自行加上
http://www.example.com/20180125/GBDYO3576000.ts
#EXTINF:12.5,
http://www.example.com/20180125/GBDYO3576001.ts
#EXTINF:12.5,
http://www.example.com/20180125/GBDYO3576002.ts

如果你的文件是加密的,那就用到key.key文件。將下載好的所有的ts文件、index.m3u8、key.key放到一個文件夾中。

將URI改為你本地路徑的key文件(同目錄下直接填寫key.key),將所有ts也改為你本地的路徑(同目錄下ts直接文件名,省略目錄名)。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:13
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="/home/user/xxx/key.key"
#EXTINF:12.5,
/home/user/movie/GBDYO3576000.ts
#EXTINF:12.5,
/home/user/movie/GBDYO3576001.ts
#EXTINF:12.5,
/home/user/movie/GBDYO3576002.ts

接下來還需要下載一款工具ffmpeg,下載Static的那個版本就可以,安裝完成之后重啟。

重啟之后打開你index.m3u8所在的文件執行

ffmpeg -allowed_extensions ALL -i index.m3u8 -c copy out.mp4

如果報錯了執行

ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,crypto,tcp" -i index.m3u8 -c copy out.mp4

如果這里報錯了,那么打開你的index.m3u8文件,修改URI的路徑為網絡路徑(你下載時的路徑),然后執行

ffmpeg -protocol_whitelist "file,http,crypto,tcp" -i index.m3u8 -c copy out.ts

  

【ffmpeg網絡下載】

注意:下面就是直接用ffmpeg 從網絡下載合並,不過單線程排隊下載太慢,不知道有沒有並行下載命令沒研究過

ffmpeg -i "http://www.example.com/index.m3u8" -c copy out.ts

 

【我的方法】

是一般腳本執行把所有ts文件下載到本地目錄。

將 index.m3u8 和 key.key 文件放到 ts 文件所在目錄下,用下面命令解密合並:

ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,crypto,tcp" -i index.m3u8 -c copy out.mp4

  


免責聲明!

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



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