- LosslessCut ist eine plattformübergreifende FFmpeg-GUI für sehr schnelle, verlustfreie Bearbeitung von Mediendateien wie Video, Audio und Untertiteln
- Die Kernfunktion ist verlustfreies Trimmen/Schneiden: große Videodateien von Kameras, GoPros, Drohnen usw. grob zuschneiden, nur die guten Teile behalten und viele Daten verwerfen, ohne langsames Re-encoding
- Die meisten Aufgaben werden auf Basis von FFmpeg durch nahezu direktes Kopieren der Daten erledigt; unterstützt werden etwa das Entfernen von Werbung, das Neuordnen von Segmenten, das Zusammenführen von Dateien mit identischen Codec-Parametern sowie das Extrahieren, Ersetzen und Entfernen von Tracks
- Da der Chromium-HTML5-Videoplayer verwendet wird, gibt es Einschränkungen bei nativ abspielbaren Formaten und Codecs; mit FFmpeg-unterstützter Wiedergabe kann jedoch ein Proxy in niedriger Qualität erzeugt und geöffnet werden, während das eigentliche Schneiden/Exportieren verlustfrei auf dem Original erfolgt
- Manuelle Downloads für macOS, Windows und Linux sind kostenlos; Installationen über den Mac App Store und Microsoft Store werden als Unterstützungsmodell mit Sicherheit, einfacher Installation und automatischen stabilen Updates beschrieben
Welches Problem LosslessCut löst
- LosslessCut will eine plattformübergreifende FFmpeg-GUI für schnelle und verlustfreie Operationen an Video-, Audio-, Untertitel- und verwandten Mediendateien sein
- Hauptzweck ist es, aus großen Videodateien schnell nur die benötigten Abschnitte zu extrahieren und die übrigen Daten zu verwerfen
- Große Dateien von Videokameras, GoPros, Drohnen usw. lassen sich grob schneiden, um Speicherplatz zu sparen
- Da kein langsames Re-encoding erfolgt, werden Qualitätsverluste vermieden
- Die sehr hohe Geschwindigkeit entsteht dadurch, dass FFmpeg die Arbeit ausführt und LosslessCut dabei nahezu direktes Kopieren der Daten nutzt
Wichtige Bearbeitungsfunktionen
- Unterstützt verlustfreies Schneiden für die meisten Video- und Audioformate
- Abschnitte von Video und Audio lassen sich verlustfrei herausschneiden, etwa zum Entfernen von Werbung
- Die Reihenfolge von Video- und Audiosegmenten kann verlustfrei neu angeordnet werden
- Verlustfreies Zusammenführen und Verketten beliebiger Dateien wird unterstützt, erfordert aber identische Codec-Parameter, etwa bei Dateien aus derselben Kamera
- Smart cut wird als experimentelle Funktion angeboten
Tracks, Metadaten und Container-Operationen
- Unterstützt Multi-Track-/Stream-Bearbeitung
- Beliebige Tracks aus mehreren Dateien können kombiniert werden, um einem Video Musik- oder Untertitel-Tracks hinzuzufügen
- Nicht benötigte Tracks können entfernt werden
- Einzelne Tracks können ersetzt oder neu encodiert werden
- Alle Tracks wie Video, Audio, Untertitel und Anhänge können als einzelne Dateien extrahiert werden
- Technische Informationen aller Tracks lassen sich anzeigen; Datei-Metadaten, trackbezogene Metadaten und trackbezogene Dispositions können bearbeitet werden
- Der abzuspielende Video- oder Audio-Track kann ausgewählt werden; mehrere Audio-Tracks können gleichzeitig abgespielt werden
- Video und Audio können verlustfrei remuxt werden, also in ein anderes Container-Dateiformat übertragen werden
- Rotations- und Ausrichtungsmetadaten von Videos können geändert werden
- Unterstützt das Bearbeiten eingebetteter Kapitelmarken in MKV/MP4 sowie das Anzeigen von Untertiteln
Timeline und Workflow
- Bietet einen schnellen Multi-File-Workflow, jedoch noch keinen Massen- oder Batch-Export
- Unterstützt einen auf Tastenkürzel ausgelegten Workflow und benutzerdefinierte Shortcuts
- Schnittzeitpunkte können manuell eingegeben werden
- Unterstützt Timecode-Offsets pro Datei sowie das automatische Laden von Timecodes aus Dateien
- Bietet Timeline-Zoom, Sprünge zu Frames/Keyframes, Video-Thumbnails und Audio-Wellenformen
- Schnittsegmente können in Projektdateien gespeichert werden
- Das Log des zuletzt ausgeführten FFmpeg-Befehls kann angezeigt werden, um den letzten Befehl zu ändern und erneut über die Kommandozeile auszuführen
- Unterstützt Undo und Redo
- Bietet eine JS-basierte Expression Language für erweiterte Segmentabfragen und -transformationen
- Schnittsegmente können mit Labels versehen und per Tags annotiert werden
Bildextraktion, Erkennung und Segmenterzeugung
- Vollauflösende Snapshots aus Videos können als JPEG/PNG extrahiert werden
- Bereiche von Videoframes können als Bilder exportiert werden
- Unterstützt u. a. jeden n-ten Frame, Sekundenintervalle, Szenenwechsel und optimale Thumbnail-Verfahren
- Export kann nur aus dem ausgewählten Zeitbereich, also einem Segment, erfolgen
- Der ursprüngliche Zeitstempel kann im Bilddateinamen enthalten sein
- Unterstützt die Erkennung von schwarzen Bildflächen, stummer Audioabschnitte und Szenenwechseln
- Die Timeline kann nach Länge L, Größe X MB, N Segmenten oder zufälligen Segmenten aufgeteilt werden
- Alle Non-Keyframes können sehr schnell entfernt werden, was sich etwa für Timelapse-Anwendungen eignet
Import/Export und Automatisierung
- Unterstützt den Import/Export von Segmenten
- MP4/MKV-Kapitelmarken
- Textdateien
- YouTube
- CSV
- CUE
- XML für DaVinci und Final Cut Pro
- weitere Formate
- Bietet eine grundlegende CLI und eine HTTP API
- Videos können über HTTP verlustfrei heruntergeladen werden; als Beispiel wird HLS
.m3u8genannt - Eingebettete DJI-GPS-Tracks können auf einer Karte angezeigt werden
Beispielhafte Anwendungsfälle
- Werbung aus aufgezeichneten TV-Sendungen herausschneiden und das Format von TS nach MP4 ändern
- Audio-Tracks aus einer Datei entfernen
- Einen Musik-Track aus einem Video extrahieren und auf die benötigte Länge schneiden
- Einem Video Musik hinzufügen oder einen vorhandenen Audio-Track ersetzen
- Separat aufgezeichnete Audio- und Video-Tracks zusammenführen
- Externe Untertitel in ein Video einbetten
- H264/H265-MKV-Videos schnell in MOV oder MP4 für die iPhone-Wiedergabe umwandeln
- Schnittzeitlisten wie EDL oder CSV aus anderen Tools importieren und die Schnitte in LosslessCut ausführen
- Schnittzeitlisten als CSV EDL exportieren, um sie in anderen Tools weiterzuverarbeiten
- Dateien schnell anhand von MP4/MKV-Kapiteln schneiden
- Ein YouTube-Video schnell nach Kapiteln oder Musikzeitangaben in Kommentaren schneiden
- Die Sprache von Audio- und Untertitel-Tracks ändern
- Cover-Art/Thumbnails aus externen JPEG-Dateien oder Timeline-Frames an Video oder Audio anhängen
- Autor, Titel, GPS-Position und Aufnahmezeit eines Videos ändern
- Die Rotation eines Videos mit falsch gesetztem Ausrichtungs-Flag korrigieren
- Video- oder Audio-Clips ohne Re-encoding schnell X-mal wiederholen
- Ein ganzes Video oder Teile davon in X Bilddateien umwandeln; diese Operation ist jedoch nicht verlustfrei
- Videos verlustfrei so aufteilen, dass jede Szene eine eigene Datei wird
- Stumme Abschnitte aus Audio und Video entfernen
- Videos in Segmente aufteilen, um Vorgaben wie das 140-Sekunden-Limit von Twitter einzuhalten
- Jedes Segment mit einem oder mehreren Tags versehen und Tags zur Segmentorganisation oder zum Erzeugen einer Ausgabeordnerstruktur verwenden
- Weitere Beispiele stehen im Recipe cookbook
Downloads und Unterstützungsmodell
- Installationen über den Mac App Store und Microsoft Store werden als Weg beschrieben, der Sicherheit, einfache Installation und automatische stabile Updates bietet
- Als Linux-Alternativen werden Snapcraft und Flathub angeboten
- Manuelle Downloads der ausführbaren Dateien bleiben weiterhin kostenlos verfügbar
- macOS: Intel- und Apple-Silicon-DMGs werden angeboten; PKG funktioniert nicht
- Windows: 7zip wird angeboten; Windows 7, 8 und 8.1 werden seit v3.50.0 nicht mehr unterstützt
- Linux: x64 tar.bz2, x64 AppImage, arm64 tar.bz2 und Raspberry Pi armv7l tar.bz2 werden angeboten
- Windows APPX und macOS PKG funktionieren nicht
- More releases und Latest nightly builds 🧪 sind verfügbar
- LosslessCut wird von einer einzelnen Person gepflegt und soll nach eigener Aussage immer kostenlose Open Source bleiben
- Nutzer können das Projekt unterstützen oder an FFmpeg spenden
Unterstützte Formate und Wiedergabeeinschränkungen
- Da LosslessCut den Chromium-HTML5-Videoplayer verwendet, werden nicht alle Formate und Codecs nativ unterstützt
- Dateiformate, die in der Regel funktionieren, sind
MP4,MOV,WebM,Matroska,OGGundWAV - Unterstützte Audio-Codecs sind
FLAC,MP3,Opus,PCM,VorbisundAAC - Unterstützte Video-Codecs sind
H264,AV1,Theora,VP8,VP9sowieH265, sofern ein Hardware-Decoder vorhanden ist - Auch nicht gelistete Codecs und Formate können über das Menü
Filein unterstützte Formate/Codecs konvertiert und geöffnet werden- Es wird empfohlen, zunächst die Option Fastest: FFmpeg-assisted playback auszuprobieren
- Dabei wird eine Version der Datei in niedriger Qualität erzeugt und im Player geöffnet
- Die eigentlichen Schnitt- und Exportvorgänge erfolgen auf der Originaldatei und sind daher verlustfrei
- Dateien, die FFmpeg decodieren kann, lassen sich potenziell öffnen
Dokumentation und Demo
- Die offizielle Website ist LosslessCut.app
- Einstieg, FAQ und Nutzungsdokumentation finden sich unter Getting started, FAQ and usage documentation
- Fehlerbehebung, bekannte Probleme und Einschränkungen stehen unter Troubleshooting and known issues and limitations
- Hinweise zum Beitragen stehen unter Contributing
- Video-Demos behandeln allgemeine Funktionen, das Hinzufügen von MP4-Thumbnails/Cover-Art und das Hinzufügen mehrsprachiger Audiospuren
1 Kommentare
Hacker-News-Kommentare
Wirkt wie ein Open-Source-Konkurrent zu VideoReDo, dieser magischen App, die ich noch aus der Zeit der Windows-Media-PCs kannte
Leider war VideoReDo proprietäre Software eines Indie-Entwicklers, und dieser Entwickler ist vor Kurzem verstorben
Für alle, die sich unter „verlustfreier“ Videobearbeitung nichts vorstellen können: Ein normaler Video-Editor importiert Video-/Audio-Clips, speichert die Timeline in einem app-spezifischen Format wie bei Pitivi/Premiere/Final Cut und exportiert das fertige Ergebnis dann in ein Ausgabeformat wie MP4/MOV, wobei alles erneut encodiert wird
Deshalb muss man selbst dann, wenn man aus einem einstündigen Video nur 30 bis 90 Sekunden herausschneiden will, den gesamten Inhalt neu encodieren, und wenn die Einstellungen der ursprünglichen und der erneuten Encodierung nicht zusammenpassen, entstehen unbeabsichtigte Änderungen bei Bild- und Tonqualität
Ein solcher verlustfreier Editor dagegen encodiert nicht alles neu, sondern verarbeitet es eher so, dass auf Byte-Ebene nur der betreffende Abschnitt „herausgeschnitten“ wird
Das erinnert mich an die Anfangszeit von MP3s, als Leute 96-kbps-Dateien heruntergeladen und sie dann mit 320 kbps neu encodiert haben, um die „Audioqualität zu verbessern“
Decodierung und erneute Encodierung sind nur nötig, wenn man den Inhalt von Frames ändern oder die Struktur des Videostreams so neu aufbauen muss, dass sie kompatibel bleibt
Die meisten Videoformate sind Streams aus delta-codierten Frames, die der Reihe nach decodiert und angezeigt werden müssen. Selbst um nur ein einzelnes Frame zurückzugehen, muss man ab dem Anfang erneut decodieren, und wenn ein Frame beschädigt ist, verliert man das Bild
Deshalb muss der Encoder Keyframes einfügen, um den Videostream regelmäßig neu zu starten. Bei gleichem Codec und gleicher Auflösung ist es praktisch überall auch in einen externen Videostream gültig, einen Keyframe einzufügen
Soweit ich weiß, arbeiten ordentliche nichtlineare Editoren nicht auf diese Weise. Die meisten Schnitte lassen sich nicht sinnvoll als bloße GOP[0]-Trimmtechnik annähern, und viele bearbeiten ohnehin keine Clips, die schon in das finale Distributionsformat encodiert wurden
Im Profibereich zeichnen viele in ProRes auf, und ProRes verzichtet absichtlich auf Delta-Encoding[1]. Denn Delta-Encoding ist für nichtlineare Videobearbeitung tatsächlich ziemlich schlecht
[0] Group of Pictures - ein Keyframe und alle delta-codierten Frames bis vor dem nächsten Keyframe
[1] Deshalb ist es auch enorm groß
Wenn man eine Minute herausschneidet, wird eine Minute Material encodiert. Das Originalvideo muss beim Verarbeiten womöglich länger als eine Minute decodiert werden, aber die ganze Stunde zu decodieren ist selten
Bei „verlustfrei“ dachte ich zuerst an echte verlustfreie Formate wie ProRes, MJPEG2000 oder HuffYUV
Aber was dieses Tool letztlich macht, ist, den ursprünglichen Container in einen neuen Container umzupacken, ohne die zugrunde liegenden Streams anzufassen. Also kein Re-Encoding
Dass die schwere Arbeit von FFmpeg erledigt wird, ist nicht überraschend, aber es wäre gut, wenn die Community versteht, wie dieser Vorgang tatsächlich funktioniert
Vereinfacht gesagt sind moderne Videoformate wie mp4, mov, avi und ts letztlich nur Dateiendungen für Container, die mehrere Video- und Audiotracks aufnehmen können. Diese Tracks nennt man Elementary Streams (ES), und sie sind jeweils mit Codecs wie H264/AVC, H265/HEVC oder AAC encodiert
Beim anschließenden Muxing werden sie im Container zusammengeführt, und jeder Sample/jedes Frame erhält einen Zeitstempel, damit die ES synchronisiert bleiben
Weil die ES bereits encodiert sind, ist es schwierig, beim Suchen Frame-genaue Präzision zu erreichen, und vollständig decodierbare Frames sind nur I-Frames. Die nachfolgenden P-/B-Frames werden auf Basis der Informationen aus dem I-Frame decodiert. Solche IPPBPPB...-Sequenzen nennt man GOP
Interessant ist, dass man den Frametyp erkennen kann, indem man in den Header der NAL-(Network Abstraction Layer)-Einheiten schaut, ohne den Stream zu decodieren. Bei H264 hat zum Beispiel ein I-Frame einen Frametyp-Byte ähnlich 0x07, und der Header ist 0x000001
Nimmt man das zusammen, kann man in den ES-Bitstream schauen und GOP-Grenzen ohne Decodierung finden. Man kann allerdings nicht einfach mitten in einer GOP schneiden; man muss also entweder eine Ungenauigkeit von unter einer Sekunde akzeptieren oder die gesamte GOP decodieren, die typischerweise etwa 30 Frames umfasst, und dann im Ergebnis einen I-Frame einfügen
Im Ergebnis ist das also eher sehr schnelle Bitmanipulation und Kopieren zwischen Containern. Wenn das Ziel nur darin besteht, das Originalvideo in Stücke zu schneiden, ist dieser Prozess deshalb extrem effizient
Verwandte Beiträge:
LosslessCut: lossless video/audio editing - https://news.ycombinator.com/item?id=33969490 - Dez 2022 (153 Kommentare)
Lossless-cut: The swiss army knife of lossless video/audio editing - https://news.ycombinator.com/item?id=24883030 - Okt 2020 (10 Kommentare)
LosslessCut – Save space by quickly and losslessly trimming video files - https://news.ycombinator.com/item?id=22026412 - Jan 2020 (1 Kommentar)
Show HN: LosslessCut – Cross-platform GUI tool for fast, lossless video cutting - https://news.ycombinator.com/item?id=12885585 - Nov 2016 (33 Kommentare)
Zur Info: Es gibt ein bash-Skript, das ich zum Erstellen von ffmpeg-Schnitten verwende. Es basiert auf einigen ziemlich nützlichen Vorschlägen von Stack Overflow, und die Eingabe ist eine Datei, in der pro Zeile Start-/Endzeiten in Sekunden stehen
Wenn das Video keinen Ton hat, lässt man einfach die
atrim-/outa-Teile weg, dann funktioniert es fast genauso. Mehrere Bereiche werden mittrim,atrim,setptsundasetptsausgeschnitten und dann mit demconcat-Filter aneinandergesetzt-c copyoder-c:v copy -c:a copy?Falls sich jemand schon darüber beschweren will, dass das eine Electron-App mit über 100 MB ist: AVIDemux ist eine native App und erledigt fast dasselbe
Ich habe diese App letzte Woche entdeckt und sie war extrem nützlich
Ich hatte mit einer kleinen Kamera am Beckenrand einen kompletten Sprungwettbewerb aufgenommen und wollte ihn in Clips pro Sprung aufteilen
In LosslessCut konnte ich so schnell abspielen, wie ich wollte, und um die Pausen zwischen den Athleten am Ton zu erkennen, war etwas über 300 % die höchste Geschwindigkeit, die ich noch sinnvoll nutzen konnte
Jedes Mal, wenn die Punktzahl für einen Sprung angesagt wurde, habe ich
Bgedrückt, und nachdem ich das für alle Sprünge gemacht hatte, habe ich auf Export geklickt. So konnte ich einen dreistündigen Wettkampf in weniger als einer Stunde in sauber benannte Clips aufteilen, die ich mit jedem Athleten und Trainer teilen konnteIch mag LosslessCut sehr und nutze es fast täglich
Meistens verwende ich es, um Bildschirmaufnahmen zu kürzen oder zu bearbeiten, und weil es verlustfrei ist, ist das Speichern bearbeiteter Videos fast sofort erledigt
Im Grunde ist es eher ein GUI für ffmpeg
Wenn ich neu kodieren muss, nutze ich Permute, und wenn ich Effekte hinzufügen oder verlustbehaftet bearbeiten muss, nehme ich Davinci Resolve
Ich frage mich, was es zusätzlich zu Handbrake oder einem direkten Aufruf von ffmpeg bietet. Es scheint eine kostenpflichtige App zu sein, aber wenn sie wirklich besser ist als die vorhandenen kostenlosen Optionen, ist es für mich in Ordnung, Geld für Software auszugeben
Auf GitHub steht GPL-2.0-Lizenz, im Snap Store MIT-Lizenz, und im Mac App Store kostet es 19 Dollar
Ich frage mich, ob man auf einem entfernten Server Videos verlustfrei während des Downloads zuschneiden kann
Im Moment lade ich mit einem bash-Skript für ffmpeg, das ich von Stack Overflow habe, nur Teile von Videos von Orten wie YouTube herunter, aber derzeit muss ich beim Herunterladen sofort neu kodieren
Im Moment gehe ich davon aus, dass es unmöglich ist, solche Videos verlustfrei herunterzuladen und zuzuschneiden, weil lokal zunächst keine Videoinformationen wie Keyframes vorhanden sind. Ich würde mich gern vom Gegenteil überzeugen lassen
313ist nur der 4K-Videostream, aber es sollte auch bei Videos mit Audiostream funktionierenffmpeg -ss 5:40 -i $(yt-dlp -f 313 -g https://www.youtube.com/watch?v=3SykjY3GdMs) -acodec copy -vcodec copy -t 20 waterdrop_mountainlake.mkvIch habe diese App erst vor Kurzem kennengelernt und mag sie
Dass ich früher jedes Mal die gesamte Blender-Instanz und ein Videoprojekt geöffnet habe, nur um Clips zu schneiden, und das auch noch häufig, erscheint mir inzwischen kaum noch glaubhaft