Ubuntu

如何在ffmpeg的輸出文件名中包含輸入文件名

  • April 28, 2019

我想從影片中提取幀作為圖像,並且我希望將每個圖像命名為. 我怎樣才能做到這一點?*InputFileName*_*number*.bmp

我嘗試了以下命令:

ffmpeg -i clip.mp4 fr1/$filename%d.jpg -hide_banner

但它沒有按我的意願工作。例如,clip_1.bmp我想得到 ,但我得到的是1.bmp

我正在嘗試將它與 GNU 並行使用來提取多個影片的圖像,而且我對這兩者都是新手,所以我想要一些動態文件命名之王input-> input_number.bmp

$filename作為 shell 變數處理。

關於什麼

ffmpeg -i clip.mp4 fr1/clip_%d.jpg -hide_banner

或者

$mp4filename=clip
ffmpeg -i ${mp4filename}.mp4 fr1/${mp4filename}_%d.jpg -hide_banner

?

**更新:**要與 gnu 並行使用,您可以使用並行-i選項:

-i

通常該命令在其命令行末尾傳遞參數。使用此選項,命令中的任何“{}”實例都將替換為參數。

生成的命令行可能很簡單

parallel -i ffmpeg -i {} fr1/{}_%d.jpg -hide_banner -- *.mp4

如果您可以使用輸出文件中的副檔名。

請注意,您實際上可能不想在傳統硬碟上並行執行它,因為並發 i/o 會減慢它的速度。

**編輯:**修復了@DonHolgo 指出的變數引用。

引用自:https://unix.stackexchange.com/questions/516019