Video riesig nach Schnitt

Photon

Commodore
Registriert
Apr. 2006
Beiträge
5.036
Hallo Community,

ich bin ziemlich ahnungslos, was Codecs und eine gute Wahl von Einstellungen fürs Encodieren angeht. Seit Kurzem muss ich beruflich kleine Videos aufnehmen und schneiden. Für den Schnitt nutze ich Kdenlive. Mein Problem ist nun, dass das Video vor dem Schnitt z.B. 25MB groß ist (Laufdauer ca 17 Minuten, H264/MP4), aber nach dem Schnitt, bei dem Teile des Videos rausgeschnitten werden, sodass die Laufdauer nur noch ca 11 Minuten beträgt, die Datei knapp 90MB groß wird. Stelle ich die Qualität runter, sodass das Video absolut furchtbar aussieht, lande ich noch bei 40MB.

Es handelt sich um Lernvideos für meine Schüler (Distanzunterricht) und einige haben eine schlechte Leitung, sodass so hohe Dateigrößen besser vermieden werden sollten. Bisher konnte ich die Ursache des Problems aber nicht finden.

Vielen Dank für jeglichen Input!
Photon
 
Wenn es nur darum geht Sachen rauszuschneiden, würde ich das mit ffmpeg ohne reencode machen.
Oder schau dir mal Lossless Cut an. Da werden nur die Teile aus dem Video entfernt die man nicht braucht und es gibt keinen Reencode. Die Datei wird nur neu gepackt. Basiert auf ffmpeg und macht prinzipiell dasselbe, aber halt mit GUI.
 
  • Gefällt mir
Reaktionen: Photon und e_Lap
dann musst du beim codieren/rendern versuchen die Qualität etwas zu reduzieren. Mittelweg zwischen Grösse und scheisse.
Oder mach einen eigenen Youtube Kanal auf welchen man nur mit dem entsprechenden Link zugreifen kann und lad die Videos dort hoch. Oder auf eine Dropbox.
 
@madmax2010: Bei der Aufnahme habe ich als Qualität die Einstellung 30 verwendet (Bereich zwischen 0 [verlustlos] und 51 [maximal komprimiert], Standard-Einstellung ist 23), das gab mir die Ausgangsdatei mit 25MB.

Beim Rendern in Kdenlive habe ich die Standardeinstellung 23 belassen (also minimal höhere Qualität als bei der Aufnahme) und das gab mir die 90MB, obwohl die Länge ja von 17 auf 11 Minuten runterging. Bei einer sehr geringen Qualität (weiß nimmer welche das war, war aber Augenkrebs) war die Datei immer noch 40MB groß.

@Captain Mumpitz: Spielt ja keine Rolle, ob man die Datei von Youtube oder sonst woher runterlädt, die Datei wird ja bei Youtube nicht kleiner. Ich hab einen Webserver auf einem Raspi am Laufen und lade die Datei dort hoch. Das Problem ist eher, dass manche Schüler langsames und instabiles Internet haben.

Wenn schon die Einstellung mit hoher Kompression, wo das Resultat reiner Augenkrebs ist, 40MB groß ist, dann komm ich mit einer mittleren Einstellung wahrscheinlich auch nicht an die originalen 25MB dran, oder? :)

@ghecko: Das klingt ziemlich gut, vielen Dank! Schade, dass damit das Beschleunigen von Videoabschnitten nicht geht (ist gut, wenn man längere Schreibphasen hat), aber sonst macht es genau das, was ich brauche, bloß lossless.
 
Zuletzt bearbeitet:
Es ist vollig normal, daß Videos nach dem Schneiden größer werden. Das liegt daran, daß dein Programm Teile des Films neu kodieren muß, je nach Schnittposition zum Keyframe.
Wenn man nur an Keyframes schneidet, so wird der Film nicht größer. Aber man kann nicht genau schneiden so +/- 2s

Du kannst dein fertiges Video mit ffmpeg komprimieren indem du die Bitrate begrenzt z.b.
ffmpeg -i fim.mp4 -b:v 1M -c:v h264 -c:a copy out.mp4 für 1Mb/s video, audio unverändert.
 
  • Gefällt mir
Reaktionen: Photon
@Photon aber ein 90MB Video streamen sollte ja doch selbst mit einer kleinen Leitung machbar sein?

Wenn du aber Abschnitte beispielsweise auch schneller laufen lassen willst, ist das halt auch mehr Information die irgendwo abgespeichert werden will, das sorgt dann auch nochmals für mehr Volumen.
Da hilft dir nur eine Kompression oder dass du halt so wenig an den Abschnitten rumdokterst wie nur möglich.
 
@cgs: Hilft es denn, wenn man nur stellenweise an Keyframes schneidet, wird dann die Vergrößerung durch den Schnitt geringer?

Der ffmpeg-Befehl ist schon mal nicht übel und hat die Datei von 90MB auf 50MB komprimiert, ohne merklichen Qualitätsverlust. Muss mal gucken, ob da noch mehr geht, danke sehr!

@Captain Mumpitz: Vielleicht rede ich Blödsinn, aber ich dachte, die Größe eines Videos hängt von der Anzahl der Frames und der Größe eines einzelnen Frames (die wiederum von der Auflösung abhängt) ab. Wenn ich jetzt ein Video um Faktor 5 beschleunige, kann ich 4/5 der Frames verwerfen, ohne dass die FPS runtergehen, das müsste ja dann die Dateigröße reduzieren. Aber vielleicht stelle ich mir das zu einfach vor und Encodierungsalgorithmen arbeiten irgendwie anders. :D
 
Zuletzt bearbeitet:
Photon schrieb:
die Datei wird ja bei Youtube nicht kleiner
Doch, wird sie. Die skalieren die Videos in verschiedenen Größen runter bis 144p. Das ist winzig.
 
@CaptainPicard: Ah ok, guter Punkt. Aber das könnte ich natürlich auch tun, nur dass bei so einer Auflösung keiner mehr was erkennen kann. Die Auflösung kann ich also leider nicht reduzieren...

Ich hab noch eine ganz blöde Frage in die Runde: ffmpeg zeigt während des Komprimierens viele solcher Ausgabezeilen:

Code:
frame=17578 fps=170 q=0.0 size=   42752kB time=00:09:46.04 bitrate= 597.6kbits/s

Bezieht sich denn der fps-Wert auf die Encodierungsgeschwindigkeit oder auf die Abspielgeschwindigkeit? Falls Letzteres, wären 170FPS ja ziemlich fett und hätten riesiges Einsparpotential, bei der Aufnahme und auch in Kdenlive sind eigentlich 30FPS eingestellt gewesen. Wird aber wohl nicht der Fall sein...
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: CaptainPicard
Photon schrieb:
Aber vielleicht stelle ich mir das zu einfach vor und Encodierungsalgorithmen arbeiten irgendwie anders.
Moderne Codecs arbeiten mit variablen Bildraten, Flächen und Bewegungsvektoren. Wenn man ein Video beschleunigt ist es zwar kürzer, aber es finden mehr Änderungen /Zeit im Bild statt, was die Kompressionsrate reduziert. Es geht also weniger um einzelne Bilder und mehr um das was darauf über einen Zeitverlauf passiert.
Beim komprimieren älterer Filme muss zb erst mal der Grain raus, das ist der Alptraum eines jeden Codecs. Danach lassen sie sich gut komprimieren.
 
Irgendwann wird das Bildmaterial halt so schlecht dass die Zielgruppe es nicht mehr erträgt. Und das Banding mit 16 Farben erzeugt echt Schmerzen in den Augen.

Es gibt viele Möglichkeiten die Encodingeinstellungen für spezifisches Bildmaterial zu optimieren. Aber ich kenne das Bildmaterial nicht und ich bin auch kein Encodingexperte.
 
@TE ja du kannst naütlich noch weiter runter gehen 1M =1Mb/s; 500k=500kb/s

Das Problem bei dem Befehl ist halt, daß die durchschnittlich Bitrate verwendet wird. Das ist nicht klever, aber gut bei streaming. Willst wirklich eine optimale Kompression haben, so kann man mir variabler Bitrate arbeiten. Aber da muß du die Experten fragen wie das geht.
Ergänzung ()

Photon schrieb:
stellenweise an Keyframes schneidet, wird dann die Vergrößerung durch den Schnitt geringer?
Ich schaue mir einen Film an, und schreibe mir die Zeiten an denen ich schneiden will auf.

Dann nehme ich ffmpeg -i film.mkv -ss startzeit -to endzeit schnitt1.mkv
und die Einzelteile kann man dann mit ffmpeg -i schnitt1.mkv -i schnitt2.mv out.mkv zusammenhängen.

Da gibt es bestimmt Tools dafür.
 
Zuletzt bearbeitet von einem Moderator:
@ghecko: Bei einer Kameraaufnahme würd ich das auch nicht tun, aber ich mache ja eine Bildschirmaufnahme und da ist ein Arbeitsblatt, das zu großen Teilen schwarz-weiß ist, manchmal mit farbigen Markierungen. Da braucht es also wirklich nur wenige Farben und es ist auch nicht furchtbar schlimm, wenn die Farben der Markierungen ein bisschen verschoben werden würden.

@cgs: Das muss ich alles interaktiv machen, sonst komm ich durcheinander. :) Mein Schnittbild sieht etwa so aus: https://i.imgur.com/rR0J1dt.png Also sehr viele Schnitte, wo die Position exakt stimmen muss.
 
Zuletzt bearbeitet:
Photon schrieb:
da ist ein Arbeitsblatt,
Selbst ein simples Arbeitsblatt bedient sich bei einer Kameraaufnahme tausenden von Farben. Allein um Helligkeitsverläufe darzustellen. Oder Übergänge von Schrift zu Papier. Entfernt man das alles, sieht das Bild völlig unnatürlich aus und es ist extrem anstrengend, sich auf solche Sachen zu konzentrieren, weil das Gehirn sich gerne von solchen Dingen ablenken lässt. Somit ist der tatsächliche Nutzen des Videos durch diesen Eingriff stark reduziert.
 
@ghecko: Ich filme das Blatt nicht mit einer Kamera sondern habe es auf dem Bildschirm und fülle es mit einem Stylus aus. Das nehme ich dann direkt vom Bildschirm auf (ist also eine Bildschirmaufnahme, keine Kameraaufnahme). Sorry, hätte ich gleich am Anfang dazusagen sollen. :)
 
Wenn man den Videostream original/unangtastet lassen möchte ist Schneiden nur an Keyframes und somit meist nicht genau an der gewünschten Stelle möglich, in jedem anderen Fall muss das Video reenkodiert werden. Wie groß das geschnittene Video dabei wird hängt von den Qualitätseinstellungen ab.

Richtige Vorgehensweise wäre das Video in bestmöglicher Qualität aufzunehmen, zu schneiden(kann da Shotcut empfehlen) und mit sinnvollen Parametern zu exportieren.

Falls sekundengenaues Schneiden nicht unbedingt nötig ist kannst du dir ja mal Avidemux anschauen. Da kannst du mit den Pfeiltasten jeweils zu Keyframes(I-Frames) springen und dann Markierungen setzen. Dann auf "Bearbeiten" und die Stelle ausschneiden.

Video und Audioeinstellungen kannst du dabei auf "Copy" belassen, Ausgabeformat "MP4" und das Video einfach neu speichern.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Bob.Dig
Photon schrieb:
Für den Schnitt nutze ich Kdenlive. Mein Problem ist nun, dass das Video vor dem Schnitt z.B. 25MB groß ist (Laufdauer ca 17 Minuten, H264/MP4)
Warum Kdenlive ?
Ein rudimentärer Schnitt mit TS Muxer ist blitzschnell und ohne Reencoding. Der Wechsel nach .ts bleibt unbedenklich. Anschließend nach .mp4 umbenennen und alles wie gehabt nur passend.
Es sei denn, einfache Wege sind nicht gefragt.
1610830962055.png
 
Zuletzt bearbeitet:
Zurück
Oben