【问题标题】:How to batch convert using ffmpeg from command line如何从命令行使用 ffmpeg 进行批量转换
【发布时间】:2015-03-01 04:23:13
【问题描述】:

我有这个不错的单线来合并图像和声音并创建视频:

ffmpeg -i AlbumCover.png -i AnglersTunnel.flac AnglersTunnel.flv

我有一个完整的文件夹,里面装满了我想以完全相同的方式处理的其他声音。我怎样才能在我的整个文件夹上执行这个单行?每个声音文件只能使用 1 个图像文件。输出视频文件名应与音频文件名相同。

【问题讨论】:

  • 你提到了文件夹和其他声音。图像文件和输出文件的名称呢?有没有办法根据声音文件的名称来确定?例如,输出的视频文件是否总是使用声音文件的基本名称和不同的扩展名?
  • 每个声音文件只能使用 1 个图像文件。输出视频文件名应与音频文件名相同。
  • 好的——这很关键。您应该使用该信息更新您的问题。
  • ffmpeg in a bash pipe的可能重复

标签: bash ffmpeg


【解决方案1】:
for i in *.flac; do
  ffmpeg -i AlbumCover.png -i "$i" "${i%%.*}.flv"
done

【讨论】:

  • 这是 bash,不是批处理。
  • 这很好用,只是它只转换了没有空格的文件。你能帮忙吗?
  • 天哪,我刚刚注意到 bash 标签...@ThomasBuckler!批处理文件标签是 专门 用于 Windows 批处理文件的!现在我已经对正确答案投了反对票。好的。工作。
  • 我更新了答案。尝试在文件名周围加上引号。
  • 如果 FLV 容器格式的默认编码器是 libx264,请考虑添加 -pix_fmt yuv420p 作为输出选项;否则可以使用“更好”但兼容性较差的像素格式。如果使用名为 flv1 的蹩脚的旧编码器,则可以忽略此选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 2021-02-19
  • 2017-05-31
  • 2012-06-01
相关资源
最近更新 更多