Tengo un archivo PNG con blanco sobre rojo y sin suavizado en absoluto: cada píxel es blanco o rojo, pero cuando lo codifico en MP4 usando ffmpeg -i test.png -profile:v high444 -pix_fmt yuv444p -loop 1 -crf 0 -framerate 30 -c:v libx264 -t 15 test444.mp4
la salida, se agregan píxeles oscuros y el color blanco cambia. Vea la captura de pantalla ampliada a continuación para ver antes y después. Reproduje el archivo mp4 con ffplay
por cierto.
PNG originales a continuación:
Es un artefacto de representación, no un error real.
Ver
ffplay test444.mp4 -vf scale=iw*16:-1:flags=neighbor
y
ffmpeg -i test444.mp4 roundtrip.png
No debería ver píxeles negros.
Actualización : ffplay reduce las muestras de las entradas YUV a 420 antes de la conversión final a RGB.
[swscaler @ 0000000005a82800] bicubic scaler, from yuv444p to yuv420p using MMXEXT
Puede evitar artefactos llamando directamente al filtro de formato de píxeles.
ffplay test444.mp4 -vf format=bgra
gian
g491
gian
g491
gian
g491
ffplay test444.mp4
y captura de pantalla tomada con Greenshot (tenga en cuenta que una captura de pantalla del archivo PNG no tiene problemas, solo del archivo MP4 resultante). Gracias