Fraps -> Huffyuv -> кодировка x264: цвета выглядят размытыми

Fraps -> Huffyuv -> кодировка x264: цвета выглядят размытыми

Я записал игру с помощью fraps. Записанное видео выглядело отлично.

Затем я отредактировал видео и закодировал его с помощью кодека Huffyuv lossless. Видео выглядело великолепно.

Наконец, я закодировал видео с помощью x264 в FFmpeg, и цвета выглядели размытыми.

Скриншоты:

Huffyuv (выглядит великолепно):

Оригинал

x264 (выглядит размытым):

Копировать

Настройки 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

При кодировании с помощью x264 я получил следующее предупреждение:

No pixel format specified, yuv444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.

Как исправить цвета, чтобы они выглядели так же, как в оригинальном видео?

ОБНОВЛЯТЬ:

Попробовал настройки Mulvya x264 (цвета все еще выглядят размытыми):

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 yuv420p

попробовал ключ "-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

pix_fmt yuvj420p

Полный вывод консоли: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

Это также может быть проблема цветового пространства, но давайте посмотрим, сработает ли это.

решение2

Есть такая штука, как сжатие цвета. Полный RGB — это то, что вам нужно выбрать, чтобы сохранить все цвета. YUV422 или YUV420 заметно уберут много цвета (YUV444 делает немного, но почти неразличимо). Причина, по которой это выглядело хорошо на Fraps и HuffYuv, заключается в том, что RGB — это их цветовое пространство по умолчанию, что означает отсутствие сжатия цвета. В x264 должны быть YUV 420, 422, 444, RGB и даже эта опция GREY. Да, видеокодек может легко сохранить все цвета, если вы установите его таким образом.

Связанный контент