Comment comparer deux fichiers audio sans perte?

J'ai un fichier M4A qui est également converti en fichier FLAC. J'aimerais voir si la conversion est sans perte, à savoir si la sortie vers pcm de M4A est exactement identique à celle du décodage FLAC.

Je suppose qu'il existe un moyen d'utiliser FFmpeg ou Libav pour produire une sortie «brute» et les comparer?

J'essayerais de les convertir tous les deux à WAV et de comparer leur somme de contrôle.

ffmpeg -i file1.m4a file1.wav ffmpeg -i file2.flac file2.wav md5sum file1.wav md5sum file2.wav rm file?.wav 

Comparez les md5 produites. S'ils correspondent, félicitations! Vos fichiers contiennent les mêmes données. S'ils ne correspondent pas, publiez la sortie de ces commandes ici, et je regarderai. Potentiellement, il y a une différence de bitrate ou quelque chose (il ne devrait pas y avoir … mais il se peut, je ne sais pas.)

Notez que le ffmpeg s générera des fichiers intermédiaires relativement importants.

Vous pouvez utiliser le md5 muxer dans ffmpeg pour calculer et imprimer le hash MD5 de toutes les images audio (et vidéo) d'entrée sans avoir besoin de fichiers intermédiaires. Dans cet exemple, le flac a été créé à partir du mp3 (perte de perte, généralement pas une procédure recommandée, mais ceci n'est qu'une démonstration).

 $ ffmpeg -i left_right.mp3 -map 0:a -f md5 - 2>/dev/null MD5=a34bfd9245ad6d69eddcb92035219044 $ ffmpeg -i left_right.flac -map 0:a -f md5 - 2>/dev/null MD5=a34bfd9245ad6d69eddcb92035219044 

Il existe également le framemd5 framemd5 pour calculer et imprimer le hash MD5 pour chaque paquet audio (et vidéo).

Voir aussi Framemd5 Intro et HowTo .