我有两个avi文件,
A.avi: fps 30 tbr 30 tbn 30 tbc 30.
B.avi: fps 2 tbr 2 tbn 2 tbc 2.
问题是如何在B.avi上设置相同的值30?
我有两个avi文件,
A.avi: fps 30 tbr 30 tbn 30 tbc 30.
B.avi: fps 2 tbr 2 tbn 2 tbc 2.
您可以通过使用 -video_track_timescale
命令来更改时间基准或 tbn
和 tbc
的值。例如,要将 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 似乎并不重要。 - Hermannffmpeg -i B.avi -codec:v mpeg4 -r 30 -qscale:v 2 -codec:a copy C.avi
这些选项的含义:
-codec:v mpeg4
- 使用名为 mpeg4
的编码器进行 MPEG-4 Part 2 视频编码。-r 30
- 设置输出帧率为 30。-qscale:v 2
- 使用恒定量化参数设置视频输出质量。建议范围是 2-5,适用于 mpeg4
。-codec:a copy
- 将音频从输入复制到输出,以避免重新编码。请注意,ffmpeg
会简单地复制帧以实现所需的输出帧率。如果您要降低帧率,则 ffmpeg
会删除帧。
ffmpeg -x264opts timebase=???
或者
ffmpeg -time_base
-r
设置帧率,使用-video_track_timescale
设置tbn
,请参考 ffmpeg concat compressed video result in wrong time span。 - LF00