Observe que, para isso, você deve sempre usar a versão mais recente do ffmpeg e, de preferência, compilá-la . Isso fornece acesso às mais recentes libx265 e libfdk-aac para codificação de áudio.
Além disso, a economia na taxa de dados será bastante drástica se você estiver passando de um DVD de ~ 10 MBit / s para cerca de 1-2 MBit / s para vídeo H.264 e 0,5-1 MBit / s para vídeo H.265. Alterar a qualidade nas etapas abaixo pode influenciar as taxas de bits, mas ainda assim a redução de dados deve ser significativa.
H.264
Para o controle de qualidade / taxa, você deseja usar o modo CRF na libx264 em vez de uma taxa de bits constante. O uso do CRF garante que uma qualidade média seja preservada, independentemente da resolução do vídeo original ou de sua complexidade. A taxa de bits constante só é realmente útil se você estiver limitado pelo meio de transmissão (por exemplo, velocidade do disco rígido, taxa de transferência da Internet).
Escolher o valor do CRF é a parte complicada. Exige que você observe a saída. O padrão da libx264 (23) oferece uma boa troca entre tamanho e qualidade. Mas, como sua fonte original já está compactada (e não com uma qualidade muito boa em comparação com os Blu-rays), convém alterar o CRF para um pouco menor, como 20. Isso aumentará a taxa de bits necessária em cerca de um terço .
Escolha a predefinição de acordo com quanto tempo você deseja esperar. slow
parece ser um bom valor aqui.
ffmpeg -i input \
-c:v libx264 -crf 20 -pix_fmt yuv420p \
-x264-params keyint=240:min-keyint=20 \
-preset:v slow -profile:v baseline -level 3.0 \
-c:a libfdk_aac -vbr 4 \
output.mp4
O codificador ffmpeg AAC embutido pode ser usado se libfdk-aac não estiver disponível. Use em -c:a aac -strict experimental -b:a 128k
vez de -c:a libfdk_aac -vbr 4
.
H.265
Pesquisas sugerem que o uso de HEVC levará a uma economia de taxa de bits de até 74% em comparação com o H.264. Isso é baseado em dados de visualização subjetivos de seqüências Ultra-HD. Obviamente, isso depende da complexidade temporal do conteúdo de origem e a quantidade de dados salvos não será tão alta para sequências difíceis de codificar. De qualquer maneira, você pode dizer com segurança que a redução de 50% dos dados é absolutamente possível.
O CRF padrão para libx265 é 28. Usando o mesmo conteúdo de origem, resulta em cerca de metade da taxa de bits em comparação com a libx264 no CRF 23. Isso independe da taxa de bits real, ou seja, se a versão H.264 levar 1,5 MBit / s, o H.265 usará cerca de 750 kBit / s, mas é 750 kBit / s vs. 350 kBit / s para outra sequência. Eu o executei em algumas seqüências na resolução de DVD-PAL e não consegui dizer a diferença em termos de qualidade.
ffmpeg -i input \
-c:v libx265 -pix_fmt yuv420p \
-x265-params crf=28:keyint=240:min-keyint=20 \
-preset:v slow \
-c:a libfdk_aac -vbr 4 \
output.mp4
Para mais informações, aqui estão os recursos relevantes:
keyint
em x264 / x265 é o intervalo entre os quadros IDR, ou seja, o intervalo entre os quadros-chave nos quais o decodificador pode atualizar. No meio, pode haver quadros I sem quadro-chave, por exemplo, quando ocorre um corte na cena. É equivalente ao-g
parâmetro se não me engano.-c:a aac -strict experimental
como indicado na minha resposta. E eu concordo, eu não tentaria construí-lo no Windows.libopus > libvorbis >= libfdk_aac > aac > libmp3lame >= libfaac >= eac3/ac3 > libtwolame > vorbis > mp2 > wmav2/wmav1
Somente para AAC: (porque é um pouco confuso, com 3 codificadores disponíveis):libfdk_aac > aac > libfaac
O sinal> = significa maior ou igual qualidade."