FFmpeg Past duration x.xxxxxx too large 解决方案(-vsync 0)

在使用FFmpeg进行视频处理时,遇到'Past duration too large'的警告。通过在命令中添加参数`-vsync 0`可以解决该问题。此外,调整`thread_queue_size`到128以应对多输入可能出现的错误,设置帧率`-r`来匹配源视频,并使用`-vn`禁止视频输入,以确保音频质量。
摘要由CSDN通过智能技术生成

前言:

之前做视频补帧,在视频转图像序列和图像序列+原始音频合成时一直遇到一些奇怪的问题。

正文:

今天碰到的是

Past duration 2.999992 too large

警告,这个警告碰到的原因有很多,我自己碰到的也不知道是因为什么,但是靠在图像序列输入前加参数-vsync 0就可以解决,大家捧到这个问题也可以这样试试,下面是我的命令


ffmpeg -thread_queue_size 128 -r 89.91 -vsync 0 -pattern_type glob -i "/xxx/is/*.png" -vn -i /xxx/ori.mp4 -vcodec h264 -pix_fmt yuv420p /xxx/out.mp4 -y

-thread__queue_size:多输入需要把thread__queue_size 调大一点,默认是8,说实话我也不知道这个参数到底影响了什么,有时候做推流默认的8会出错,我设到128是为了保险点,8问题也不大,大家用到多输入时碰到问题可以试试把这个调大。

-r:不用多说了,定义输入图像序列的帧率,我原视频是29.97fps,所以翻了三倍,就是89.91。

-vsync:问题所在。

-pattern_type:我的照片序列命名不是按照00001,00002这样的,glob好像是一种排序方式。

-i:这个is文件夹下所有png格式的图像都要。如果你是有序排列的00001,00002大可以不用-pattern

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值