News:

--

Main Menu

Aussetzer beim Verbinden von Videos

Started by MatAv, September 08, 2018, 12:54:07 PM

Previous topic - Next topic

MatAv

Hallo,

ich verwende Avidemux um die Aufnahmen von meinem VDR zu verarbeiten.

Der VDR teilt die Aufnahmen ja standardmäßig bei 2GB. Früher hat es dann bei Avidemux einfach gelangt, die erste Datei zu öffnen - Avidemux hat dann gefragt, ob es auch die folgenden Dateien laden soll.
Diese Funktionalität wurde aber leider vor einigen Versionen entfernt (oder mit 2.7.1?), da sie wohl kaputt sei (ich finde den Link zum Bugreport nicht mehr). Als Alternative wurde genannt, einfach alle Dateien zu markieren und per Drag'n'Drop ins Avidemux-Fenster zu ziehen.
Heute ist mir aufgefallen, dass dann die Übergänge zwischen den Dateien nicht mehr ordentlich sind: Je nach Player fehlt nach dem Schnittpunkt der Ton oder es gibt einen kurzen Aussetzer (Bild und Ton).

Kann das Problem jemand bestätigen, oder stell ich mich vielleicht einfach nur zu blöd an?

Viele Grüße
Matthias

eumagga0x2a

#1
Die Funktion des MpegTS demuxers musste deaktiviert werden, weil sie nicht zwischen sequentiell benannten Dateien, die zu unterschiedlichen Streams gehören, und ebensolchen Teilen eines Streams unterscheiden kann. Im letzteren Fall können alle Fragmente mit

cat Teil01 Teil02 Teil03 > Gesamtstream.ts

als "Gesamtstream.ts" verbunden werden. Die Funktion könnte man wieder aktivieren, wenn es gelingen sollte, eine zuverlässige Heuristik zu implementieren, die beide Fälle klar auseinander hält.

Das Problem ist, dass unterschiedliche Geräte Aufnahmen unterschiedlich splitten und Gigabyte dabei nicht gleich Gigabyte ist.

Die Aussetzer beim Anhängen und anschließenden Speichern im Copy Mode sind unvermeidbar wenn Videos B-frames enthalten.

MatAv

Hallo,

zunächst vielen Dank für deine schnelle Antwort :).

Auf die Idee, die Dateien händisch zusammenzufügen bin ich garnicht gekommen: Aber siehe da, wenn ich die Dateien mit cat aneinanderklebe, kann ich die entstehende Datei problemlos mit Avidemux bearbeiten - die Übergänge sind "flüssig".
Leider ist das keine Dauerlösung, um jede Datei so zusammezukopieren nehm ich zu viel auf/bearbeite zu viel, ich werde also wohl doch die Stückelung der Dateien im VDR ausschalten.

Zwischenfazit:
Mit alten Avidemux Versionen gehts.
Mit Avidemux 2.7.1 und Drag'n'Drop hab ich kaputte Übergänge.
Mit Avidemux 2.7.1 und händischem Zusammenfügen der Dateien habe ich auch schöne Übergänge :).

QuoteDie Aussetzer beim Anhängen und anschließenden Speichern im Copy Mode sind unvermeidbar wenn Videos B-frames enthalten.
Damit kann ich grad nicht ganz so viel anfangen: Bezieht sich das auf die allgemeine Problematik oder auf meinen Fall? Bei mir kann das ja eigentlich nicht das Problem sein, da es ja mit alten Avidemux Versionen und dem händischen zusammenkleben funktioniert. Bloß das mit dem Drag'n'Drop geht bei mir kaputt.

Vielen Dank,
Matthias

eumagga0x2a

Quote from: MatAv on September 08, 2018, 02:02:01 PM
wenn ich die Dateien mit cat aneinanderklebe, kann ich die entstehende Datei problemlos mit Avidemux bearbeiten - die Übergänge sind "flüssig".

Das ist klar – der Demuxer machte intern nichts anderes, nur ohne eine neue Datei anzulegen.

QuoteLeider ist das keine Dauerlösung, um jede Datei so zusammezukopieren nehm ich zu viel auf/bearbeite zu viel, ich werde also wohl doch die Stückelung der Dateien im VDR ausschalten.

Wird die Linux-Version von Avidemux genutzt? Unter Linux kann man Avidemux trivial selber kompilieren, dabei "#if 0" in avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndex.h:47 in "#if 1" abändern, um zum alten Verhalten des MpegTS-Demuxers zurückzukehren.

QuoteZwischenfazit:
Mit alten Avidemux Versionen gehts.
Mit Avidemux 2.7.1 und Drag'n'Drop hab ich kaputte Übergänge.

Zumindest was Tonaussetzer beim Anfügen von MPEG Transport Streams anbelangt, dürften sie nach dem Commit [demuxers/MpegTS] Fix audio being silent during the first GOP deutlich kürzer werden.

Quote
QuoteDie Aussetzer beim Anhängen und anschließenden Speichern im Copy Mode sind unvermeidbar wenn Videos B-frames enthalten.
Damit kann ich grad nicht ganz so viel anfangen: Bezieht sich das auf die allgemeine Problematik oder auf meinen Fall?

Sowohl als auch. Ein B-Frame (bidirectional frame) erfordert Daten von mindestens einem vorhergehenden und mindestens einem nachfolgenden Frame, um dekodiert zu werden. D.h., man muss dann die Anzeige des ersten IDR Frames (I-Frames in Avidemux) um mindestens ein Frame verzögern, damit zum Zeitpunkt, zu dem das erste B-Frame angezeigt werden soll, alle Referenzbilder für dieses B-Frame bereits dekodiert worden sind.

Somit beginnt ein Video mit B-Frames in Avidemux immer mit einem Zeitstempel > 0. Beim Anfügen kommt es zu einer kleinen Verzögerung zwischen dem letzten Bild des ersten und dem ersten Bild des zweiten Videos, da wir den Decode-Zeitstempel des ersten IDR des zweiten Videos nicht vor den Präsentations-Zeitstempel des letzten Bildes des ersten Videos setzen können.

Im konkreten Fall von MPEG-TS, beginnt VDR das nächste Fragment höchstwahrscheinlich mitten in GOP. Dadurch überspringt Avidemux den GOP-Rest am Anfang. Je nach GOP-Länge können so locker einige Sekunden verlorengehen.