Uridium schrieb:
Die Integrität des Containers wird durch das Remultiplexen wiederhergestellt, die des Inhalts nicht. Deshalb würde ich immer erst versuchen auf Dateiebene zu reparieren.
Ich hatte gestern passend gekürzte SD-Aufnahmedateien zusammenkopiert, um die einzelnen Methoden zu vergleichen:
Sowohl mit cat und ffmpeg-pipe/concat wurde das vollkommen sauber, aber bei ffmpeg-demux war zwar der Ton sauber, aber das Bild hing kurz: Ca. ½s, also vermutlich 1 GOP, die die SD immer 12 Frames groß sind.
Ob das auch beim zusammenkopieren der vorher mit ffmpeg-pipe zusammenkopierten einzelnen Aufnahmen passiert ist, hatte ich nicht kontrolliert, da ffmpeg-demux ohne Fehlermeldungen durch lief und es ja sowieso die Aufnahmeunterbrechung zum wechseln der Aufnahmepartition gab.
Uridium schrieb:
Die korrekte Vorgehensweise ist, den Stream auf Dateiebene zusammen zu schneiden (47k cut, pipe-join mit '-fflags +discardcorrupt', um Übertragungsfehler und ähnliches raus zu filtern) und danach in mp4/mkv zu multiplexen.
Stimmt! An Übertragungsfehler, durch z. B. starken Regen, hatte ich noch gar nicht gedacht. - Übrigens ist HD da sehr viel empfindlicher:
Ich hatte es schon mal, dass es währen einer Aufnahme zu einem kurzen Starkregenschauer kam und der Empfang vollständig zusammenbrach. Da nur kurz, habe ich die Aufnahme weiterlaufen lassen, aber anschließend ließ sie sich nur bis zur Störung abspielen: An alles, was anschließend noch aufgenommen wurde, kam man nicht heran: Weder mit dem Receiver, noch am PC, egal was ich versuchte.
Bei SD hätte ich bei Wiedergabe mit dem Receiver die gestörte Stelle einfach überspringen können und am PC wäre das erst recht kein Problem gewesen.
Das kann ich vermutlich leicht nachstellen, indem ich während einer Aufnahme einen feuchten Lappen vors LNB halte: Die Schüssel ist auf der Dachterrasse leicht erreichbar.
Btw:
Ich hatte heute morgen nach dem Aufwachen eine Idee bzgl. truncate:
Um doppeltes truncatieren zu vermeiden, brauche ich die Endung nur von .ts auf .tst ändern: Bei nochmaligen Aufruf würde truncate mit *.ts ins leere laufen und es würde außerdem verhindert, dass ffmpeg noch nicht beschnittene Dateien verarbeitet, da es ja die *.tst nutzt.
Da der 8590 die Dateien ###.ts benennt und der 8500 data####.ts, kann man auch die eindeutige unterscheiden und das Skript würde letztere einfach nur in .tst umbenennen, da sie ja schon passend "zugeschnitten" sind.
Das ist unkomplizierter als mit dd+skip (keep it simple
) und ich kann, falls etwas nicht funktioniert hat, auch sofort erkennen, ob die Teildatei schon zugeschnitten ist oder nicht.
Uridium schrieb:
Dann klappt das auch mit Losslesscut.
LC ist für mich in jeder Hinsicht nutzlos, da AVIdemux
sehr viel besser, übersichtlicher und schneller ist:
LC zeigt nicht mal den jeweiligen Frametyp an und ist bei der Navigation so ungeheuer zäh (es dauert jedesmal einen deutlichen Moment, bevor der angesteuerte Frame angezeigt wird (selbst wenn man per Cursortasten Bildweise weiterschaltet - afair wurde das Vorschaufenster jedesmal vorher kurz schwarz), während man mit AVIdemux absolut flüssig durchschrollen kann), das für mich damit kein vernünftiges Arbeiten möglich ist.