
Grabé un juego usando fraps. El vídeo grabado se veía genial.
Luego edité el vídeo y lo codifiqué con el códec sin pérdidas Huffyuv. El vídeo se veía genial.
Finalmente, codifiqué el video con x264 en FFmpeg y los colores parecían descoloridos.
Capturas de pantalla:
Huffyuv (se ve genial):
x264 (parece descolorido):
Configuración x264:
ffmpeg -y -i "D:\Project\TestHuffyuv.avi" -c:v libx264 -b:v 1000k -pass 1 -passlogfile D:\Project\Stats -f mp4 NUL
ffmpeg -y -i "D:\Project\TestHuffyuv.avi" -c:v libx264 -b:v 1000k -pass 2 -passlogfile D:\Project\Stats D:\Project\FFmpeg_MP4.mp4
Cuando estaba codificando con x264, recibí la siguiente advertencia:
No pixel format specified, yuv444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
¿Cómo arreglo los colores para que se vean igual que en el video original?
ACTUALIZAR:
Probé la configuración x264 de Mulvya (los colores todavía parecen descoloridos):
ffmpeg -y -color_range 2 -i "D:\Project\TestHuffyuv.avi" -vf scale=in_range=full:out_range=tv -c:v libx264 -b:v 1000k -color_range 1 -pass 1 -passlogfile D:\Project\Stats -f mp4 NUL
ffmpeg -y -color_range 2 -i "D:\Project\TestHuffyuv.avi" -vf scale=in_range=full:out_range=tv -c:v libx264 -b:v 1000k -color_range 1 -pass 2 -passlogfile D:\Project\Stats D:\Project\FFmpeg_MP4.mp4
Probé el interruptor x264 "-pix_fmt yuv420p" (la imagen se ve más oscura, los colores aún están descoloridos):
ffmpeg -y -i "D:\Project\TestHuffyuv.avi" -c:v libx264 -pix_fmt yuv420p -b:v 1000k -pass 1 -passlogfile D:\Project\Stats -f mp4 NUL
ffmpeg -y -i "D:\Project\TestHuffyuv.avi" -c:v libx264 -pix_fmt yuv420p -b:v 1000k -pass 2 -passlogfile D:\Project\Stats D:\Project\FFmpeg_MP4.mp4
Probé el interruptor x264 "-pix_fmt yuvj420p" (la imagen se ve más oscura que la original):
ffmpeg -y -i "D:\Project\TestHuffyuv.avi" -c:v libx264 -pix_fmt yuvj420p -b:v 1000k -pass 1 -passlogfile D:\Project\Stats -f mp4 NUL
ffmpeg -y -i "D:\Project\TestHuffyuv.avi" -c:v libx264 -pix_fmt yuvj420p -b:v 1000k -pass 2 -passlogfile D:\Project\Stats D:\Project\FFmpeg_MP4.mp4
Salida de consola completa:http://pastebin.com/3cJNvVjL
Respuesta1
Intentar
ffmpeg -y -color_range 2 -i "D:\Project\TestHuffyuv.avi" -vf scale=in_range=full:out_range=tv -c:v libx264 -b:v 1000k -color_range 1 -pass 1 -passlogfile D:\Project\Stats -f mp4 NUL
ffmpeg -y -color_range 2 -i "D:\Project\TestHuffyuv.avi" -vf scale=in_range=full:out_range=tv -c:v libx264 -b:v 1000k -color_range 1 -pass 2 -passlogfile D:\Project\Stats D:\Project\FFmpeg_MP4.mp4
También podría ser un problema de espacio de color pero veamos si esto no funciona.
Respuesta2
Hay algo llamado compresión de color. Full RGB es lo que desea seleccionar para mantener todo el color. YUV422 o YUV420 eliminarán notablemente mucho color (YUV444 lo hace un poco, pero casi indistinguible). La razón por la que se veía bien en Fraps y HuffYuv es porque RGB es su espacio de color predeterminado, lo que significa que no hay compresión de color. En x264 debería haber YUV 420, 422, 444, RGB e incluso esta opción GRIS. Sí, el códec de vídeo puede conservar fácilmente todos los colores si lo configura de esa manera.