O MP4 é de fato o melhor formato para dispositivos e softwares da Apple. O DTS também não é realmente suportado, muitos arquivos de vídeo MP4 contêm duas faixas de áudio, uma DTS e uma AAC.
Existem vários codificadores disponíveis, todos eles documentados no ffmpeg wiki . Qual codec está disponível depende de como o ffmpeg foi compilado. O libfdk_aac lhe dará os melhores resultados, mas devido a esse codec ser não-livre, nem sempre está disponível.
Coisas que você pode experimentar (coloco-as na ordem da minha qualidade percebida, melhor primeiro)
ffmpeg -i input.mkv -c:v copy -c:a libfdk_aac -b:a 128k output.mp4
ffmpeg -i input.mkv -strict experimental -c:v copy -c:a aac -b:a 192k output.mp4
ffmpeg -i input.mkv -c:v copy -c:a libfaac -b:a 192k output.mp4
Se você quiser manter a trilha do DTS também, use o -map
.
Não é diretamente usado pelo OP, mas o subler do programa OS X facilita muito esse processo.
EDIT: comentários tl; dr? OP resolvido problema com o seguinte comando
ffmpeg -i input.mkv -strict experimental -map 0:0 -map 0:1 -map 0:2 -map 0:3 -c:v copy -c:a aac -b:a 384 -c:s copy output.mp4
TIP: se -c:s copy
para legendas não funcionar, tente -c:s mov_text
.
Me salvou em várias ocasiões.