Ffmpeg下載命令,ffmpeg -protocol_whitelist "file,http,https,rtp,udp,tcp,tls" -i D:\test\2.m3u8 -c copy tests.mp4
1、有時候在觀看手機短視頻,看到比較好的視頻,但是作者沒有提供下載,就感覺可惜!因此就想到了獲取視頻的真實地址來下載。
2、之前下載過fiddler軟件,卻一直放着沒來得及使用,因此在b站找了個視頻看了一下大概的使用方法。視頻地址
3、第一步,配置fiddler使其可以抓取HTTPS協議請求;
4、第二步,配置fiddler連接到手機。
1.
2. 證書安裝:使手機和電腦連接同一WiFi或者處於同一局域網內,鼠標懸停在Fiddler右上角的在線可以看到當前電腦的ip地址,手機打開瀏覽器訪問電腦ip地址加上默認端口8888,可以下載到憑證,通過手機的證書安裝器進行安裝。 如果手機無法訪問的話,可以看到第一步圖片中有個操作按鈕,點擊“操作”按鈕選擇“將根證書導出到桌面”,然后把證書發送到手機進行安裝。
3. 代理設置:安裝完成后,找到手機的WiFi設置,設置WiFi代理,端口號為默認的8888,地址為電腦ip地址,保存即可。此時,手機打開視頻APP,可以發現fiddler上已經已經有很多數據發現了。
4. 手機抓包:找到自己需要的視頻地址,這里面就得靠自己的操作了。
5、我得到一個.m3u8的文件,花費了好幾個小時寫python代碼。主要邏輯就是:1.遍歷給定的目錄獲取所有以.m3u8后綴結尾的文件名稱保存到列表;2.打開一個.m3u8文件,使用正則表達式提取出所有的.ts視頻鏈接,這里我得到的鏈接是沒有加密,如果有加密得另外處理。通過python多線程下載得到所有的以.ts為后綴的視頻,並保存到新目錄;3.合並.ts文件,繼續下一個文件的處理。這里我本來是要通過調用window的批處理命令實現合並,但是我想到了之前搞的時候發現的問題,合並完成的.mp4文件時間是錯誤的,無法通過時間條快進或后退。在搜索解決這個問題的時候,我看到了處理視頻的利器Ffmpeg,經過一番查找搜索后發現,使用Ffmpeg就直接可以完成.m3u8文件的下載了,不需要浪費一堆時間去自己編寫代碼下載。
6、 自己搜索下載FFmpeg,並將其bin目錄添加到系統環境變量,就可以使用了。Ffmpeg下載名,ffmpeg -protocol_whitelist "file,http,https,rtp,udp,tcp,tls" -i D:\test\2.m3u8 -c copy tests.mp4,i參數后面是.m3u8文件的完整地址,這里應該可以使用相對路徑,tests.mp4是合並后的文件名。
7、 完了!