De acordo com as Perguntas frequentes sobre reprodução de vídeo de engenharia do Xbox , os requisitos do h.264 são:
- Video Profiles: Baseline, main, and high (up to Level 4.1) profiles.
- Video Bitrate: 10 Mbps with resolutions of 1920 x 1080 at 30fps. See question number 11 for more information.
- Audio Profiles: 2 channel AAC low complexity (LC)
- Audio Max Bitrate: No restrictions.
Agora, como uma linha de comando geral, isso deve funcionar:
ffmpeg -i input.mp4 -c:v libx264 -profile:v high -crf 23 -c:a libfaac -q:a 100 output.mp4
Altere os parâmetros -crf
e -q:a
para variar a qualidade. Um CRF menor significa melhor. 23 é o padrão, mas escolha algo entre 18 e 28 e veja se você gosta da qualidade. A qualidade de áudio do FAAC é em porcentagem, portanto, 100% é o padrão e significa melhor.
No seu caso específico, todos os requisitos são atendidos, exceto pelo número de canais de áudio. Você tem áudio 5.1 e precisa convertê-lo para 2.0 estéreo. Portanto, copiamos o fluxo de bits do vídeo e alteramos o número de canais de áudio usando a opção -ac
:
ffmpeg -i input.mp4 -c:a libfaac -q:a 100 -ac 2 -c:v copy output.mp4
Mude as partes destacadas dependendo do codificador que você possui - algumas versões do FFmpeg podem não agrupar o FAAC, então você também pode usar o codificador integrado:
ffmpeg -i input.mp4 -c:a aac -strict experimental -ac 2 -c:v copy output.mp4
Se você obtiver um erro sobre o FFmpeg não conseguir baixar o áudio de 6 canais para 2 canais, o que você precisa fazer é extrair o áudio bruto e, em seguida, reduzir a resolução com FAAD .
ffmpeg -i input.mp4 -c:a copy audio-6.aac
Em seguida, reduza a resolução para um arquivo WAV estéreo PCM:
faad -d -o audio-2.wav audio-6.aac
E remodele-o no vídeo que você tem. Isso não recodificará o vídeo, por isso manterá sua qualidade original, mas teremos que codificar o áudio novamente. Se você não tiver libfaac
, veja acima o método alternativo integrado usando aac
.
ffmpeg -i input.mp4 -i audio-2.wav -c:v copy -c:a libfaac -map 0:0 -map 1:0 output.mp4
Se o vídeo ainda não for reproduzido, tente recodificar tudo novamente.