¿Qué significa codificar un archivo yuv422 a yuv420 mediante la codificación sin pérdidas libx264?

Tengo un archivo AVI input.avicodificado en HQel que tiene yuv422formato según ffprobe.

Ahora, si ejecuto el siguiente comando

ffmpeg -i input.avi -c:v libx264 -crf 0 -pix_fmt yuv420p out.mp4

¿ Será out.mp4sin pérdidas en comparación con input.avi? o será 'sin pérdidas' excepto la mitad de la información Uy Vse pierde?

No si. Prácticamente respondiste tu propia pregunta en la última línea.
Por cierto, puedes codificar h.264 en yuv422, pero no todos los jugadores lo reproducirán
@stib ¡Gracias! Quiero calcular el PSNR y el SSIM entre input.aviun archivo mp4 codificado. Pero el formato yuv es diferente, por lo que estoy codificando el input.aviyuv420p mp4 'sin pérdidas', luego calculo el PSNR y el SSIM.
Basta con mirar la puntuación SSIM para el plano luma. U y V no son relevantes en este caso. O puede reducir la muestra del AVI a 4: 2: 0 antes de pasarlo a los filtros de comparación de calidad, es decir[1]format=yuv420p[a];[0][a]psnr..
@Mulvya Gracias! ¿Podría por favor dar una muestra de comando completo? Soy nuevo en ffmpeg, no estoy seguro de cómo agregar [1]format=yuv420p[a];[0][a]psnr..a mi comando

Respuestas (1)

Para comparar directamente el YUV422P AVI y el YUV420P MP4,

ffmpeg -i input.avi -i out.mp4
   -filter_complex
      "[0]format=yuv420p,split[avi-p][avi-s];
       [1][avi-p]psnr;[1][avi-s]ssim" -f null -
Da un valor promedio en la terminal, ¿cómo podemos generar un archivo de registro con los valores de cada cuadro? Lo intenté -lavfi psnr="stats_file=psnr.log"pero sin suerte.