
Ich habe ein Spiel mit Fraps aufgenommen. Das aufgenommene Video sah großartig aus.
Dann habe ich das Video bearbeitet und mit dem verlustfreien Huffyuv-Codec codiert. Das Video sah großartig aus.
Schließlich habe ich das Video mit x264 in FFmpeg codiert und die Farben sahen verwaschen aus.
Screenshots:
Huffyuv (sieht toll aus):
x264 (sieht verwaschen aus):
x264-Einstellungen:
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
Beim Kodieren mit x264 erhielt ich die folgende Warnung:
No pixel format specified, yuv444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
Wie korrigiere ich die Farben, sodass sie genauso aussehen wie im Originalvideo?
AKTUALISIEREN:
Habe die x264-Einstellungen von Mulvya ausprobiert (die Farben sehen immer noch verwaschen aus):
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
habe den x264-Schalter „-pix_fmt yuv420p“ ausprobiert (das Bild sieht dunkler aus, die Farben sind immer noch verwaschen):
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
habe den x264-Schalter „-pix_fmt yuvj420p“ ausprobiert (Bild sieht dunkler aus als das 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
Vollständige Konsolenausgabe:http://pastebin.com/3cJNvVjL
Antwort1
Versuchen
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
Es könnte auch ein Farbraumproblem sein, aber schauen wir mal, ob das nicht funktioniert.
Antwort2
Es gibt eine Sache namens Farbkompression. Um alle Farben beizubehalten, sollten Sie Full RGB auswählen. YUV422 oder YUV420 nehmen merklich viel Farbe weg (YUV444 tut ein wenig, aber es ist kaum zu unterscheiden). Der Grund, warum es bei Fraps und HuffYuv gut aussah, ist, dass RGB ihr Standardfarbraum ist, was bedeutet, dass keine Farbkompression stattfindet. Bei x264 sollte es YUV 420, 422, 444, RGB und sogar diese GREY-Option geben. Ja, der Videocodec kann problemlos alle Farben beibehalten, wenn Sie ihn so einstellen.