Dat*_*ase 3 audio windows mp3 ffmpeg command-line
我在 Windows 下得到这些结果 ( ffmpeg version N-78636-g45d3af9)
ffmpeg.exe -i TEST.mp3 -c:a copy -f md5 -\nMD5=cb017003b355c2b39d71e8020bd76f5b\n\nffmpeg.exe -i TEST.mp3 -f md5 -\nMD5=7bbe06733ddc930c8a120bced0f3fad9\nRun Code Online (Sandbox Code Playgroud)\n\n为什么\xc2\xa0不一样?仅计算音频数据的 MD5 校验和的正确方法是什么?如何让\xc2\xa0MD5=xxxxx.xxxxx只返回字符串( )?
如果您阅读MD5 复用器的文档,它会说:
默认情况下,在计算哈希之前,音频帧会转换为签名的 16 位原始音频,视频帧会转换为原始视频。
因此,在第二个命令中(不指定任何编解码器选项),这相当于-c:a pcm_s16le, 而在第一个示例中,您保留 MP3 音频比特流。这就是为什么它们有不同的校验和。
正确的方法可能是使用以下命令禁用视频流(例如,如果 MP3 文件包含艺术品)-vn:
ffmpeg.exe -i TEST.mp3 -vn -f md5 -
Run Code Online (Sandbox Code Playgroud)
您可以通过重定向 stderr 来禁用其他输出:
ffmpeg.exe -i TEST.mp3 -vn -f md5 - 2>NUL
Run Code Online (Sandbox Code Playgroud)
在 Linux 上,使用/dev/null而不是NUL.
| 归档时间: |
|
| 查看次数: |
3735 次 |
| 最近记录: |