m3u8視頻下載


什么是m3u8

m3u8可以理解為一個索引文件,里邊記錄了視頻文件的分片信息,也就是一堆.ts文件的地址。
為了加快視頻的訪問和存儲效率,網絡上的視頻文件一般要做分片處理。舉個例子,比如一個視頻文件有100m,假設切片大下是1m,我們可以將這個大文件切成100個小文件。切割好以后,將這一堆文件按順序做一個編號,然后保存到雲存儲上,每個切片存儲后都會得到一個唯一的地址,我們將切片文件的編號信息和地址信息寫到一個文件里,這個文件就是m3u8文件。
了解了m3u8是什么,那么我們想要下載一個視頻文件,邏輯就很清晰了,步驟如下:
1、獲取/下載m3u8文件
2、解析m3u8文件的信息,獲得切片后的小文件的下載地址
3、下載所有的切片文件
4、按順序合並所有的切片文件
我們要清楚,當前我們遇到的問題,有99%是別人已經遇到過的,要實現上述步驟其實很簡單,無非是文件的下載解析與切片合並,但是伸手黨怎么可能自己寫代碼,於是有了下邊的故事...

N_m3u8DL-CLI

這是GitHub桑的一個開源項目,用來下載m3u8視頻的
https://github.com/nilaoda/N_m3u8DL-CLI

下載工具

工具的歷史版本地址
https://github.com/nilaoda/N_m3u8DL-CLI/releases
找到最新的版本,我這里是v2.99,找到N_m3u8DL-CLI_v2.9.9_with_ffmpeg_and_SimpleG.zip,點擊下載
https://github.com/nilaoda/N_m3u8DL-CLI/releases/download/2.9.9/N_m3u8DL-CLI_v2.9.9_with_ffmpeg_and_SimpleG.zipimage.png

使用工具

解壓下載好的zip文件

image.png

雙擊N_m3u8DL-CLI-SimpleG.exe打開界面填寫信息

保存目錄和m3u8的地址必填,視頻標題可以寫也可以不寫,勾選使用二進制合並,和合並后刪除分片
點擊go按鈕
image.png
下載好后會得到一個大的ts文件,這個ts文件是可以直接用播放器打開的,如果看着不舒服,可以用視頻轉碼工具將ts文件轉成mp4
可以用大家熟悉的格式工廠,但是程序員怎么可能再去下載安裝這么個東西,太費勁了,於是便有了下邊的故事。。。

ffmpeg

FFmpeg 是一個庫和工具的集合,用於處理音頻、視頻、字幕和相關元數據等多媒體內容。已經在GitHub上開源,地址https://github.com/FFmpeg/FFmpeg
看介紹是很簡單吧,但是國內所有的播放器包括QQ音影、愛奇藝、暴風音影,包括國外的vlc、potplayer等國際知名的播放器都調用了ffmpeg的api,具體有多np我就不多說了吧。
很顯然,我們上邊下載的N_m3u8DL-CLI也同樣調用了ffmpeg,所以,我們可以直接在命令行里輸入一個命令將ts文件轉為mp4,命令如下:

ffmpeg -i "ts文件路徑" -c copy "mp4文件路徑"


免責聲明!

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



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