FFmpeg reduziert trotz niedriger CRF-Qualität die Videoqualität

358
dylanweber

Ich habe versucht, eine Sammlung von Videos zu kodieren. Ich muss unnötige Logos von Anfang an entfernen und die Dateigröße reduzieren. Ich verwende FFmpeg, um etwa 6,2 Sekunden oder 186 Frames nach dem Start des Videos zu starten. Als ich fertig war, sah ich horizontale Linien, die auf Interlacing hindeuteten, also versuchte ich -vf yadif, mein Bash-Skript hinzuzufügen . Hier ist mein Skript zum Kodieren:

if [[ $PWD = *"show_name"* ]]; then for i in ;  do ffmpeg -ss 6.2 -i "./show name - s2e$i.mkv" -c:v libx264 -preset slow -crf 16 -vf yadif -c:a copy "/blah/blah/show name - s2e$i.mkv"; done fi 

Wenn das Skript fertiggestellt ist, habe ich ein Video, das kaum in Ordnung erscheint, wenn man bedenkt, dass es "optisch verlustfrei" ist. Hier einige visuelle Beispiele.

Bildvergleich

Das oberste Bild ist das Originalmedium. Das untere Bild ist das neue, codierte Medium. Beachten Sie die hohe Anzahl fehlerhafter Pixel um hell schattierte Bereiche. Ist dies das Ergebnis des Interlacing-Filters? Wie kann ich die Bildqualität verbessern? Ich versuche wirklich, ein paar Sekunden vom Anfang des Clips zu entfernen.

Wenn ich -c copymeine ffmpeg-Einstellungen verwendete, wurden die Medien ursprünglich direkt kopiert, wodurch die ersten zehn Frames in den Medien übersprungen wurden, da, wie ich annehme, kein Keyframe für die Fortsetzung (?) Vorhanden war. Hier finden Sie die MediaInfo-Videoinformationen zur ursprünglichen Videodatei.

Wie kann ich die ersten 6,2 Sekunden oder 186 Frames jedes Clips entfernen, während die Originalqualität der Videodatei erhalten bleibt?

0
Haben Sie versucht, den Parameter "-ss" nach dem "-i" zu setzen, wenn Sie den "-c copy" -Ansatz verwenden? Versuchen Sie: `ffmpeg -i" ./show name -s2e $ i.mkv "-ss 00: 00: 06.2 -c kopiert" / blah / blah / show name - s2e $ i.mkv "` in Ihr Skript. Siehe auch [das ausgezeichnete ffmpeg-Dokument von slhck] (https://blog.superuser.com/2012/02/24/ffmpeg-the-ultimate-video-and-audio-manipulation-tool/). Suchen Sie nach 'Video schneiden'. Ebenfalls verwandt: [Verwenden von ffmpeg zum Schneiden von Videos] (https://superuser.com/questions/138331/using-ffmpeg-to-cut-up-video) mcalex vor 5 Jahren 1
@mcalex Dein Tipp schien zu helfen, aber es sieht auch so aus, als ob die neuen Videodateien, die ich zu kodieren versuche, tatsächlich interlaced sind und ffmpeg versucht, sie beim Kodieren in progressiv zu konvertieren, was die Qualität ruiniert. Irgendeine Idee dort? dylanweber vor 5 Jahren 0
Außerdem schien das Aktivieren des Detelecine-Filters in Handbrake das Problem vollständig zu beheben. Möglicherweise hatte ich den falschen Filter verwendet. dylanweber vor 5 Jahren 1
Cool. Ich würde vorschlagen, den `crf` noch weiter wegzulassen (yah - jenseits des Verstandes) oder vielleicht bei den [Video Production-Experten] (https://video.stackexchange.com/) nachschauen. mcalex vor 5 Jahren 0
Sieht aus, als hätten Sie es gelöst, aber diese sind Interlacing-Artefakte und stehen nicht im Zusammenhang mit dem CRF-Wert. Gyan vor 5 Jahren 1

0 Antworten auf die Frage