ffmpeg 图像序列指定输入帧率

Posted

技术标签:

【中文标题】ffmpeg 图像序列指定输入帧率【英文标题】:ffmpeg image sequence specify input framerate 【发布时间】:2017-08-18 22:11:37 【问题描述】:

我正在尝试设置一系列图像(许多文件夹)的输入帧率:

如果我使用单个图像序列,一切正常:

ffmpeg -framerate 30 -i folder01/img%05d.jpeg -filter:v "crop=640:360" -r 30 outfilm.mp4

然后,因为我有更多文件夹(我无法让 -i concat:filesequence1|filesequence2 工作)我尝试使用:

ffmpeg -framerate 30 -f concat -safe 0 -i filelist.txt -filter:v "crop=640:360" -r 30 outfilm.mp4

但我收到一个错误:

Option framerate not found.

那么如果我省略了-framerate 30,一切都会顺利进行,但 ffmpeg 默认输入图像序列的值为 25 fps。

关于如何解决这个问题的任何想法?

【问题讨论】:

如果您查看手册,-framerate 选项仅对image2 解复用器有效。当您使用-f concat 时,您正在使用另一个不支持该选项的解复用器(concat 解复用器)。 【参考方案1】:

使用

ffmpeg -f concat -safe 0 -r 30 -i filelist.txt -filter:v "crop=640:360" -r 30 outfilm.mp4

-r 用作输入选项时,它会以给定的速率生成新的时间戳并将其设置为输入帧速率。

【讨论】:

注意到@Mulvya,我最初错过了这个,因为我将-r 30 放在-f concat 之前。谢谢! 为什么这么多人使用 filelist.txt 等?这就是我如何将一系列名为 pic_001.png 的图像转换为任何结尾(它会自动检测到它)。 只需指定一个文件模式和一个带有 -r 的帧速率(我的是 0.25,这意味着每个图像显示 4秒)。这是命令:ffmpeg -r 0.25 -i "pic_%03d.png" -c:v libx264 -pix_fmt yuv420p -preset veryslow output.mp4

以上是关于ffmpeg 图像序列指定输入帧率的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg 如何指定输入特殊视频格式

如何使 ffmpeg 推流帧率5

[技术杂谈][转载]ffmpeg压缩视频几个参数解析

用ffmpeg获取一WMV文件帧率,得到帧率是1000,但用播放器播放查帧率是25

FFmpeg常用命令

FFmpeg常用命令