Atualmente, estou usando um arquivo em lotes que (entre outras coisas) executa a seguinte linha de comando do handbrakecli para converter um vídeo:
HandBrakeCLI.exe -v0 --input "D:\input.mkv" --preset="Universal" --ipod-atom -t 1 --angle 1 --gain 0 --output="D:\output.mp4"
Isso me serviu bem por muitos anos, produzindo um arquivo de vídeo menor que o original (bom quando você tem apenas dispositivos de 16 Gb), parece bom o suficiente e funciona em praticamente qualquer iPod, iPad e iPhone em que eu o coloquei.
No entanto, com o tempo, o handbrakecli está lutando para converter mais e mais vídeos ao ponto em que preciso procurar uma alternativa. Isso não é ajudado pelo fato de os logs não fornecerem absolutamente nenhuma informação sobre o motivo pelo qual houve uma falha. Este vídeo, por exemplo, caiu em 71% com a conversão e estas são as últimas 4 linhas:
AC3 Passthru requested and input codec is not compatible for track 2, using AC3 encoder
x264 [info]: using SAR=9593/9600
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
x264 [info]: profile Constrained Baseline, level 3.0
Não é muito útil.
Eu olhei para usar o ffmpeg como uma alternativa, mas todos os exemplos que eu vi na internet fazem um ou mais dos seguintes:
- Não trabalhe (as opções de linha de comando não são reconhecidas) - comum!
- Resultar em um arquivo maior que o original - muito comum!
- Distorça a imagem, especialmente quando um tamanho de vídeo inesperado é convertido (por exemplo, PAL não widescreen)
- Retire o áudio
- Resultar em um vídeo que o iPhone, iPod ou iPad não reproduzirá
Existe uma linha de comando ffmepg decente para todos os fins, que fará qualquer vídeo rodar feliz em todos os dispositivos Apple, além de obter uma redução no tamanho do arquivo?
Pontos de bônus se diminuir (mas não distorcer) qualquer vídeo acima de 720p também.