Fraps -> Huffyuv -> x264 encoding: The colors looks washed out
I recorded a game using fraps. The recorded video looked great.
Then I edited the video and encoded it with Huffyuv lossless codec. The video looked great.
Finally, I encoded the video with x264 in FFmpeg and the colors looked washed out.
Скриншоты:
Huffyuv (looks great):
x264 (looks washed out):
x264 settings:
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
Когда я кодировал с x264, я получил следующее предупреждение:
No pixel format specified, yuv444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
Как исправить цвета, чтобы они выглядели так же, как в оригинальном видео?
ОБНОВИТЬ:
Пробовал настройки x264 Mulvya (цвета все еще выглядят размытыми):
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
пробовал переключатель "-pix_fmt yuv420p" x264 (изображение выглядит темнее, цвета по-прежнему размыты):
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
попробовал переключатель "-pix_fmt yuvj420p" x264 (изображение выглядит темнее оригинала):
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
Полный вывод на консоль: http://pastebin.com/3cJNvVjL
1 ответ
Пытаться
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
Это также может быть проблемой цветового пространства, но давайте посмотрим, если это не сработает.
Есть такая вещь, как сжатие цветов. Полный RGB - это то, что вы хотите выбрать, чтобы сохранить все цвета. YUV422 или YUV420 заметно уберут много цветов (YUV444 делает немного, но почти неразличимо). Причина, по которой он хорошо выглядел на Fraps и HuffYuv, заключается в том, что RGB является цветовым пространством по умолчанию, что означает отсутствие сжатия цвета. В x264 должны быть YUV 420, 422, 444, RGB и даже эта опция GREY. Да, видеокодек может легко сохранить все цвета, если вы установите его таким образом.