相同的 FFmpeg 命令产生不同的 Matroska MKV 输出文件校验和

问题描述 投票:0回答:1

以下示例性 FFmpeg 命令采用 MP4 文件,不执行任何重新编码,而只是将输出写入 MKV 文件:

ffmpeg -i input.mp4 -c copy output.mkv

如果我使用两个不同的输出文件运行相同的命令两次:

ffmpeg -i input.mp4 -c copy output1.mkv
ffmpeg -i input.mp4 -c copy output2.mkv

生成的文件将具有不同的校验和:

aa46d308197cb08d71f271c61d5412ad  output1.mkv
8b48c3ebdbf2384705fcb78e864d12e3  output2.mkv

如果我将它们转换回 MP4 容器,这种差异就会消失:

ffmpeg -i output1.mkv -c copy output1.mp4
ffmpeg -i output2.mkv -c copy output2.mp4

对于不同的 MKV 输入文件,我为 MP4 输出文件获得相同的校验和:

24e92b3e228db780b5feab14255870e3  output1.mp4
24e92b3e228db780b5feab14255870e3  output2.mp4

很明显视频本身没有被修改,MKV 容器中有一些元数据负责。它是什么数据以及如何防止添加此数据?

ffmpeg metadata mp4 checksum mkv
1个回答
0
投票

Matroska 和 WebM 格式会为轨道分配随机 ID,除非通过添加

-bitexact
来抑制。

© www.soinside.com 2019 - 2024. All rights reserved.