FLAC이 CRC와 MD5를 계산한다는 것을 [출처]에서 배웠습니다.
유감스럽게도 다음에서 언급 flac --test
한 대로 CRC 테스트만 있습니다 .man flac
same as -d except no decoded file is written
주어진 .flac 파일의 STREAMINFO에 있는 원본 PCM의 MD5를 사용하여 flac 파일의 정확성을 확인하는 방법은 무엇입니까?
그렇다면 flac --test
이를 보여주는 신뢰할 수 있는 참조(flac 문서와 같은)가 있습니까?
원천:
http://en.wikipedia.org/wiki/Free_Lossless_Audio_Codec우리는 다음을 찾을 수 있습니다:
FLAC는 CRC 체크섬을 사용하여 스트리밍 프로토콜에 사용될 때 손상된 프레임을 식별하고 STREAMINFO 메타데이터 헤더에 원본 PCM 오디오의 전체 MD5 해시를 저장합니다.
http://flac.sourceforge.net/comparison.html
기본적으로 파일을 처리할 때 flac는 인코딩 및 디코딩 시 MD5 합계를 계산합니다.
STEAMINFO에서 md5sum을 보려면 다음을 사용할 수 있습니다.
$ metaflac --show-md5sum *.flac
답변1
가장 신뢰할 수 있는 소스는 소스 코드 자체이며, 기본적으로 STREAMINFO에 저장된 MD5를 확인하는 것이 좋습니다.
답변2
http://wiki.etree.org/index.php?page=FlacFingerprint다음 정보를 표시합니다.
대신, 압축을 풀거나 flac의 테스트 기능을 사용할 때 FLAC는 파일에 저장된 내부 체크섬과 비교하여 각 파일을 자동으로 확인합니다.
flac 지문은 인코딩된 flac 데이터의 체크섬이 아니라 디코딩된 음악 데이터의 체크섬입니다. 따라서 파일을 테스트하기 위해 flac는 파일의 데이터를 디코딩하고 음악 데이터의 체크섬이 (내부에 저장된) flac 지문과 일치하는지 확인합니다.
여기에는 몇 가지 흥미로운 의미가 있습니다.
flac가 디코딩되면 내부 체크섬 데이터와 비교하여 파일(및 파일의 각 부분)을 확인합니다. flac 파일이 오류 없이 디코딩되면 사용하는 응용 프로그램이 디코딩 오류를 보고하는 한 좋은 파일입니다!
이는 CRC가 프레임에만 적용되므로 CRC와 MD5가 모두 확인된다는 의미인 것 같습니다. 나는 몇 가지 테스트를 했고 이것이 2:FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH
예상되는 결과를 얻었습니다. 보고 있다암호, 다음은 항상 확인된다는 의미입니다.
/*
* undocumented debugging options for the test suite
*/
{ "no-md5-sum" , share__no_argument, 0, 0 },
그리고 기본적으로설정되었습니다:
FLAC__stream_decoder_set_md5_checking(decoder_session->decoder, true);
"MD5 서명 확인" 플래그를 설정합니다. true인 경우 디코더는 디코딩 시 인코딩되지 않은 오디오 데이터의 MD5 서명을 계산하고 이를 FLAC__stream_decoder_finish() 동안 STREAMINFO 블록(있는 경우)의 서명과 비교합니다.
의 답변으로는추가 정보 보내기표현하다:
가장 신뢰할 수 있는 소스는 소스 코드 자체이며, 기본적으로 STREAMINFO에 저장된 MD5를 확인하는 것이 좋습니다.
답변3
이것이 도움이 될 수 있습니다.
https://www.quickhash-gui.org/
FLAC는 CRC 체크섬을 사용하여 스트리밍 프로토콜에 사용될 때 손상된 프레임을 식별하고 STREAMINFO 메타데이터 헤더에 원본 PCM 오디오의 전체 MD5 해시를 저장합니다.