我正在尝试使用avconv
针对特定数量的帧从单个图像创建视频。我正在使用`loop'选项,但我只能指定我希望视频以秒为单位的时间。我目前正在运行以下命令:
avconv -loop 1 -i image.jpg -t 10 output.avi
在文档中,-t
选项如下所示:
' - t持续时间(输出)' 在持续时间达到持续时间后停止写入输出。持续时间可以是以秒为单位的数字,也可以是hh:mm:ss [.xxx]形式。
“[。xxx]”参数是否意味着帧?
更新:我现在运行以下代码:
avconv -loop 1 -f image2 -i 1.jpg -t 00:00:00.4 -r 25 please_work.avi
然后我运行以下内容从我创建的视频中提取帧,看看它是否是正确的帧数:
avconv -i please_work.avi %d.jpg
我最终获得10张.jpg图像而不是4.我设置的参数是否不正确?
答案 0 :(得分:0)
时间戳的[.xxx]部分以毫秒为单位。因此,如果您需要特定数量的帧,则在60fps的情况下将其乘以帧速率(16.67)。
因此,如果您想要60帧/秒的50帧视频,则将50 * 16.67 = 833 [截断为整数]乘以并将其设置为字符串:00:00:00。[833]
以下命令实现了tiis:
avconv -loop 1 -f image2 -i 1.jpg -t 00:00:00.833 -r 60 -shortest please_work.avi
frame= 50 fps= 0 q=2.0 Lsize= 130kB time=0.83 bitrate=1276.7kbits/s