Tenho um arquivo WMV (v9 (WMV3), 960x720, 30.000030 fps, planar YUV 4: 2: 0, produzido pelo PowerPoint 2010) e preciso convertê-lo em MPEG2 - o único formato que meu TVset pode ler em uma unidade flash USB (Eu também tentei MP4 / h.264, AVI / XVID - nada além de MPEG2 funciona).
Eu consegui o trabalho com simples
ffmpeg -i "in.wmv" -c:v mpeg2video "out.mpg"
mas a qualidade do resultado é terrível (distorções visuais claramente visíveis são introduzidas) e a reprodução não é suave (muito lenta em alguns momentos).
Eu também tentei
ffmpeg -i "in.wmv" -c:v mpeg2video -pix_fmt yuv420p -me_method epzs -threads 4 -r 30.000030 -g 45 -bf 2 -trellis 2 -cmp 2 -subcmp 2 -s 960x720 -b 2500k -bt 300k -async 1 -y "out.mpg"
(Encontrei isso em algum lugar da Internet e modifiquei um pouco - mudei a resoultion, a taxa de atualização e o formato de saída (de VOB para MPG) - com sucesso, mas a qualidade ainda é muito ruim.
Quais parâmetros eu tenho que usar para economizar o máximo de qualidade possível? A taxa de compressão não importa, mesmo o aumento no tamanho do arquivo é aceitável.
Outra coisa de que realmente preciso (escolhi não incluí-lo no título da pergunta para evitar que seja muito específico, mas eu apreciaria que isso fosse considerado nas respostas) é adicionar puro silêncio como trilha sonora - não há som no original, mas o aparelho de TV reclama e eu gostaria de me livrar dessa reclamação. Eu gerei um arquivo OGG Vorbis de silêncio do mesmo tamanho (segunda precisão) usando o Audacity, mas não consigo mesclá-lo ao vídeo:
ffmpeg -i in.mpg -i silence.ogg -c:v copy -c:a libmp3lame out.mpg
e mesmo nua
ffmpeg -i in.mpg -c:v copy -out.mpg
fornece erros de "buffer underflow" e "pacote muito grande". (in.mpg são os arquivos produzidos pelo mesmo binário FFMPEG e pelo mesmo arquivo WMV de origem, usando os dois primeiros comandos da pergunta).
Estou usando uma compilação Zeranoe FFMPEG no Windows 7.
Philips 42PFL3606H/58
codificando para H.264 com ffmpeg -i "in.wmv" -sws_flags lanczos+accurate_rnd -c:v libx264 -crf 20 -preset slow -profile:v baseline -level 3.0 -pix_fmt yuv420p -tune fastdecode -x264-params keyint=240:min-keyint=20 "out.mp4"
- o perfil é o mais baixo que eu conheço e ainda mais ajustes são usados para tornar a reprodução do arquivo resultante uma tarefa mais fácil.