【问题标题】:ffmpeg how to control fps tbr tbn tbc parametersffmpeg如何控制fps tbr tbn tbc参数
【发布时间】:2013-04-02 14:58:57
【问题描述】:

RT,我有两个 avi 文件,

A.avi: fps 30 tbr 30 tbn 30 tbc 30.
B.avi: fps 2 tbr 2 tbn 2 tbc 2.

问题是如何在 B.avi 上设置相同的值 30?

【问题讨论】:

标签: ffmpeg


【解决方案1】:

您可以使用指定的帧速率重新编码:

ffmpeg -i B.avi -codec:v mpeg4 -r 30 -qscale:v 2 -codec:a copy C.avi

这些选项的含义:

  • -codec:v mpeg4 - 使用名为 mpeg4 的编码器用于 MPEG-4 第 2 部分 视频。
  • -r 30 - 将输出帧速率设置为 30。
  • -qscale:v 2 - 使用恒定量化参数设置视频输出质量。 mpeg4 的推荐范围是 2-5。
  • -codec:a copy - 将音频从输入复制到输出以避免重新编码。

请注意,ffmpeg 将简单地复制帧以达到您想要的输出帧速率。相反,如果您降低帧速率 ffmpeg 会丢帧。

【讨论】:

    【解决方案2】:

    如果你想要更多的精度控制,不仅仅是控制 fps。还有 tbr、tbn、tbc。 假设您了解它的含义。 tbc,tbn,tbr

    检查

    ffmpeg -x264opts timebase=???
    

    ffmpeg -time_base
    

    或使用格式工厂,默认为您提供相同的 tbr、tbn、tbc。

    【讨论】:

    • ffmpeg -i input.mp4 -time_base 1/30 -c:a copy -c:v copy output.mp4 是我用的。 time_base 参数成功更改了“tbn”以匹配两个视频,而无需重新编码。如果在加入视频之前需要统一其他设置,您可能需要应用其他参数。
    【解决方案3】:

    您可以通过-video_track_timescale 更改时基或tbn tbc,例如。 G。将tbntbc 更改为30:

    ffmpeg -i 1.avi -c:v copy -video_track_timescale 30 1.avi
    

    【讨论】:

    • 这对我很有帮助。我有一个视频,我想在前面加上几秒钟的黑色。连接的视频播放速度要慢得多,有效帧速率仅为所需帧速率的四分之一。我能够使用ffmpeg -f lavfi -i color=size=1920x1080:rate=60:color=black -t 10 -video_track_timescale 60k black.mp4 生成一个与实际视频匹配的 tbn 视频。在这种情况下,tbc 似乎并不重要。
    猜你喜欢
    • 2011-03-13
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 2022-01-10
    相关资源
    最近更新 更多