Automatisches Anhängen mehrerer Dateien freischalten

Started by tom1632, March 17, 2019, 01:19:26 PM

Previous topic - Next topic

tom1632

Hallo zusammen,

bei der Version 2.7.1.von avidemux wurde das automatische anfügen von Dateien deaktiviert, weil es Probleme verursachen kann. Da es bei mir immer einwandfrei funktioniert hat, bekam ich folgenden Tipp, um es wieder zu aktivieren:

QuoteReplace #if 0 at https://github.com/mean00/avidemux2/blob/master/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndex.h#L47 with #if 1 and rebuild Avidemux.

Bei der Version 2.7.2 ist "#if 1" bereits eingetragen, das automatische zusammenführen von Dateien passiert dennoch nicht.

Was kann ich noch machen, um diese Funktion wieder zu erhalten?

Danke
Thomas

eumagga0x2a

Wurden die alten *.idx2-Dateien gelöscht? Für 1 GiB +/- 1 MiB große, sequenziell benannte Stream-Fragmente sollte das automatische Anfügen im MpegTS-Demuxer eigentlich funktionieren.

Die Funktion ist nun auf Fragmentgrößen 256, 512 MiB, 1, 2 und 4 GiB beschränkt, weswegen sie auch wieder aktiviert werden konnte.

tom1632

Es sind keine alten .idx2 - Dateien vorhanden. Die Dateien haben am Ende, vor ".ts", eine fortlaufende Nummerierung. Die Größe ist 1078067200 pro Datei (ermittelt mit ls -l in der bash); ausgenommen natürlich die letzte Datei eines Streams, die eine beliebige Größe haben kann.

eumagga0x2a

Verstehe, die Fragmentgröße ist somit mehr als 3 MiB außerhalb der Toleranz. Man bräuchte 5 MiB Toleranz, um diesen Fall abzudecken. Welches Gerät ist dafür verantwortlich?

tom1632


eumagga0x2a

Wenn man die Aufnahmen auf ein anderes Speichermedium, zum Beispiel auf ein Netzlaufwerk, Geräteseitig kopiert (Kapitel 8.4.3 der Bedienungsanleitung), bekommt man trotzdem immer gesplittete Streams?

Um die Toleranz weiter zu erhöhen, kann man in den Abschnitten

        // ____________________
        // Multi loading
        // ____________________
        uint32_t tabSize;
        std::string leftPart(left);
        std::string rightPart(right);
        delete [] left;
        delete [] right;
        left=NULL;
        right=NULL;
   
        aprintf( "\nAuto adding: \n" );
        uint32_t current=base;
        _curFd = 0;
        uint64_t total=0;
        uint64_t threshold,tolerance;
        threshold=tolerance=1;
        threshold<<=28;
        tolerance<<=20;


von fileParser::open in avidemux_core/ADM_coreDemuxerMpeg/src/dmx_io.cpp und

    // check whether the filesize approx. matches 2^n GiB, the usual
    // threshold for automatically split streams
    bool success=false;
    uint64_t fileSize,threshold,tolerance;
    threshold=tolerance=1;
    threshold<<=28; // we start at 256 MiB, this value is hardcoded in some devices
    tolerance<<=20; // 1 MiB


von ADM_probeSequencedFile in avidemux_core/ADM_coreUtils/src/avidemutils.cpp die Anzahl von Stellen, um die Bits von "tolerance" nach links verschoben werden, von 20 auf 23 erhöhen = 8 MiB Toleranz.

tom1632

Das Kopieren von Aufnahmen auf ein anderes Speichermedium wird in der Bedienungsanleitung zwar angesprochen, es funktioniert aber nicht. Auch eine Suche mittels Google hat da keinen Erfolg gebracht.

Die Anpassung der Toleranzgrenzen funktioniert aber perfekt. Die TS-Files werden wieder autom. aneinandergefügt wie zuvor. Perfekt.

Vielen Dank für die rasche und erfolgreiche Hilfe!

Mfg, Thomas

Anfänger

Und wie funktioniert das unter Windows?

(Ich habe gerade von Version 2.7.0 auf 2.7.3 gewechselt & muss jede Datei einzeln anhängen.)

eumagga0x2a

Der Patch, der die Toleranzgrenze ab 1 GiB Fragmentgröße von 1 MiB auf 8 MiB anhebt ist in 2.7.3 bereits enthalten. Die Voraussetzungen sind also:


  • Alle Fragmente bis auf das letzte sind einheitlich 256, 512 MiB bzw. 1, 2 oder 4 GiB groß
  • Die Abweichung von der Zielgröße darf bis einschließlich 512 MiB Fragmentgröße 1 MiB nicht überschreiten, ab 1 GiB beträgt sie 8 MiB
  • Das letzte Fragment ist kleiner als die vorherigen.

Die alten Indexdateien müssen vorher gelöscht worden sein, dann sollte die Abfrage kommen.

Wie groß sind denn die Fragmente im vorliegenden Fall genau?

Um Missverständnissen vorzubeugen: Die Funktionalität ist nur für den MPEG-PS und MPEG-TS Demuxer gegeben, andere Formate sind dafür prinzipbedingt nicht ausgelegt.

SKA105

Hi,

ich bin neu im Forum und bitte deshalb vielleicht bei meinen Fragen etwas nachsichtig sein!

Das automatische Anhängen mehrerer Dateien ist eine extreme Vereinfachung, leider klappt das bei mir nur in der Version 2.7.0. Bei allen anderen, auch bei der neuesten Version 2.7.5 funktioniert das nicht mehr.
Und die Tricks, die in diesem Thread beschrieben werden, kann ich leider nicht nachvollziehen. Kann mir das bitte jemand einfacher erklären?? :(

LG, SAK105

eumagga0x2a

Avidemux bemüht sich, das automatische Anfügen im Demuxer von Dateien, die keine zuvor automatisch gesplitteten Teile eines und denselben Streams sind, zu unterbinden. Keine anderen, einfach sequentiell benannten Dateien dürfen so zusammengefasst werden weil sonst das Ergebnis völlig kaputt sein wird.

Sonst einfach eine multiple Auswahl von Videos aus dem Dateimanager auf das Avidemux-Fenster ziehen und ablegen.