Fraps -> Huffyuv -> kodowanie x264: Kolory wyglądają na wyprane

0

Nagrałem grę przy użyciu fraps. Nagrane wideo wyglądało świetnie.

Następnie zredagowałem wideo i zakodowałem je bezstratnym kodekiem Huffyuv. Film wyglądał świetnie.

W końcu zakodowałem wideo przy pomocy x264 w FFmpeg i kolory wyglądały na wyprane.

Zrzuty ekranu:

Huffyuv (wygląda świetnie):

Oryginał

x264 (wygląda na wypranego):

Kopiuj

Ustawienia 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

Kiedy kodowałem przy pomocy x264, otrzymałem następujące ostrzeżenie:

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

Jak naprawić kolory, aby wyglądały tak samo jak w oryginalnym wideo?

AKTUALIZACJA:

Próbowałem ustawień x264 Mulvya (kolory nadal wyglądają na wyprane):

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

Mulvya

wypróbowałem przełącznik x-264 „-pix_fmt yuv420p” (obraz wygląda ciemniej, kolory nadal są wyprane)

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

wypróbowałem przełącznik „-pix_fmt yuvj420p” x264 (Obraz wygląda ciemniej niż w oryginale):

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

Pełne wyjście konsoli: http://pastebin.com/3cJNvVjL

Czyste Niebo
źródło

Odpowiedzi:

1

Próbować

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

Może to być także problem z przestrzenią kolorów, ale zobaczmy, czy to nie zadziała.

Gyan
źródło
Co się stanie, gdy spróbujesz -pix_fmt yuv420p?
szatmary
Spróbowałem, a kolory wciąż wyglądają na wyprane; zobacz mój zaktualizowany post w celu porównania zdjęć.
ClearSky,
@szatmary Próbowałem tego przełącznika, a wideo jest nieco ciemniejsze, ale kolory nadal wyglądają na wyprane; zobacz mój zaktualizowany post do porównania.
ClearSky
Ok, a następnie spróbuj z -pix_fmt yuvj420pdodanymi do oryginalnych poleceń. Jeśli nie ma zmian, pokaż pełne wyjście konsoli.
Gyan
@Mulvya Próbowałem, obraz wygląda ciemniej niż oryginał. Oto pełne wyjście konsoli: pastebin.com/3cJNvVjL
ClearSky
0

Istnieje coś takiego jak kompresja kolorów. Pełny RGB jest tym, co chcesz wybrać, aby zachować cały kolor. YUV422 lub YUV420 zauważalnie zabiorą dużo kolorów (YUV444 robi trochę, ale prawie nie do odróżnienia). Powodem, dla którego wyglądało dobrze na Fraps i HuffYuv, jest to, że RGB jest ich domyślną przestrzenią kolorów, co oznacza brak kompresji kolorów. W x264 powinna być YUV 420, 422, 444, RGB, a nawet ta SZARA opcja. Tak, kodek wideo może z łatwością zachować wszystkie kolory, jeśli zostanie ustawiony w ten sposób.

użytkownik1038471
źródło