【问题标题】:ffmpeg framerate inconsistentffmpeg 帧率不一致
【发布时间】:2021-11-10 20:58:05
【问题描述】:

ffmpeg 在我的代码中的两个不同位置使用相同的参数但不同的输入运行。使用 -framerate 将帧速率设置为 12fps。在一种情况下,输出视频每次都能很好地匹配帧率。在另一种情况下,视频每 15 个输入帧返回 1 秒的视频,但又是一致的。什么可能导致差异?

参数: -y -framerate 12 -itsoffset -654ms -i "C:\path/%06d.JPG" -i "C:\path/audio.mp3" -map 0:v:0 -map 1:a:0 -vf scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:-1:-1:color=black -acodec aac -vcodec libx264 -ar 48000 -pix_fmt yuv420p -movflags +faststart "C:\path\output.mp4 "

调用它的代码有许多不同之处,但我无法理解其中任何一个会如何影响帧速率。我尝试使用任意不同长度之一切换 mp3 以查看是否有效果,但它没有。这样就只剩下图像输入了。

edit:所以它变得陌生。我重现了这两种情况并修改了每种情况的帧率值以检查发生了什么。几乎在每一种情况下,我都获得了比预期更多的视频秒数。我用 400 帧和 5 秒的音频进行这些测试,以确保缺少 -shortest 不是一个因素。我唯一一次获得完全准确的帧速率是在将其设置为 1 时。在其他所有情况下(除了始终有效的逐字 12fps 之外)视频太短了 5-15%。这使得我的代码的任何一部分如何产生好的结果有点神秘。

【问题讨论】:

  • 它的偏移量是什么?
  • 音频和视频是分开录制的,即两个录制之间的开始时间的差异来同步它们。那里有一个问题,它不应该是这么大的数字,但我假设这是我的录制代码中的问题,而不是 ffmpeg 中的问题。

标签: windows video ffmpeg command-line-interface


【解决方案1】:

事实证明,只需将 -framerate 替换为 -r 即可解决此问题。如果有人能解释一下,我仍然希望能对此做出一些澄清。

【讨论】:

  • 嗯,但是 -r 使偏移停止工作。此外,问题似乎部分是由购买声音文件的比特率引起的。当我更改录音设置时,这似乎影响了我使用 -framerate 12 获得的帧率。所以现在我更加困惑了。
猜你喜欢
  • 1970-01-01
  • 2015-12-25
  • 2013-11-24
  • 2019-11-20
  • 2012-10-09
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 2021-03-26
相关资源
最近更新 更多