我想从视频中提取帧作为图像,并且希望将每个图像命名为.我怎样才能做到这一点?InputFileName_number.bmp
我尝试了以下命令:
ffmpeg -i clip.mp4 fr1/$filename%d.jpg -hide_banner
但它没有按我想要的方式工作。例如,我想得到clip_1.bmp
,但我得到的是1.bmp
。
我正在尝试将它与 GNU 并行一起使用来提取多个视频的图像,而我对两者都是新手,所以我想要一些动态文件命名之王input
-> input_number.bmp
。
答案1
$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 parallel 一起使用,您可以使用parallel 的-i
选项:
-i
通常,命令会在命令行末尾传递参数。使用此选项,命令中的任何“{}”实例都将替换为参数。
生成的命令行可能很简单
parallel -i ffmpeg -i {} fr1/{}_%d.jpg -hide_banner -- *.mp4
如果您可以接受输出文件中的扩展名。
请注意,您实际上可能不想在传统硬盘上并行运行它,因为并发 I/O 会减慢速度。
编辑:正如 @DonHolgo 所指出的,修复了变量引用。