需求
在網路上要下載影片時,遇到影片嵌入在網頁裡無法下載的問題。
使用過
yt-dlp "在網站中的影片嵌入連結" --referer "該網站的網址"
無效。使用過
yt-dlp "影片請求網址"
發現下載下來的影片只有畫面或聲音。
解法
仔細觀察這支影片有哪些可請求檔案的
.m3u8
網路請求。1 2 3 4 5 6 7 8 9 10
#EXTM3U #EXT-X-VERSION:7 #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",LANGUAGE="eng",NAME="English",AUTOSELECT=YES,DEFAULT=YES,URI="c74f43166cf91fa68d78e5c446527f70_mpegts-aac-1-eng.m3u8" #EXT-X-STREAM-INF:BANDWIDTH=1885250,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="audio" c74f43166cf91fa68d78e5c446527f70_mpegts-h264-640:360.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=3614257,CODECS="avc1.640028,mp4a.40.2",RESOLUTION=1920x1080,AUDIO="audio" c74f43166cf91fa68d78e5c446527f70_mpegts-h264-1920:1080.m3u8
用相同方式下載網址差異最大的兩個。
會發現一個是有聲音但沒畫面的影片檔,另一個是沒聲音但有畫面的影片檔。
開啟終端機依照語法輸入指令,來合併兩個檔案,就可以得到完整的影片檔。
語法:
1
ffmpeg -i "有畫面沒聲音的影片.mp4" -i "沒畫面有聲音的影片.mp4" -c:v copy -c:a aac "合併後的影片.mp4"
範例:
1
ffmpeg -i "c74f43166cf91fa68d78e5c446527f70_mpegts-h264-1920:1080.mp4" -i "c74f43166cf91fa68d78e5c446527f70_mpegts-aac-1-eng.mp4" -c:v copy -c:a aac "c74f43166cf91fa68d78e5c446527f70.mp4"