ffmpeg - 如何创建媒体文件的稳定校验和?

标签 ffmpeg media sha1 checksum mplayer

如何仅创建没有元数据的媒体数据的校验和,以获得媒体文件的稳定标识。最好是跨平台方法,其库支持多种格式。例如vlc、ffmpeg 或 mplayer。

(媒体文件应该是通用格式的音频和视频,图片也可以)

最佳答案

我不知道有任何现有的独立于平台的软件可以实现这一点,但我知道一种可以用解释(平台独立)语言(如 Java)实现这一点的方法。

本质上,我们只需要从文件中剥离任何元数据(标签),预先解复用视频文件。从理论上讲,在 demux 和删除元数据之后,可以对文件进行哈希处理并与另一个经过相同过程的文件进行比较,以匹配相同的文件,尽管标签不同。与指纹不同,这不会识别相似的歌曲/电影,而是识别相同的文件(想象一下,您可能想要已归档的给定歌曲的 10 个不同版本或比特率,但不希望它们中的任何一个 float 的 2 个相同副本) .

其中最令人不安的部分是删除标签,因为标签格式有许多不同的规范,这些规范不一定在不同的应用程序中实现相同,即通过两个不同的应用程序分别给出相同标签的相同确切音频文件可能不会产生相同的输出文件.这可能对纯音频校验和的概念造成致命问题的唯一方法是,流行的标记软件是否对文件的二进制音频部分进行了任何更改,或者以非标准方式填充音频。

进行校验和是微不足道的,但我不知道任何平台独立库都可以对 mpeg 文件进行 demux 和 detag 处理。我知道在 'nix 环境中,mpgtx 是一个很棒的命令行工具,可以执行 demux 和 detag,但显然这不是一个独立于平台的解决方案。

也许有人在那里感到雄心勃勃?

关于ffmpeg - 如何创建媒体文件的稳定校验和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2395817/

相关文章:

c++ - 带有 FFMPEG 的 OpenCV RTP-Stream

text - 是否可以在 ffmpeg 中为文本添加笔画?

ffmpeg - php-ffmpeg 获取视频时长

Windows Media 编码器安装问题

Android - 图像选择器,错误的图像

php - 为什么像 sha1 这样的散列函数最多只使用 16 个不同的字符(十六进制)?

ffmpeg不断将刷新图像流式传输到rtmp

audio - 使用Phonegap 2.9和iOS7录制后播放音频

security - 对加盐(密码学)感到困惑吗?

windows - SmartScreen 阻止使用 SHA-2 签名的二进制文件