ffmpeg如何控制fps tbr tbn tbc参数

ffmpeg如何控制fps tbr tbn tbc参数,ffmpeg,Ffmpeg,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 -i B.avi -codec:v mpeg4 -r 30 -qscale:v 2 -codec:a copy C.avi 这些选项意味着什么: -编解码器:v mpeg4-对于MPEG-4第2部分,使用名为mpeg4的编码器 录像带 -r3

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 -i B.avi -codec:v mpeg4 -r 30 -qscale:v 2 -codec:a copy C.avi
这些选项意味着什么:

  • -编解码器:v mpeg4
    -对于MPEG-4第2部分,使用名为
    mpeg4
    的编码器 录像带
  • -r30
    -将输出帧速率设置为30
  • -qscale:v2
    -使用恒定量化参数设置视频输出质量。对于
    mpeg4
    ,建议的范围为2-5
  • -编解码器:副本
    -将音频从输入复制到输出,以避免重新编码

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

如果您想要更多的预切变控制,而不仅仅是控制fps。还有tbr,tbn,tbc。 假设你明白这是什么意思。

检查

ffmpeg -x264opts timebase=???


或者使用format factory,默认为相同的tbr、tbn、tbc。

您可以通过
-video\u track\u timescale
更改时基或
tbn
tbc
,例如。G要将
tbn
tbc
更改为30:

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

非常感谢,我正在使用cmd工具:)这些问题属于使用
-r
设置
fps
-video\u track\u timescale
设置
tbn
,请参阅ffmpeg-i input.mp4-time\u base 1/30-c:a copy-c:v copy output.mp4是我使用的。time_base参数成功地将“tbn”更改为在两个视频上匹配,而无需重新编码。如果在加入视频之前其他设置需要统一,您可能需要应用其他参数。这对我很有帮助。我有一个视频,我想用几秒钟的黑色来预告。连接的视频播放速度要慢得多,有效帧速率仅为所需帧速率的四分之一。我能够使用
ffmpeg-f lavfi-I color=size=1920x1080:rate=60:color=black-t10-video\u track\u timescale 60k black.mp4
生成tbn与实际视频匹配的视频。在这种情况下,tbc似乎并不重要。
ffmpeg -i 1.avi -c:v copy -video_track_timescale 30 1.avi