首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在STREAMINFO中使用MD5的FLAC正确性

在STREAMINFO中使用MD5的FLAC正确性
EN

Unix & Linux用户
提问于 2011-10-03 14:47:36
回答 3查看 3.5K关注 0票数 5

我从资料来源那里知道,FLAC计算CRC和MD5。

我担心flac --test只进行CRC测试--如man flacsame as -d except no decoded file is written中所述。

如何检查MD5文件的正确性,使用.flac文件中放置在STREAMINFO中的原始PCM?

如果flac --test做了工作,是否有任何可靠的引用(如在flac文档中)来显示它?

资料来源:

http://en.wikipedia.org/wiki/Free_无损_音频_编解码器我们可以找到:

FLAC使用CRC校验和来识别流协议中使用的损坏帧,并在其STREAMINFO元数据头中存储了原始PCM音频的完整MD5散列。

http://flac.sourceforge.net/comparison.html

默认情况下,在处理文件时,flac在编码和解码时计算MD5和。

要在STEAMINFO中看到md5sums,我们可以使用:

代码语言:javascript
运行
复制
$ metaflac --show-md5sum *.flac
EN

回答 3

Unix & Linux用户

发布于 2012-02-24 21:28:53

最可靠的来源是源代码本身,它确实建议默认检查存储在STREAMINFO中的MD5。

票数 6
EN

Unix & Linux用户

发布于 2017-03-17 22:51:27

http://wiki.etree.org/index.php?page=FlacFingerprint显示了以下信息:

相反,当您解压缩或使用FLAC的Test特性时,FLAC会根据存储在文件中的内部校验和自动验证每个文件。注意,flac指纹不是编码的flac数据的校验和,而是解码后的音乐数据的校验和。因此,为了测试该文件,flac对文件中的数据进行解码,并验证音乐数据的校验和是否与(内部存储的) flac指纹匹配。这有一些有趣的含义:当flac解码时,它会根据内部校验和数据检查文件(以及文件的每个部分)。如果一个flac文件没有错误地解码,那么它就是一个很好的文件--只要您使用的是报告解码错误的应用程序!

这似乎意味着同时检查CRC和MD5,因为CRC只用于帧。我做了一些测试,得到了2:FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH,这是预料中的结果。查看代码,以下内容意味着总是会检查它:

代码语言:javascript
运行
复制
/*
 * undocumented debugging options for the test suite
 */
{ "no-md5-sum"                , share__no_argument, 0, 0 },

默认情况下,它是设定的

代码语言:javascript
运行
复制
FLAC__stream_decoder_set_md5_checking(decoder_session->decoder, true);

设置"MD5签名检查“标志。如果为真,解码器将在解码时计算未编码音频数据的MD5签名,并在FLAC__stream_decoder_finish()期间将其与来自STREAMINFO块(如果存在的话)的签名进行比较。

正如sendmoreinfo信息中的答案所示:

最可靠的来源是源代码本身,它确实建议默认检查存储在STREAMINFO中的MD5。

票数 2
EN

Unix & Linux用户

发布于 2022-02-12 05:29:35

这可能会有帮助。

https://www.quickhash-gui.org/

FLAC使用CRC校验和来识别流协议中使用的损坏帧,并在其STREAMINFO元数据头中存储了原始PCM音频的完整MD5散列。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/21958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档