使用 FFmpeg 裁剪视频会使 tbn 值增加太多
Cropping video with FFmpeg increases the tbn value too much
原视频信息如下:
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2016-04-05 03:00:09
Duration: 00:01:50.09, start: 0.000000, bitrate: 8131 kb/s
Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt470bg/bt470bg/smpte170m), 1920x1080, 7995 kb/s, SAR 1:1 DAR 16:9, 44.49 fps, 90k tbr, 90k tbn, 180k tbc (default)
然后我使用这个 ffmpeg
命令裁剪视频:
ffmpeg -i file.mp4 -vf "crop=480:480:0:0" -b:v 2048k -preset ultrafast cropped.mp4
裁剪后的视频信息如下:
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.28.101
Duration: 00:01:50.16, start: 0.023220, bitrate: 1078 kb/s
Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1282x716 [SAR 1:1 DAR 641:358], 1002 kb/s, 44.49 fps, 44.49 tbr, 220455000.00 tbn, 88.98 tbc (default)
我phone的默认视频播放器不能播放这个视频。如果我使用 MX Player,我必须将解码器更改为 软件解码器(而不是 硬件)以打开它。
我注意到 tbn 值在重新编码后增加了。旧值是 90k。新值为 220455k。也许这是默认视频播放器不起作用的原因。
问题:为什么tbn
值这么大?如何避免?
您可以使用 video_track_timescale
:
为 MOV/MP4 文件指定 tbn
ffmpeg -i file.mp4 -vf "crop=480:480:0:0" -b:v 2048k -preset ultrafast \
-video_track_timescale 90000 cropped.mp4
(您可能还需要尝试明确设置输出帧率 -r 45
)
原视频信息如下:
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2016-04-05 03:00:09
Duration: 00:01:50.09, start: 0.000000, bitrate: 8131 kb/s
Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt470bg/bt470bg/smpte170m), 1920x1080, 7995 kb/s, SAR 1:1 DAR 16:9, 44.49 fps, 90k tbr, 90k tbn, 180k tbc (default)
然后我使用这个 ffmpeg
命令裁剪视频:
ffmpeg -i file.mp4 -vf "crop=480:480:0:0" -b:v 2048k -preset ultrafast cropped.mp4
裁剪后的视频信息如下:
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.28.101
Duration: 00:01:50.16, start: 0.023220, bitrate: 1078 kb/s
Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1282x716 [SAR 1:1 DAR 641:358], 1002 kb/s, 44.49 fps, 44.49 tbr, 220455000.00 tbn, 88.98 tbc (default)
我phone的默认视频播放器不能播放这个视频。如果我使用 MX Player,我必须将解码器更改为 软件解码器(而不是 硬件)以打开它。
我注意到 tbn 值在重新编码后增加了。旧值是 90k。新值为 220455k。也许这是默认视频播放器不起作用的原因。
问题:为什么tbn
值这么大?如何避免?
您可以使用 video_track_timescale
:
tbn
ffmpeg -i file.mp4 -vf "crop=480:480:0:0" -b:v 2048k -preset ultrafast \
-video_track_timescale 90000 cropped.mp4
(您可能还需要尝试明确设置输出帧率 -r 45
)