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
.