ffmpeg如何控制fps tbr tbn tbc参数
Posted
技术标签:
【中文标题】ffmpeg如何控制fps tbr tbn tbc参数【英文标题】:ffmpeg how to control fps tbr tbn tbc parameters 【发布时间】: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?
【问题讨论】:
非常感谢,我正在使用 cmd-tools :) 此类问题属于video.stackexchange.com/questions/tagged/ffmpeg 用-r
设置fps
,-video_track_timescale
设置tbn
,参考ffmpeg concat compressed video result in wrong time span
【参考方案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。将tbn
和tbc
更改为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 似乎并不重要。以上是关于ffmpeg如何控制fps tbr tbn tbc参数的主要内容,如果未能解决你的问题,请参考以下文章