Se o seu arquivo mp4 contiver apenas uma trilha de áudio, então ambos os comandos terão o mesmo resultado.
Existe pelo menos uma grande diferença, no caso em que o seu mp4 contém múltiplas faixas de áudio / streams (não estou me referindo a múltiplos canais dentro de um stream).
O contêiner WAV permite somente uma faixa de áudio, então você usa -map 0:a
, ele tentará potencialmente copiar mais de uma faixa de áudio para o seu arquivo WAV, o que resultará em um erro como:
Stream mapping:
Stream #0:2 -> #0:0 (copy)
Stream #0:3 -> #0:1 (copy)
Stream #0:4 -> #0:2 (copy)
Stream #0:5 -> #0:3 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Seu comando que não especifica o mapeamento não lançará um erro, pois, por padrão, o ffmpeg só exibe uma trilha de cada tipo se o mapeamento não for especificado.
Como um aparte, você não precisa especificar -vn
ao usar -acodec copy
e especificar o contêiner WAV, pois o ffmpeg automaticamente não tentará incluir vídeo em WAV.