Como posso usar a -map
opção ffmpeg para selecionar a faixa de áudio por seu codec?
Digamos que exista um video.mkv com um fluxo de vídeo (0) e três faixas de áudio (1, 2, 3).
As faixas de áudio têm codecs diferentes, como DTS, AAC e AC-3 (em qualquer ordem).
Quero produzir um arquivo de saída com o fluxo de vídeo -map 0:0
e apenas a faixa AAC, algo como:
ffmpeg -i video.mkv -map 0:0 -map 0:aac -codec copy output_with_aac_audio.mkv
No cenário real, não sei qual é a faixa AAC (1, 2 ou 3).
ffprobe
.Respostas:
Como Tom Yan mencionou em seu comentário, você pode usar
ffprobe
para obter os índices de stream:Suponho que você esteja usando Linux, portanto, a adição
awk
fornecerá apenas o (s) índice (s) do (s) fluxo (s) aac. Neste exemplo, o resultado mostra o fluxo aac como índice do fluxo2
:Então use
-map 0:2
em seuffmpeg
comando.fonte