Wenn du in 60fps renderst solltest du den GoP auf 30 einstellen. GoP sollte die Hälfte der Fps entsprechen.
Das ist nur für Livestreaming richtig. Aber auch da wäre eher 120 Frames (2sek bei 60fps) bei weitem sinnvoller.
Das hat was damit zu tun das du eine gute Spulbarkeit hast (so das wenn ein Zuschauer einen Livestream aufruft er schnell zu einem Keyframe (den Beginn einer neuen GOP) gelangt und Bild hat, als auch wenn es mal nachbuffern sollte, das eben schnell wieder ein Bild da ist.
Für lokale Dateien ist es jedoch absolut kontraproduktiv. Eine derart kurze GOP Länge zwingt dem Encoder zu einer unnötig häufigen Nutzung von Vollframe Bildern, die er sehr oft noch gar nicht gebraucht hätte. Ganz besonders wenn z.B. kaum was am Bild passiert (Menüs, Desktop oder solche Dinge). Bei nur ner halben Sek GOP Länge müsste der dann trotzdem ständig einen vollständigen Frame speichern, auch wenn sich weiterhin nur z.B. die Position des Mauszeigers geändert hat.
In der Regel braucht der Encoder erst ein neues Vollbild, wenn die Frameveränderung größer als 40% ist.
Bei einer GOP Länge von nur 'ner halben Sekunde würde der selbst bei komplexem ingame furchtbar limitiert werden
Ideal wäre natürlich eine infinite GOP Länge. Aber (und das gilt nur für lokal, youtube codiert ja eh neu) dann lassen sich natürlich auch die Videos bei großen GOP Längen nur langsam spulen, weil der Videoplayer ja dann all die ganzen b-frames ref-frames usw zu einem Bild zusammenrechnen muss, wenn du mitten rein spulst (oder man stellt den Videoplayer ein das er nur zu keyframes spulen soll, nur ist die Spulposition dann ne andere als wo man hingeklickt hat je nach GOP Länge.) So kann dann aber ein pures Desktopvideo oder ein Standbildvideo dann durchaus nur 1 MB + Audio sein, wenn der Encoder nur den ersten Frame vollständig speichern brauchte
Wenn man also z.B. bloß ein Standbildvideo hochladen möchte, würde sich das sehr anbieten.
Wer die Spulbarkeit jedoch auch lokal wahren möchte:
Als Faustregel gitl: Max GOP Länge = 10fache der FPS Rate.
10 Sekunden lassen sich noch ziemlich gut spulen, auch wenn man den Player erlaubt auch außerhalb von keyframes reinzuspulen.
Naja bitraten encode würd ich nicht empfehlen. Fixe Framequalität halte ich für wertvoller als bauchgerate wieviel der encoder brauchen könnte und somit variable Qualität haben, oder sich so abzusichern das man ne sehr hohe Bitrate nimmt, aber mehr Uploadaufwand hat.
Da ist CQP (noch besser wäre CRF, aber das geht nur bei x264 vernünftig)