O comportamento que você está vendo realmente não faz sentido, mas dado que você está usando o quebrado e "falso" ffmpeg
que é realmente do Libav e não o negócio real , é provavelmente um erro que tem longo foi corrigido. Apenas uma questão de usar uma versão recente, onde isso funciona normalmente.
Faça o download de uma versão estática recente da página inicial do FFmpeg ou compile você mesmo .
Você pode reduzir o comando para:
ffmpeg -i in.mkv -c copy -c:a ac3 -map 0 out.mkv
O FFmpeg agora copia automaticamente todos os fluxos e mapeia todos eles para a saída, por ex. assim:
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (aac -> ac3)
Stream #0:2 -> #0:2 (copy)
Stream #0:3 -> #0:3 (copy)
Stream #0:4 -> #0:4 (copy)