現(xiàn)狀
看到網(wǎng)站上不錯(cuò)的視頻,想要保存到本地,怎么辦?
沖突
通過Chrome的Network面板看不到任何視頻格式的請求,反而有一個(gè)叫.m3u8的文件,和后續(xù)一坨.ts結(jié)尾的連續(xù)請求。

Chrome的Network面板的請求
原理
視頻網(wǎng)站為了提高視頻加載速度,并且節(jié)省帶寬資源,網(wǎng)站后臺把視頻做成小的視頻切片,都是以.ts結(jié)尾的文件,一般10秒一個(gè),每個(gè)都幾百kb很小。
這些文件的url保存到一個(gè).m3u8的文本文件里。
播放器通過加載.m3u8文件,這些文件連接起來,輸出到瀏覽器。
疑問
理論上把所有的.ts文件全部合并到一起就可以生成一個(gè)完整的MP4文件,應(yīng)該怎么做呢,寫腳本解析.m3u8,文件再按順序合并嗎?
這么普羅大眾的需求,應(yīng)該不止剛出現(xiàn)吧,有沒有工具可以使用?
答案是 肯定的
解決方案
廢話少說,直接上代碼。
ffmpeg -i "http://xxxx.com/file_name.m3u8" "save_video.mp4"
問題1.如何安裝ffmpeg
- 通過
brew安裝
brew install ffmpeg
安裝中可能會(huì)有錯(cuò)誤提示,需要執(zhí)行以下命令,安裝xcode命令行工具。
xcode-select --install
安裝成功后,再執(zhí)行如下命令:
brew install ffmpeg
我安裝的時(shí)候 提示我
xcode-select -- install然后我就照提示操作,這個(gè)命令完成后 再brew install ffmpeg安裝完成。
- 按照示例使用ffmpeg
ffmpeg -i http://aisylive.oss/xxxxxxx/xxxx/180209c001_3.m3u8 output.mp4
至此 視頻下載合并完成。
?