glückspilz
Anmeldungsdatum: 26. November 2007
Beiträge: 218
Wohnort: Nimmerland
|
Hallo zusammen, ich habe mal eine Frage zu Videos. Angenommen ich habe ein Video, das bereits im Format mp4 vorliegt. Angenommen es dauert 1,25 h lang. Nun möchte ich aber Teile des Videos raus-schneiden ohne das Format oder die Videogröße Auflösung oder sonstwas zu ändern. Das Video soll exakt die gleichen Einstellungen haben, allerding soll sagen wir mal die ersten 5 min. und die letzten 10 min. raus geschnitten werden. Das Video soll also ab Stunde 0,05 bis zu 1,15 h laufen. Ich habe gehört mit ffmpeg könnte man das machen. Welchen Befehl müsste ich da eingeben um das über das Terminal zu machen? Wie gesagt sollen alle Parameter des Videos erhalten bleiben, bis auf die Länge.
|
Bleys
Anmeldungsdatum: 13. August 2006
Beiträge: 6172
|
Beispiel: Das schneidet ab Sekunde 300 (5 min.) 4500 Sekunden (75 Minuten) raus und speichert es in output.mp4 | ffmpeg -ss 300 -i input.mp4 -c copy -t 4500 output.mp4
|
Ob dabei I-Frames (Keyframes) berücksichtigt werden, weis ich nicht. Wenn nicht, kann es zu Klötzchenbildung zu Beginn und Ende kommen. Ich nehme schon immer für solche Aufgaben Avidemux. Da kann ich grafisch exakt an den I-Frames schneiden.
|
Catweazel1
Anmeldungsdatum: 2. Mai 2014
Beiträge: 238
|
Geht mit Avidemux am besten. Sequenzen rausschneiden, löschen und die verbleibende Datei (keine Veränderungen in Auflösung, Seitenverhältnis usw.!) in einen Ordner Geschnittene Videos auf der Festplatte ablegen/kopieren. So habe ich schon Dutzende Filme der Werbung "beraubt" und nur den Original Film gespeichert und später auf DVD gebrannt.
|
MisterIgo
Anmeldungsdatum: 23. April 2009
Beiträge: 947
|
Bleys schrieb: Beispiel: Das schneidet ab Sekunde 300 (5 min.) 4500 Sekunden (75 Minuten) raus und speichert es in output.mp4 | ffmpeg -ss 300 -i input.mp4 -c copy -t 4500 output.mp4
|
Wahrscheinlich ist hier noch ein map 0 sinnvoll:
| ffmpeg -ss 300 -i input.mp4 -c copy -map 0 -t 4500 output.mp4
|
Dann kopiert er nämlich alle Input-Spuren, nicht nur die jeweils erste Videospur/Audiospur/....
Außerdem bedeutet das -ss 300 an dieser Stelle, dass er da nach Gutdünken hinspringt, so wie das im Container steht und die Frames davor nicht dekodiert. Das kann minimal ungenau sein, sollte aber eben auch genau zu einem I-Frame springen (da nur das valide Sprungziele sind). Wenn das -ss hinter -i steht, dann dekodiert er bis genau zu dieser Zeit und kopiert ab da (aber das muss dann nicht am I-Frame sein).
|
glückspilz
(Themenstarter)
Anmeldungsdatum: 26. November 2007
Beiträge: 218
Wohnort: Nimmerland
|
Wie macht ihr das mit dem rausschneiden von Inhalten? Sagen wir mal ich möchte aus einem Video zwei kurze Passagen rausschneiden, die irgendwo in der Mitte liegen. Wie kriege ich das hin? Beim letzten Mal hat das mit dem Schneiden zwar geklappt. Avidemux hat aber nicht genau an der Stelle geschnitten, die ich vorgegeben hatte, sondern ein paar Frames zu früh. Ich konnte das auch nicht besser einstellen.
|
Bleys
Anmeldungsdatum: 13. August 2006
Beiträge: 6172
|
glückspilz schrieb: Wie macht ihr das mit dem rausschneiden von Inhalten? Sagen wir mal ich möchte aus einem Video zwei kurze Passagen rausschneiden, die irgendwo in der Mitte liegen. Wie kriege ich das hin?
Es gibt unzählige Tutorials dazu auf Youtube. Sich da 2-3 anzusehen dürfte einfacher sein als es hier nur per Text zu beschreiben. Ist eigentlich ein einfache Aktion. Beim letzten Mal hat das mit dem Schneiden zwar geklappt. Avidemux hat aber nicht genau an der Stelle geschnitten, die ich vorgegeben hatte, sondern ein paar Frames zu früh. Ich konnte das auch nicht besser einstellen.
Ein bisschen Wissen über den Aufbau von Videos mit nicht verlustfreien Codecs (Also praktisch alle...) ist da nützlich. Mal eine grobe Beschreibung: Bein encodieren wird nur ab und zu ein komplettes Bild gespeichert (I-Frame), danach werden für einen Zeitraum nur noch Änderungen zum vorherigen Bild gespeichert, bis zum nächsten I-Frame. Wenn Du ohne großen Aufwand und Neukodierung einen Teil aus einem Video raus schneiden möchtest, sollte genau an den I-Frames geschnitten werden. Schneidest Du ohne Neukodierung an Frames die dazwischen liegen, hast Du im Ergebnis an dieser Stelle Klötzchenbildung bis zum nächsten I-Frame. Wenn Du nicht darauf verzichten möchtest absolut Frame genau zu schneiden sollte das Video auch neu kodiert werden. Mit entsprechendem Zeit Aufwand. Wenn Du die Maus über die Steuerungssymbole in Avidemux hältst, erscheinen Tooltips mit der jeweiligen Funktion. Die doppelten Pfeile gehen z.B. bis zum nächsten/vorherigen I-Frame. Die einfachen Pfeile gehen von Frame zu Frame.
|
glückspilz
(Themenstarter)
Anmeldungsdatum: 26. November 2007
Beiträge: 218
Wohnort: Nimmerland
|
Also mit dem Befehl aus der Kommandozeile bekomme ich das Video ziemlich genau geschnitten (jedenfalls am Anfang und Ende des Videos, nicht dazwischen). Allerdings ist das Video die ersten 3 Sekunden schwarz. Mit Avidemux kann ich es auch schneiden, doch das Video wird nicht an dem Punkt geschnitten, den ich markiert habe, sondern einige Frames davor. Das ist natürlich nervig. Weiß nicht wie ich das weg bekomme. Habe bisher mit Kdenlive geschnitten. Das läuft super. Das Problem ist, dass man ein fertiges Video dann nochmal extra rendern muss, was ziemlich lange dauern kann. Außerdem neigt Kdenlive dazu, ziemlich große Dateien zu erstellen. Also bei einer Laufzeit von 1 Stunde kommen da gerne mal 1 GB und mehr zusammen. Kann man das Einstellen, damit die Datei kleiner wird? Habe bei anderen Videos gesehen, dass die teilweise nur 500 MB bei einer Videolänge von 1 Stunde haben.
|
Bleys
Anmeldungsdatum: 13. August 2006
Beiträge: 6172
|
glückspilz schrieb: Mit Avidemux kann ich es auch schneiden, doch das Video wird nicht an dem Punkt geschnitten, den ich markiert habe, sondern einige Frames davor. Das ist natürlich nervig. Weiß nicht wie ich das weg bekomme.
Hast Du meinen letzten Beitrag nicht gelesen?
|
glückspilz
(Themenstarter)
Anmeldungsdatum: 26. November 2007
Beiträge: 218
Wohnort: Nimmerland
|
Bleys schrieb: Hast Du meinen letzten Beitrag nicht gelesen?
Doch! Ich wollte das nur nochmal klar erklären. Außerdem hatte ich ja noch eine Frage wegen Kdenlive. ☺
|
Catweazel1
Anmeldungsdatum: 2. Mai 2014
Beiträge: 238
|
glückspilz schrieb:
Habe bisher mit Kdenlive geschnitten. Das läuft super. Das Problem ist, dass man ein fertiges Video dann nochmal extra rendern muss, was ziemlich lange dauern kann. Außerdem neigt Kdenlive dazu, ziemlich große Dateien zu erstellen. Also bei einer Laufzeit von 1 Stunde kommen da gerne mal 1 GB und mehr zusammen. Kann man das Einstellen, damit die Datei kleiner wird? Habe bei anderen Videos gesehen, dass die teilweise nur 500 MB bei einer Videolänge von 1 Stunde haben.
Bei vielen Schneidprogrammen, muss das ganze Video neu gerendert werden, wenn bestimmte Sequenzen herausgeschnitten wurden.
Das trifft auf KdenLive zu, wie auch bei Avidemux ect.... Die Datei kleiner machen? Ja, nur dann werden bestimmte Parameter geändert und zwar Auflösung, Qualität evtl. auch das Dateiformat (Codec).
Nur: Was willst du noch kleiner machen, wenn schon in MP4 das ganze Video ist? MP4 ist ein Komprimierverfahren und bedeutet mind. die Hälfte der Grösse eines Videos in MP2.....
Ich weiss das, weil ich vor einiger Zeit alte VHS und Video 8 Videos, auf einen DVD-Rekorder mit MP2 überspielt habe und von da via DVD-RW auf den PC.
Dort in Avidemux geschnitten und in MP4 gerendert. Später passten 2 Stk. VHS-Kassetten mit 240 Min. Spielzeit auf eine DVD mit 4,7 GB (war keine DL mit 8,5 GB!).
Alles in MP4 und somit mit allen Bluray-Playern und DVD-Playern abspielbar.
|
Gloster
Anmeldungsdatum: 9. April 2020
Beiträge: 393
|
@Bleys : Wenn ich dich richtig verstanden habe, könnte man z.B. ein h.264 file an einem NIDR-frame mit Avidemux schneiden, und dann z.B. nach h.265 kodieren ohne das frame-fehler (Bild-Fehler) generiert werden.
Ist es auch möglich, das man die Datei einfach mit dem Fehler-Hinweis abspeichert, und dann mit ffmpeg dann die Kodierung nach h.265 vornimmt ? Oder geht es direkt in Avidemux z.B. Parameter crf und preset (ffmpeg Parameter) direkt für die Kodierung einzustellen. Ich habe öfter das Problem ein IDR-Frame zu finden, ohne größere Verluste (Film-Lücken) zu haben. Es ist nicht ganz das Thema, ich habe eben die Gelegenheit wahrgenommen.
|
Gloster
Anmeldungsdatum: 9. April 2020
Beiträge: 393
|
Antwort auf meine eigene Frage : Ist es auch möglich, das man die Datei einfach mit dem Fehler-Hinweis abspeichert, und dann mit ffmpeg dann die Kodierung nach h.265 vornimmt ?
Das ist nicht möglich, weil Bildinformationen im ausgeschnittenen Teil sind, die dann logischer weise ffmpeg fehlen. Mit Avidemux ist es aber möglich frame genau zu schneiden. Ich habe eine h.264 Datei bearbeitet ohne auf key-frames zu achten (Avidemux Fehlermeldung ignoriert) Neu kodiert mit Video codec: mpeg4 (x264) mit der Konfiguration : "Erweiterte Konfiguration verwenden", alle Einstellungen belassen und Qualität auf 8 (crf) gestellt. Den Film abgespeichert. Die Kodierung dauert nicht sonderlich lang, weil eben der gleiche Codec verwendet wurde. Das Ergebnis überprüft, die Bild- und Tonübergänge waren einwandfrei, also keine Bildstörung. Auch die Bildqualität war einwandfrei. @Glückspilz : Ohne neu zu kodieren ist es nicht möglich, weil Bildinformationen im ausgeschnittenen Teil des Films sind.
Aviedemux wie auch Kdenlive verarbeitet aber Bildinformationen des ausgeschnittenen Teils in die übriggebliebenen frames ein, deswegen ist eine neu-Kodierung zwingend. Aber wenn du den gleichen Codec verwendest, sparst du dir eine menge Zeit.
|