ffmpeg -i "D:\aaaa\bbb\cccc\dddd\abc.ts" -frames 1 -vf "select=not(mod(n\,18)),scale=200:100,tile=12x12" "D:\aaaa\bbb\cccc\dddd\tile.png"
我想问一下如何才能自动将输出文件名转换为输入文件名?
例如,如果视频名称为 abc.ts,则图像名称必须是 abc.png
答案1
据我所知,FFmpeg 中没有内置选项,所以我们必须使用中间变量。
我的回答假设使用 Windows shell 执行。
根据关注帖子,当在同一行设置变量并使用它时,我们可能需要使用call
命令来强制在该行进行第二次解析。
使用变量的示例:
set p=tile&& call ffmpeg -i "D:\aaaa\bbb\cccc\dddd\%p%.ts" -frames 1 -vf "select=not(mod(n\,18)),scale=200:100,tile=12x12" "D:\aaaa\bbb\cccc\dddd\%p%.png"
set p=tile
p
创建值为 的环境变量tile
。&&
用于在一行中执行两个命令。call
是使两个命令按顺序执行所必需的。%p%
被替换为变量的值(tile
在示例中替换为)。