Soma de verificação de áudio MD5 com ffmpeg

0

Estou obtendo esses resultados no Windows ( ffmpeg version N-78636-g45d3af9 )

ffmpeg.exe -i TEST.mp3 -c:a copy -f md5 -
MD5=cb017003b355c2b39d71e8020bd76f5b

ffmpeg.exe -i TEST.mp3 -f md5 -
MD5=7bbe06733ddc930c8a120bced0f3fad9

Por que isso é diferente? E qual é a maneira correta de calcular a soma de verificação MD5 apenas para dados de áudio? Como faço para o ffmpeg retornar apenas a string ( MD5=xxxxx.xxxxx )?

    
por Data-Base 23.02.2016 / 12:51

1 resposta

2

Se você ler a documentação do muxer MD5, ele diz:

By default audio frames are converted to signed 16-bit raw audio and video frames to raw video before computing the hash.

Assim, no seu segundo comando (sem especificar nenhuma opção de codec), isso seria equivalente a -c:a pcm_s16le , enquanto no seu primeiro exemplo, você mantém o bitstream de áudio MP3. É por isso que eles têm checksums diferentes.

A maneira correta provavelmente seria desabilitar fluxos de vídeo (se o arquivo MP3 contiver arte, por exemplo) usando -vn :

ffmpeg.exe -i TEST.mp3 -vn -f md5 -

Você pode desativar a outra saída redirecionando stderr:

ffmpeg.exe -i TEST.mp3 -vn -f md5 - 2>NUL

No Linux, use /dev/null em vez de NUL .

    
por 23.02.2016 / 13:12