我有一个剪辑视频的工作流程,如下所示:
ffmpeg -i input.mp4 -ss 5.000000 -map 0:v -map 0:a? -c:v copy -c:a copy output.mp4 -y
我注意到输出视频的 major_brand 与输入不同(输入是mp42,输出为异戊二烯)
奇怪的是,当我执行修剪命令时,ffmpeg 说输出是 mp42:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
Metadata:
major_brand : mp42
minor_version : 512
compatible_brands: mp42iso2avc1mp41
encoder : Lavf59.27.100
Duration: 00:02:58.96, start: 0.000000, bitrate: 10015 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 9828 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc59.37.100 libx264
Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 180 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Output #0, mp4, to 'output.mp4':
Metadata:
major_brand : mp42
minor_version : 512
compatible_brands: mp42iso2avc1mp41
encoder : Lavf59.27.100
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 9828 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc59.37.100 libx264
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 180 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
但是当我对输出执行 ffprobe 时:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf59.27.100
Duration: 00:02:53.96, start: 0.013000, bitrate: 9590 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 9452 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc59.37.100 libx264
Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 186 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
我想保留输入的主要品牌。我知道我可以使用标志-brand
将品牌设置为mp42
,但我想要更通用的东西。我尝试了-movflags use_metadata_tags
和-map_metadata 0
,但没有成功。
还有什么其他东西可以用来保留输入品牌吗?谢谢
答案1
不可以。输出文件中的品牌标识了 ffmpeg 写入的文件的格式规范。默认情况下,即isom
。它不是用户元数据的一部分,因此任何与元数据相关的选项都不起作用。
对于mp42
,您必须手动指定品牌。