[Gelöst] Shotcut Einstellungen für GOP und B-Frames

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

[Gelöst] Shotcut Einstellungen für GOP und B-Frames

Beitrag von ottonormal » 10.11.2021 14:15:45

Hallo,

für die Bearbeitung meiner selbsterstellten Videos nutze ich neuerdings "Shotcut". Es bietet mir zwar nicht alles, was kdenlive kann, dafür habe ich aber alle Einstellungen zum Im- und Export, die ich bei kdenlive vermisse.

Womit ich aber Probleme habe, dass sind bei den Exporteinstellungen die Werte für:

GOP (Bilder)
und
B-Frames

Diese Werte werden bei jedem Video automatisch festgelegt. Bei meinen Videos sind das:

GOP=300 Bilder
B-Frames=3

Mit diesen Einstellungen erziele ich dann zwar recht gute Ergebnisse, die Renderzeit ist aber unverhältnismäßig hoch. Bei einem einstündigen Video mit unten stehenden Daten sind das fast 3 Stunden. Das kann aber doch nicht normal sein, oder?

Container: MKV

Größe: 1024 x 424
Codec: libx264
Bitrate: 1000 kbps
Bildrate: 60fps

Ich nehme an, dass die Werte von GOP und B-Frames dafür verantwortlich sind. Im Netz ist ja einiges dazu zu finden, weitergeholfen hat mir das aber auch nicht.

Wer kennt sich damit aus, wie muss ich das einstellen um ein gutes Ergebnis in einer "normalen" Renderzeit zu erzielen?
Länger als das Video selbst sollte die Renderzeit wohl absolut nicht sein. Wenn ich ein solches Video mit ffmpeg konvertiere, braucht das maximal die halbe Videodauer. Am Rechner liegt das also ganz sicher nicht.
Zuletzt geändert von ottonormal am 10.11.2021 22:10:10, insgesamt 1-mal geändert.

Benutzeravatar
MSfree
Beiträge: 10752
Registriert: 25.09.2007 19:59:30

Re: Shotcut Einstellungen für GOP und B-Frames

Beitrag von MSfree » 10.11.2021 14:50:55

Zur Erklärung von GOP und B-Frames dürfte diese Seite erhellend sein:
https://de.wikipedia.org/wiki/Bildergruppe

Wozu das ganze?
I-Frames sind vollständige Bilder, B-Frames und P-Frames sind Differenzbilder. B-Frames tragen wesentlich weniger Informationen als I-Frames, lassen sich also erheblich besser komprimieren. Ein Film, der praktisch nur aus I-Frames besteht, würde die höchste Kompressionsrate erzielen.

Theoretisch könnte man einen 3 stündigen Film mit nur einem einzigen I-Frame (das erste Bild) und danach ausschließlich B-Frames kodieren. Das Problem dabei ist aber, daß man bei so einem Film nicht vor- und rückspulen kann, sowas muß von vorn bis hinten linear durchgeschaut und abgespielt werden. Daher fügt man alle soundsoviele Bilder einen I-Frame ein. Die Zahl der Bilder von einem I-Frame zum nächsten nennt sich dann GOP (group of pictures). Mit deiner Einstellung von 300 und 60FPS hast du also alle 5 Sekunden ein I-Frame, schnelles Vorspulen in so einem Film klappt dann immer auf Positionen von ganzen 5 Sekunden.

Die GOP könntest du meines Erachtens höher einstellen. Ein I-Frame alle 10-15 Sekunden sollte eigentlich ausreichen, bei 60FPS würde das einen Wert von 600-900 ergeben. Noch größere Werte sind allerdings einigermassen sinnlos, da harte Schnitte im Film bewirken, daß das Differenzbild praktisch identisch mit einem I-Frame ist und sich entsprechend schlecht komprimieren läßt. Typischerweise hat man in Filmen aber sowieso alle 10-30 Sekunden einen harten Schnitt, so daß eine deutlich Erhöhung der GOP jenseits von 10-15 Sekunden keinen maßgeblichen Effekt mehr hat. Den Abstand zwischen P-Frames könntest du dann auch noch hochsetzen, hier sollten auch Abstände von 10-20 ausreichen.

Die Abstände zwischen P-Frames und I-Frames haben nur indirekt mit der Filmqulität zu tun. Je mehr I-Frames und P-Frames desto schlechter läßt sich das Material komprimieren. Die eingestellte Bitrate muß dann für I-Frames "verschwendet" werden. Dem kann man durch erhöhen der Bitrate und/oder durch vergrößern der Abstände entgegen steuern.

Wie sich das auf die Kodiergeschwindigkeit auswirkt, kann ich dir aber nicht sagen.

MaGe
Beiträge: 1715
Registriert: 01.06.2014 17:12:16

Re: Shotcut Einstellungen für GOP und B-Frames

Beitrag von MaGe » 10.11.2021 15:52:24

ottonormal hat geschrieben: Bei einem einstündigen Video mit unten stehenden Daten sind das fast 3 Stunden. Das kann aber doch nicht normal sein, oder?
und
ottonormal hat geschrieben:
Ich nehme an, dass die Werte von GOP und B-Frames dafür verantwortlich sind

Das hat nichts mit GOP und denn B-Frames zu tun.

Konvertieren 3 Mintuten -r 60 frame Sekunde, -g 300 alle 5 Sekunden ein Iframe

-r 60 -g 300 -bf:v 2 = real 0m47,054s

-r 60 -g 300 -bf:v 3 = real 0m46,736s

-r 60 -g 300 -bf:v 4 = real 0m46,598s



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Shotcut Einstellungen für GOP und B-Frames

Beitrag von ottonormal » 10.11.2021 17:27:15

Vielen Dank für Eure sehr ausführlichen Antworten.
Ich habe inzwischen div. Tests durchgeführt und dabei festgestellt, dass GOP und B-Frames tatsächlich wenig mit den Renderzeiten zu tun haben.

Was es aber gebracht hat, war der Wert "Codec Threads". Der steht standardmäßig auf "0" und ich hatte den deshalb dummerweise bisher immer ignoriert. Die 0 bedeutet aber "=automatisch", was immer das auch heißt. Jedenfalls habe ich den jetzt mal auf "1" gestellt und damit folgende Ergebnisse erzielt:

Mein Testvideo hat eine Länge von 56 Minuten.
Bei GOP=15, B-Frames=2, CodecTreads=1
beträgt die Renderzeit dafür nun: 44 Minuten.

Der zweite Versuch mit den Standardwerten:
GOP=300, B-Frames=3
und die CodecTreads ebenfalls=1
Die Renderzeit dafür nun: 53 Minuten.

Ein kleiner Unterschied der unterschiedlichen GOP-Einstellungen ist aber schon vorhanden.
Welcher von diesen beiden Tests besser ist, weiß ich nicht. Einen Unterschied kann ich nicht erkennen. Auf jeden Fall kann ich mit beiden Ergebnissen sehr gut leben.
Oder könnten "GOP=15 und B-Frames=2" irgendwelche Nachteile im Gegensatz zu den Standardwerten "GOP=300 und B-Frames=3" mit sich bringen?

MaGe
Beiträge: 1715
Registriert: 01.06.2014 17:12:16

Re: Shotcut Einstellungen für GOP und B-Frames

Beitrag von MaGe » 10.11.2021 19:45:50

ottonormal hat geschrieben: Oder könnten "GOP=15 und B-Frames=2" irgendwelche Nachteile im Gegensatz zu den Standardwerten "GOP=300 und B-Frames=3" mit sich bringen?
Die GOP-Länge:
Damit wird der maximale Abstand zwischen I-Frames festgelegt. Eine sehr hohe GOP-Länge führt zu einer etwas effizienteren Komprimierung, erschwert aber die Suche im Video.


B-Frames:
Ssind ein Kernelement von H.264 und sind in H.264 effizienter als in jedem früheren Standard. Für einige spezifische Ziele, wie HD-DVD und Blu-Ray, gibt es Beschränkungen für die Anzahl der aufeinanderfolgenden B-Frames. In den meisten Fällen ist dies jedoch nicht der Fall. Daher hat die Einstellung auf das Maximum (16) kaum negative Auswirkungen,da x264 bei Verwendung von B-adapt ohnehin automatisch die beste Anzahl von B-Frames wählt.



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

mludwig
Beiträge: 794
Registriert: 30.01.2005 19:35:04

Re: Shotcut Einstellungen für GOP und B-Frames

Beitrag von mludwig » 10.11.2021 20:05:11

Codec Threads ist die Fähigkeit deines Prozessors, mehrere Aufgaben parallel zu bearbeiten. Der Wert sollte also auf die Anzahl der Kerne deiner CPU abgestimmt werden. Also 4 Kerne --> "codec threads" = 4. Damit würde er im Idealfall auch vier mal schneller rechnen, was aber in der Realität nur selten klappt.

Falls du deine CPU Infos nicht im Kopf hast, kannst du mit cat /proc/cpuinfo nachsehen wieviele Kerne es gibt.

Code: Alles auswählen

cat /proc/cpuinfo | grep processor
processor	: 0
processor	: 1
processor	: 2
processor	: 3
processor	: 4
processor	: 5
processor	: 6
processor	: 7
processor	: 8
processor	: 9
processor	: 10
processor	: 11
processor	: 12
processor	: 13
processor	: 14
processor	: 15
Der hier hätte also 16 CPUs.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Shotcut Einstellungen für GOP und B-Frames

Beitrag von ottonormal » 10.11.2021 22:08:51

Danke auch für diese wertvollen Tipps.
Wenn ich es also alles richtig verstanden habe, kann ich die Standardwerte von Shotcut bei GOP und B-Frames bedenkenlos übernehmen.
Der Prozessor meines Videorechners hat 8 Kerne. Ich habe deshalb jetzt mal beim Export meines Testvideos (siehe oben) 6 Kerne dafür gewählt. Damit dauerte das nur noch 29 Minuten statt der 44 / 53 Minuten bei den vorherigen Tests. Das ist meiner Meinung nach ein sehr guter Wert, damit bin ich mehr als zufrieden. :wink:

Noch mal vielen Dank, ich habe viel gelernt. :THX:

Benutzeravatar
borrtux
Beiträge: 128
Registriert: 11.01.2021 22:26:20

Re: [Gelöst] Shotcut Einstellungen für GOP und B-Frames

Beitrag von borrtux » 11.12.2021 19:56:46

ottonormal hat geschrieben: ↑ zum Beitrag ↑
10.11.2021 14:15:45

Bildrate: 60fps
Das erscheint mir auch sehr hoch. Reicht da nicht die Hälfte - 30fps?
Oder etwas mehr?
Viele Grüße
Borrtux :D

Antworten