如何使输入文件名与输出文件名相同(ffmpeg)

如何使输入文件名与输出文件名相同(ffmpeg)
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=tilep创建值为 的环境变量tile
  • &&用于在一行中执行两个命令。
  • call是使两个命令按顺序执行所必需的。
  • %p%被替换为变量的值(tile在示例中替换为)。

相关内容