Primeiro de tudo, instale uma versão mais recente do FFmpeg - pegue uma versão estática da página de download .
O uso de vpre
presets (que é uma forma de definir valores padrão para as configurações do ffmpeg , não das configurações do codificador) não é realmente necessário; você geralmente deseja usar as opções -preset
definidas pelos codificadores.
As razões pelas quais você obtém baixa qualidade de saída são as seguintes, para seus dois casos, respectivamente:
-
No primeiro caso, você usa
crf 25
, um Fator de taxa constante que vai lhe dá pior qualidade do que o padrão para o codificador x264 (que é 23). O CRF controla a qualidade. Tente definir um CRF mais baixo, talvez 20, 18, etc. Aqui, menor significa melhor qualidade, mas aumentará o tamanho do arquivo. Uma mudança de 6 no CRF dá-lhe duas vezes / metade da taxa de bits média original, grosso modo.Você terá que definir um CRF mais baixo devido à perda de geração . Você está codificando algo que já estava codificado, então você está novamente jogando fora informações visuais. Isso nunca é bom, mas se for necessário, você terá que definir uma qualidade mais alta para não remover muitas informações do vídeo de entrada.
-
No segundo caso, você está tentando definir uma taxa de bits constante de 2 MBit / s. Seu vídeo de entrada tem aproximadamente a mesma taxa de bits. Agora, x264 oferece uma qualidade visual muito melhor do que um codificador visual MPEG-4 para a mesma taxa de bits, mas devido à perda de geração, você pode querer usar uma taxa de bits ainda maior que a original - caso contrário, você acabará comprimindo muita informação.
Além disso, a codificação de taxa de bits constante pode resultar em algumas passagens com boa aparência, mas outras partes do vídeo parecem piores. Se você não permitir que o codificador escolha livremente a quantidade de bits que deseja gastar em algo, você sacrificará a qualidade à custa de conhecer o tamanho do arquivo de destino.
O x264 tem um modo de taxa de bits constante, mas é considerado inferior aos outros métodos de codificação. Na verdade, a codificação de duas passagens não tem como objetivo atingir a qualidade ideal, então faça isso.
Isso tudo dito, tente algo ao longo do seguinte:
ffmpeg -i input.avi -c:v libx264 -crf 19 -preset slow -c:a libfdk_aac -b:a 192k -ac 2 out.mp4
Se libfdk_aac
não estiver disponível, use isso:
ffmpeg -i input.avi -c:v libx264 -crf 19 -preset slow -c:a aac -b:a 192k -ac 2 out.mp4
O botão de controle de qualidade principal será a sua configuração de CRF. Experimente com isso e use um valor menor se você precisar de melhor qualidade.
Você também pode escolher a veryslow
preset, que lhe dará uma melhor compactação, mas a codificação obviamente levará mais tempo.
Se você não conseguir obter um arquivo de qualidade decente em um tamanho de arquivo razoável, estará sem sorte. Melhor manter o arquivo original como está, sem recodificar. Não há mágica "mantendo a mesma qualidade" ferramenta quando você está comprimindo algo que já está compactado.