Así que tengo un video sin formato en formato yuv420p input.yuv, y sé su tamaño de cuadro. Ejecuto 2 comandos:
ffmpeg -pix_fmt yuv420p -s 352x288 -i input.yuv -pix_fmt yuv422p input_yuv422p.yuv
y entonces
ffmpeg -pix_fmt yuv422p -s 352x288 -i input_yuv422p.yuv -pix_fmt yuv420p input_decoded.yuv
El problema es que los archivos input.yuvy input_decoded.yuvdifieren. Según tengo entendido, cuando convertimos a yuv422pdesde yuv420p- esencialmente debemos copiar los componentes existentes Uy Vpara producir más muestras para completar; luego, al volver a convertir, simplemente deberíamos dejar caer estas muestras y recibir el archivo original, pero eso no es lo que veo. ¿Estoy haciendo algo mal aquí, y es posible recibir la yuv420pdevolución original ?
420pa 422py la caída de bytes al convertir la espalda - no debe haber ninguna fuente de posibles errores de redondeo. Tal vez mi suposición acerca de la forma en la conversión 420pa 422pque se realiza está mal, y ffmpeghace algún tipo de interpolación de hecho. Verificará las diferencias ahora, gracias.
PSNR y:inf u:51.837944 v:51.936866así que solo el croma difiere. ¿Es posible de alguna manera dar instrucciones ffmpegpara usar los bytes simples de copiar / soltar al convertir entre yuv420py yuv422phacia adelante / hacia atrás?