Se a saída parece muito blocky ou pixelizada, isso é devido a uma taxa de bits muito baixa. Vejo que você define 500 kBit / s, mas isso é muito baixo para alcançar uma qualidade razoável com vídeos em 720p ou acima.
O Guia de codificação do VP8 lista algumas opções que você tem ao usar o codificador libvpx. Eu concordo com você que usar um fator de taxa constante é a abordagem correta para alcançar o mesmo nível de qualidade visual, independentemente da resolução do vídeo.
Você estava usando o CRF 18 para o codificador x264, que é considerado de alta qualidade (talvez não seja visualmente sem perdas, mas a perda de qualidade não deve ser perceptível). Para libvpx, o intervalo de CRF é um pouco diferente. 10 é um bom padrão (seria 23 para x264) e, portanto, eu provavelmente recomendaria usar algo como CRF 6-7 para libvpx.
Observe que o parâmetro -qmin
deve ser definido como igual ou inferior ao CRF que você está escolhendo. Caso contrário, não pode codificar.
Lembre-se de que a taxa de bits resultante tem seu limite superior definido no que você especificar com -b:v
. Portanto, se o seu CRF estiver muito baixo e sua taxa de bits estiver definida como -b:v 2M
, sua taxa de bits final será de 2 MBit / s.
Mas, na verdade, não há nada melhor do que apenas experimentar valores diferentes. Tudo depende da aparência da sua entrada ou do aplicativo de destino dos vídeos. Se você está apenas fazendo algum streaming na Web, não precisa de vídeo de alta qualidade. Se você quiser armazenamento offline, então um CRF mais baixo seria, naturalmente, melhor.