如何在 ffmpeg 中对视频轨道进行 md5(仅)
How to md5 the video track (only) in ffmpeg
我有一个 .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
为什么值不一样?另外,我如何校验和 only 视频轨道?我有各种具有不同音轨的文件,想看看我在这些文件上是否有相同的视频轨道。
更新:我相信这个答案展示了如何计算纯音频校验和,但不确定纯视频:https://superuser.com/a/1044419/118248.
md5sum 与 ffmpeg
md5sum
包含完整文件。
ffmpeg
仅计算视频 and/or 音频流的 MD5。如果您不希望元数据或其他 non-media 流数据影响 MD5,则很有用。它还将允许您获取特定流的校验和(仅视频或音频,或同时两者,或每个单独的哈希)。您还可以选择多种算法(MD5、SHA256、CRC32、adler32 等)。
仅对视频轨道进行校验和
添加 -map
option to only choose the video stream(s). Using -map
disables the default stream selection 行为并允许您手动选择所需的流。
示例:已解码
视频 and/or 音频将被完全解码。这可能很慢。
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 -
更多信息
我有一个 .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
为什么值不一样?另外,我如何校验和 only 视频轨道?我有各种具有不同音轨的文件,想看看我在这些文件上是否有相同的视频轨道。
更新:我相信这个答案展示了如何计算纯音频校验和,但不确定纯视频:https://superuser.com/a/1044419/118248.
md5sum 与 ffmpeg
md5sum
包含完整文件。ffmpeg
仅计算视频 and/or 音频流的 MD5。如果您不希望元数据或其他 non-media 流数据影响 MD5,则很有用。它还将允许您获取特定流的校验和(仅视频或音频,或同时两者,或每个单独的哈希)。您还可以选择多种算法(MD5、SHA256、CRC32、adler32 等)。
仅对视频轨道进行校验和
添加 -map
option to only choose the video stream(s). Using -map
disables the default stream selection 行为并允许您手动选择所需的流。
示例:已解码
视频 and/or 音频将被完全解码。这可能很慢。
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 -