linux - 如何在 ffmpeg 中对视频轨道进行 md5(仅)

标签 linux video ffmpeg md5 checksum

我有一个包含视频和多个音轨的 .mov 文件。我可以对整个文件进行 md5:

[pdev@d ~]$ md5sum 1_TRAILER_HD_2CH_ES419_ENSUB_16X9_178_2398_DIGITAL_FINAL.mov
042f0e177fe25f562079cc07208ec446

虽然当我尝试在 ffmpeg 中做同样的事情时,我得到了不同的值:

$ ffmpeg -i 1_TRAILER_HD_2CH_ES419_ENSUB_16X9_178_2398_DIGITAL_FINAL.mov -f md5 -
MD5=74bd904f1edb4eb1368040e2792d7497   0kB time=00:01:59.11 bitrate=   0.0kbits/s speed=2.36x
frame= 2867 fps= 56 q=-0.0 Lsize=       0kB time=00:01:59.57 bitrate=   0.0kbits/s speed=2.35x
video:23222700kB audio:22421kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

为什么值不同?此外,如何才能 对视频轨道进行校验?我有各种具有不同音轨的文件,想看看这些文件上是否有相同的视频轨道。


更新:我相信这个答案展示了如何计算纯音频校验和,但不确定纯视频:https://superuser.com/a/1044419/118248 .

最佳答案

md5sum 对比 ffmpeg

  • md5sum 包含完整的文件。
  • ffmpeg 仅计算视频和/或音频流的 MD5。如果您不希望元数据或其他非媒体流数据影响 MD5,则很有用。它还将允许您获取特定流的校验和(仅视频或音频,或同时两者,或每个单独的哈希)。您还可以选择多种算法(MD5、SHA256、CRC32、adler32 等)。

只校验视频轨道

添加-map option只选择视频流。使用 -map 禁用默认 stream selection行为,并允许您手动选择所需的流。

示例:解码

视频和/或音频将被完全解码。这可能很慢。

ffmpeg -i input.mp4 -map 0:v -f md5 -

示例:流复制

这只是使用 stream copy 获取 MD5模式。没有解码。

ffmpeg -i input.mp4 -map 0:v -c copy -f md5 -

示例:分别显示视频和音频校验和

使用 streamhash混合器:

ffmpeg -i input.mp4 -map 0 -c copy -f streamhash -hash md5 -
...
0,v,MD5=50224fec84bc6dfde90d742bcf1d2e01
1,a,MD5=1d2a32ed72798d66e0110bd02df2be65

示例:每帧

使用 framehash混合器:

ffmpeg -i input.mp4 -map 0 -f framehash -

更多信息

  • 参见 MD5hash muxer 文档以获取更多信息。
  • 如果您想减少冗长并只输出散列/校验和/MD5(以及任何错误),请添加 -v error
  • 要使用其他算法,您可以使用 hash muxer (-f hash) 与 -hash 选项,例如 -f hash -hash SHA512。默认为 SHA265。

关于linux - 如何在 ffmpeg 中对视频轨道进行 md5(仅),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63608312/

相关文章:

java - 以编程方式将视频转换为 FLV

javascript - 全屏 API 不适用于 Chrome/iOS

android - 无法使用 FFMPEG 命令合并视频

shell - FFmpeg如何在shell脚本中反转gif

linux - 安装 Centos 后恢复 Windows 7 引导加载程序

linux - 使 VS Code 编辑器 Ctrl+Tab 循环选项卡的顺序与屏幕上显示的顺序相同?

c++ - 使用板载 BeagleBone 黑色 LED 的 4 位十进制到二进制转换器

linux - linode vs amazon ec2 vs heroku for project with amazon s3

c# - 以编程方式确定系统是否具有可切换图形

python - Imageio python错误地将GIF转换为MP4