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 图像序列指定输入帧率的主要内容,如果未能解决你的问题,请参考以下文章