Que CRF ou configurações devo escolher para o h265 para obter uma qualidade semelhante ao h264?

8

Estou fazendo algumas experiências com o HEVC x265.

Tenho uma gravação bruta e a qualidade dos detalhes do h264 com a mesma configuração de CRF parece melhor que o h265.

Não deveria ser o oposto?

Talvez minha configuração não seja a melhor: estou usando ffmpeg para transcodificação e vlc para revisar os vídeos, copio o conteúdo da tela e comparo as telas em um programa como o photoshop.

Os comandos FFmpeg que estou usando são os seguintes:

ffmpeg -i input.mp4 -c:v libx264 -crf 30 -c:a copy output_h264.mkv

e

ffmpeg -i input.mp4 -c:v libx265 -crf 30 -c:a copy output_h265.mkv

Eu usei 30 como CRF para fins de teste porque os artefatos são mais visíveis :)

A perda de qualidade poderia ser causada pelo VLC e seu suporte experimental na decodificação do h265? Talvez algo mais visível em taxas de bits mais baixas?

user3450548
fonte

Respostas:

7

As escalas CRF para x264 e x265 não correspondem. O x265 CRF 28 deveria ser equivalente ao x264 CRF 23. Mas o x265 ainda não é tão maduro em seu desenvolvimento quanto o x264, portanto, tome essa equivalência do CRF com uma pitada de sal.

Dito isso, você pode tentar estabelecer sua própria calibração entre as versões atuais das bibliotecas de codificação em seu ffmpeg executando o seguinte comando, que executa duas métricas populares de qualidade de vídeo:

ffmpeg -i encoded-video.mp4 -i reference-video.mp4 -lavfi "ssim;[0:v][1:v]psnr" -f null -

As linhas finais da saída do console conterão:

[Parsed_ssim_0 @ 000000000039ad80] SSIM Y:0.984483 U:0.980458 V:0.980921 All:0.983219 (17.751712)
[Parsed_psnr_1 @ 0000000000398320] PSNR y:42.63 u:43.19 v:44.09 average:42.90 min:42.07 max:46.16

Portanto, execute o comando uma vez com a saída x264 e uma vez com x265 e compare com diferentes saídas x265, até obter medidas semelhantes. Obviamente, essas métricas não são perfeitas, mas você pode usá-las como um guia aproximado para estabelecer equivalência.

Gyan
fonte
Hmm interessante, posso perguntar por que essa balança não corresponde? É um projeto procurado com uma quantidade maior de valores de CRF ou pode ser considerado dessa maneira porque a libx265 ainda não está madura o suficiente no ffmpeg?
user3450548
Uma adição ao comentário anterior. Na documentação do ffmpeg que você vinculou, diz-se que x265 crf 28 é aproximadamente equivalente a x264 crf 23. Portanto, se geralmente o CRF de h265 é "melhor" falando qualitativamente do que o x264, é possível que os resultados de codificação de x265 sejam piores que x264 com o mesmo CRF? Ainda tem uma decodificação vlc ruim + libx265 muito jovem?
user3450548
28 e 23 são os valores CRF padrão de x265 e x264, respectivamente, daí a suposta equivalência. A resposta curta para o desvio do desempenho esperado é que o x265 ainda está em "desenvolvimento pesado". Nada a ver especificamente com libx265 incluído com ffmpeg Veja forum.doom9.org/showthread.php?t=170986 e compression.ru/video/codec_comparison/hevc_2015/...
Gyan
Entendo, portanto, devido a esse status pesado de desenvolvimento, mesmo que eu decida mudar de ffmpeg e libx265 para outro codificador, os resultados não mudarão tanto, certo? Atualmente, não existem produtos comerciais baseados no x265? Deveria já estar quase completo em todas as suas partes!
user3450548
Se você olhar o PDF que eu vinculei no último comentário, existem muitos codificadores por aí - a maioria dos proprietários. Minha observação se limita ao x265 independente ou a sua implantação, seja no ffmpeg ou em qualquer outra coisa. Esses outros codificadores podem ser melhores - não estudei esse PDF de perto.
Gyan