MKV-Videos mit ffmpeg aneinanderhängen

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
fischig
Beiträge: 3640
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von fischig » 02.01.2023 16:43:44

Ich habe hier ein MKV-Video (h264) mit zwei Tonspuren (aac) und einer Untertitelspur (dvdsub). Das Video ist unvollständig. Am Anfang fehlen ca.3 Minuten. Die könnte ich aus einem anderen Video (h264) ergänzen, das aber nur über die 1. Tonspur (aac) und keine Untertiteln verfügt. Der Plan ist beide Videos via

Code: Alles auswählen

ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mkv
zu „verleimen“. Kann das so funktionieren, auch wenn einem der beiden Teile sowohl die Untertitelspur als auch die zweite Tonspur fehlen? Ich habe das schon mal erfolgreich durchgezogen, wenn ich im zweiten Teil auf Untertitel und 2. Tonspur verzichtet habe.

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

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von MaGe » 02.01.2023 18:39:58

fischig hat geschrieben: Kann das so funktionieren,


Ich denke, nein
Die Datei Nummer 1 kann nicht an die Datei Nummer 2 angehängt
werden. Die Formate stimmen nicht überein.
fischig hat geschrieben: Die könnte ich aus einem anderen Video (h264) ergänzen, das aber nur über die 1. Tonspur (aac) und keine Untertiteln verfügt.


Dann nimm doch dieses Video, und trenne die zweite Tonspur
sowie den Untertitel aus dem zu kurzen Video und füge es in
das vollständige Video ein.



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

fischig
Beiträge: 3640
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von fischig » 03.01.2023 08:22:39

Hmmm, das (größere,) unvollständige Video (ich nenne das jetzt im folgenden video2) ist das qualitativ bessere, weswegen ich das schon als Basis nehmen möchte.

Wenn ich erst mal die Untertitel außer acht lasse, dann könnte man das mit ffmpeg so realisieren: video1 so kürzen, dass lediglich der benötigte Anfang für video2 erhalten bleibt (video1a). (Einzige) Tonspur von video1a zuerst isolieren und dann video1a als neue, 2.Tonspur hinzufügen, die ist dann zwar deutsch, während die zweite Tonspur von video2 französisch ist, aber das müsste dann halt in Kauf genommen werden. Anschließend kann man beide Teile wie o.a. aneinanderfügen (ohne die Untertitelspur, die's ja nur in video2 gibt). Das funktioniert, habe ich schon gemacht.

Bleiben zwei Fragen:
1. kann man hinkriegen, dass die isolierte (einzige) Tonspur von video1, die später in video1a als zweite übernommen werden soll, stumm/leer bleibt?

2. Wie umgehen mit einer Untertitelspur, die's ja in video1(a) gar nicht gibt?

edit:
Eine Lösung zur 1. Frage habe ich gefunden.
Aber wie ich video1a eine (möglichst leere) Untertitelspur im Format dvdsub verpassen soll, weiß ich noch nicht.

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von wanne » 06.01.2023 11:38:38

Defakto alle Schneideprogramme reencocdieren. Aus gutem Grund:
a) Man kann komprimierte VIdeos/Audios nicht an beliebigen Stellen zusammensetzen, da die Kompression ja vorherige und nachfolgende Teile brauchen um dekomprimiert zu werden.
b) Ändert sich ein parameter wie Framerate passen die Videos auch bei gleichem Codec nicht zusammen...

Ansonsten gilt: ts/mpeg ist das einzige Format in dem du den Codec zwischen durch ändern darfst. (Das heißt nicht, dass es eventuell in anderen mit manchen playern auch funktionieren.) Wenn du den copy way gehst willst du vermutlich zumindest erst mal da hin verpacken.

Ich würde mir getrennt eine Video/Audio/Subtitel Spur erstellen, die alle gleich lang sind und dann zusammenfügen.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
Steve1
Beiträge: 568
Registriert: 21.09.2022 16:42:47
Kontaktdaten:

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von Steve1 » 07.01.2023 03:49:42

Ich würde ja mal von ffmpeg Abstand nehmen und mir Avidemux anschauen (Homepage -> Download -> AppImage). Da lässt sich dann auch einfacher durchklicken (wie in deinem Beispiel Tonspuren an- und abwählen, Untertitel hinzufügen)
Dell 7480:
Windows 11
in einer VM VirtualBox Ubuntu 23.10

fischig
Beiträge: 3640
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von fischig » 07.01.2023 09:46:18

Ich kenne avidemux in seinen verschiedenen Linux-Spielarten vielleicht schon etwas länger als du.

Benutzeravatar
kalle123
Beiträge: 2714
Registriert: 28.03.2015 12:27:47
Wohnort: Mönchengladbach

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von kalle123 » 07.01.2023 10:32:50

fischig hat geschrieben: ↑ zum Beitrag ↑
07.01.2023 09:46:18
Ich kenne avidemux in seinen verschiedenen Linux-Spielarten vielleicht schon etwas länger als du.
Was soll das denn?

Finde den Hinweis von Steev hier auch nicht so abwegig. Wenn dir der post nicht gefällt, schlucke es doch einfach runter.

Gruß KH

DeletedUserReAsG

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von DeletedUserReAsG » 07.01.2023 11:04:27

kalle123 hat geschrieben: ↑ zum Beitrag ↑
07.01.2023 10:32:50
Was soll das denn?
Ich kann’s schon verstehen. Wenn nach Optionen für ffmpeg gefragt, und daraufhin ein eingeschränktes Frontend für ffmpeg empfohlen wird, und dann noch als bloatiges, fettiges AppImage, frage ich mich auch schon ein kleines bisschen, was das soll.

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

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von MaGe » 07.01.2023 12:15:05

## Vorweg ich benutze kein Avidemux, aber so steht es geschrieben ##

Verbreitete Mythen

Generell benötigt Avidemux keine externe Software zum Lesen und Schreiben.
Einige Leute glauben, dass es MEncoder-, Transcode-, FFmpeg- oder
MJPEG-Tools zum Codieren verwendet. Das ist völlig falsch, obwohl es
etwas geliehenen Code von diesen Projekten enthält.

Avidemux verwendet kein externes FFmpeg. Eine eingebaute libavcodec-Bibliothek
von FFmpeg (dh Avidemux enthält eine eigene Kopie von libavcodec, externes FFmpeg
wird nicht verwendet) wird zum Decodieren und Codieren vieler Formate verwendet.

## Aber was ffmpeg nicht kann, das schafft Avidemux? ich lass mich überraschen ##




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

fischig
Beiträge: 3640
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von fischig » 07.01.2023 12:49:06

## Aber was ffmpeg nicht kann, das schafft Avidemux? ich lass mich überraschen ##
Ich glaube nicht, dass ich dich überraschen kann, schon gar nicht mit avidemux. Wie auch immer: es wird dauern. Es gibt das so einen Lebenzeitabschnitt, in dem man nie Zeit hat. Aber in selbigem man kann sie sich in aussuchen. :P

Benutzeravatar
kalle123
Beiträge: 2714
Registriert: 28.03.2015 12:27:47
Wohnort: Mönchengladbach

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von kalle123 » 07.01.2023 12:49:58

Um das hier noch einmal klarzustellen.

Ich habe mich nicht an der Sache, sondern etwas am Tonfall der Antwort gestört.
Wenn man darauf überhaupt antwortet.

Ein simples 'Danke, aber ich suche explizit nach einer Lösung mit ffmpeg!' hätte es auch getan.

Aber so im Stil 'Ich habe schon mit Linux gearbeitet, als du noch ...' stößt mir persönlich etwas auf.

Gruß KH

DeletedUserReAsG

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von DeletedUserReAsG » 07.01.2023 14:19:02

kalle123 hat geschrieben: ↑ zum Beitrag ↑
07.01.2023 12:49:58
Ich habe mich nicht an der Sache, sondern etwas am Tonfall der Antwort gestört.
Nix für ungut, aber Antworten im Stil von „Ich würde ja mal davon Abstand nehmen […]“ wirken arrogant genug, um verschnupft drauf zu reagieren – insbesondere, wenn sie unpassend sind.

fischig
Beiträge: 3640
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von fischig » 08.01.2023 13:52:45

Angeregt durch wannes Beitrag habe ich's mal über ts und mpeg (mp2?) versucht.

Der Hauptteil, wenn man so will: das Ende (hier video2.ts) des kompletten Films, lag im Original als TS-Datei vor.
mit ffmpeg habe ich den auf die beiden Tonspuren reduziert, die ich behalten wollte (Deutsch und Französisch) und und erhielt (ffmpeg-Angaben):

Code: Alles auswählen

    Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
    Stream #0:1[0x101](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x102](fra): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s
Der Filmanfang, also der kürzere Teil lag im Original als *.avi vor, eine Video- und eine Tonspur (mp3). Diesen Anfang habe ich mit avidemux geschnitten bis zu dem Punkt/Frame, an dem video2 einsetzt. (Was anderes als avidemux kenne ich nicht, um möglichst genau einen solchen Schnittpunkt am Bildschirm angezeigt zu bekommen um dann dort schneiden zu können.)
Anschließend habe ich mit ffmpeg das Conainerformat auf TS gesetzt und dabei den Audioteil von mp3 auf mp2 umkodiert, um video1 an video2 anzugleichen. Dann habe ich den Audio-Teil (Deutsch) herausisoliert und danach als 2. Tonspur wieder hinzugefügt, so dass ich dieses Video (video1.ts) als Ausgangsbasis für den Filmanfang erhielt (ffmpeg-Angaben):

Code: Alles auswählen

     Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
    Stream #0:1[0x101](und): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x102]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s

Mit zwei ffmpeg-Kommandos habe ich versucht, die beiden Videos zu verbinden:

Code: Alles auswählen

ffmpeg -f concat -safe 0 -i mylist.txt video-kompl.ts
(video1.ts und video2.ts als Angaben in mylist.txt)

Code: Alles auswählen

ffmpeg -i "concat:video1.ts|video2.ts" -c copy video-kompl.ts
Prinziell hat das auch funktioniert, aber beim erstgenannten Kommando ergab sich eine lausige Bitrate (kleiner als das (schlechtere) video1.ts) und bei beiden Kommandos wurde die zweite Tonspur nicht mitkopiert.

Avidemux hat dagegen beide Teile vollständig aneinandergehängt.
An welcher Stelle/welchen Stellen habe ich mit ffmpeg Fehler gemacht? h264 (High) vs. h264 (Main)?

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

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von MaGe » 08.01.2023 15:14:22

fischig hat geschrieben: Prinziell hat das auch funktioniert, aber beim erstgenannten Kommando ergab sich eine lausige Bitrate (kleiner als das (schlechtere) video1.ts) und bei beiden Kommandos wurde die zweite Tonspur nicht mitkopiert.
Du verwendest -c copy ( keine Codierung )
dann muß die lausige Bitrate ( Fehler) schon vorher vorhanden sein.

Video-1
Video-2
Was sagt ffmpeg über die bitrate sind die gleich
wenn nicht, beide angleichen ( Konverieren )

ich würde erst mal nur das Video ohne das Gerümpel Audio,Untertitel zusamenkleben
und schauen ob es einen versatz ( schnitt ) gibt, wichtig fürs Audio.
Audio,Untertitel kanst du immer noch einfügen, aber erstmal das Video.



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

Benutzeravatar
Steve1
Beiträge: 568
Registriert: 21.09.2022 16:42:47
Kontaktdaten:

Re: MKV-Videos mit ffmpeg aneinanderhängen

Beitrag von Steve1 » 09.01.2023 05:15:56

Avidemux bringt seinen eigenen Krimskram mit und nutzt nicht ffmpeg, das ist richtig. Richtig ist doch aber auch, dass Avidemux ein richtiges Fensterprogramm ist, wo ich mich durchklicken kann. Die hiesige Angelegenheit mit
MKV-Videos aneinanderhängen
lässt sich damit einfach machen, indem man Video1 öffnet, Video2 anhängt, Video, wie Audio auf Copy stellt, speichert und arbeiten lässt. Bloatiges AppImage, da gibts schlimmere Tools. Und ja man soll nicht Abstand nehmen von ffmpeg, das war falsch gesagt, aber man kann das hier mit Avidemux leicht lösen und es hat zudem noch unzählige andere Möglichkeiten. Ich nutze auch ffmpeg, siehe meine Threads hier im Forum.
Dell 7480:
Windows 11
in einer VM VirtualBox Ubuntu 23.10

Antworten