FFMPEG Mesmos Comandos?

2

Existe alguma diferença entre esses dois comandos para extrair o áudio de um vídeo?

ffmpeg -i input.mp4 -c copy -map 0:a output.wav

ffmpeg -i input.mp4 -vn -acodec copy output.wav

    
por AwesomeMarioFan 21.05.2016 / 17:55

1 resposta

2

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.

    
por 21.05.2016 / 18:32