2022年3月28日 星期一

youtbue-dl : 下載 ffmpeg 無法下載的串流影片

2022年3月28日 星期一

在前一篇「雄 : FFmpeg : 下載 .m3u8 播放清單的串流影片」中提到有些串流影片的影片片段被包裝成圖片檔,使用 youtube-dl 或 FFmpeg 開啟串流播放清單 .m3u8 檔後,會出現類似底下的錯誤訊息而無法下載影片:


[hls @ 00000000005aff80] Could not find codec parameters for stream 0 (Video: png, none(pc)): unspecif

Consider increasing the value for the 'analyzeduration' and 'probesize' options


仔細想想,造成 youtube-dl 無法下載的原因,應該是被 ffmpeg 給中斷了,因為如果使用 ffmpeg 來下載相同的影片,也會出現一樣的錯誤訊息而中斷。

「怨有頭,債有主。」找到原因了,那就試著看看 youtube-dl 有沒有不使用 ffmpeg 來下載串流檔案的參數。查了一下,還真有!

下面這兩個參數可以控制 youtube-dl 下載串流時使用的工具:

  • --hls-prefer-native
  • --hls-prefer-ffmpeg

從參數的名稱應該不難看出哪一個是使用 ffmpeg,哪一個是不使用 ffmpeg。

如果遇到被包裝成圖片檔的串流影片,而 ffmpeg 又無法被中斷下載,可以試試看,用 youtube-dl 的「 native HLS downloader」,在指令中加入:

--hls-prefer-native

當然囉!下載完,在檔案的最前面還是會有 PNG 的資料,一樣的,用工具去掉最前面的幾個 bytes,影片就能正常播放了。

後記

再搭配 youtube-dl 「--exec」選項,就可以在下載影片完,接著使用 ffmpeg 來將影片轉為正常的格式了。詳情參考於 2022.05.24 的完整做法:

相關文章




沒有留言:

張貼留言

 
雄::gsyan © 2009. Design by Pocket