Forum
Tipps
News
Menu-Icon

Reparatur eines Videos - Software und Umsetzung - Lösungsansätze - schwierig!

Hi Leute,
ich bin an einem Punkt mit meinem Video gescheitert und komme absolut nicht mehr weiter. :-(
Ich habe ein defektes Video einer Kamera, das sich nicht abspielen lässt.
Jetzt hat die Kamera den gesamten Videostream aber vermutlich vollständig auf die SD-Karte geschrieben. Das richtig Dumme ist aber, dass der Datensatz standardmäßig ein zweites Video auf einer zweiten Videospur mit geringerer Auflösung aus dem Zweitobjektiv enthält und all das in dem Datenstream steckt.

Ich habe schon die verschiedensten Reparaturansätze probiert, aber fast nur Datenausschuss rausgekriegt.
• ffmpeg repariert mir das Video nicht, weil das MOOV Atom fehlt.
• Mit recover_mp4 kriege ich den .h264-Datenstream des zweiten Videos teilweise extrahiert, der ist aber unwichtig. Das Hauptvideo zerschießt es mir vollkommen in ein Grau-Grün-Standbild.
• Mit Video Repair kriege ich den Datenstream des ersten Videos als ca. halb so große Datei extrahiert, er läuft auch bis zum Ende durch, aber ich habe sehr viele Ruckler und graue und grüne Artefakte im Video und er lässt sich nicht mit jedem Player abspielen (z.B. VLC spielt ihn nicht).
• in meinem Videoeditor kann ich den defekten Stream nicht laden.

Meine Absicht ist daher, das MOOV Atom aus einem intakten Video aus derselben Kamera ohne die Laufzeitangabe und Videogröße in den kaputten Stream einzubinden. Die Daten, Bitraten und Bewegungsalgorithmen wären dann identisch und vielleicht kann ein Player dann das erste Video ruckelfrei bis zum Ende abspielen. Ich weiß nur nicht, wie ich das mache?

recover_mp4 analysiert mir zwar die Daten aus einem intakten Video, allerdings sind die am Ende vollkommen ** Netiquette! **ig. Es sind genau die Daten vom Zweitstream (9fps, 160x120px). In der Analyse sehe ich sogar das gesamte MOOV Atom des Erststreams (1920x1080 @ 29.97fps usw. usf.), in die Analysedatei werden aber Daten des Zweitstreams geschrieben :-(

Mit diesen falschen Grundlagen versucht dann ffmpeg den Erststream wiederherzustellen, was natürlich in die Hose geht.

Außerdem habe habe ich den Dateiheader der defekten Datei in einem Hexeditor umgeschrieben, aber dann ist das Video Schrott. Zusätzlich zum Header sind ja noch unzählige andere Daten fürs MOOV Atom wichtig, die ich manuell dort nicht finden kann.

Wichtig ist auch noch: nicht jeder Player erkennt den zweiten Videostream. Diesen kann ich bei einem intakten Video per VLC über die den Direct3D9-Output parallel mit 9fps mitlaufen lassen, ein anderer Player, mein Videoschnittprogramm oder auch Reparatursoftware erkennen jedoch nur den ersten Stream.

Ihr seht also: Hier beißt sich die Katze in den Schwanz. Zur Analyse werden die Daten des Zweitstreams herangezogen, zum Rendern nur die Daten des Erststreams erkannt.

Eine Softwarelösung könnte evtl. noch GPAC sein, aber damit kenne ich mich absolut nicht aus.

Habt ihr eine Lösung oder noch eine Idee, was ich ausprobieren könnte? Ich habe bereits Urlaubsvideos auf diese Weise wiederhergestellt, aber das waren alles einheitliche Streams aus einer DSLR, niemals ein Doppelstream.

Ganz unten bei den ffmpeg-Parametern seht ihr die framerate 9.001, was schon auf einen Fehler hindeutet. Die CGO3-Kamera könnte man notfalls drin lassen, denn der Stream wird vermutlich vom gleichen Sensor verarbeitet. Allerdings ist die tatsächliche Kamera eine modifizierte CGO3.

Danke für gute Lösungsansätze im Voraus. Von einer Online-Reparaturlösung nehme ich allerdings Abstand. Datenschutz.

recover_mp4 v1.92 (C) 2011-2017 Dmitry Vasilyev <[email protected]>
http://slydiman.me

Analyzing file 'Good.mp4':

'ftyp' 0x0 [24] Major Brand: 'mp42', Minor Version: 0x0
  Compatible brands: 'mp42', 'isom'
'mdat' 0x18 [309230940]
'moov' 0x126E7D74 [159215]
  'mvhd' 0x126E7D7C [108] Movie Header: Time scale 90000, Duration 14145700 (157.174 sec)
    Rate 1, Volume 1
    Creating time: 2019/07/04 17:03:37
    Modification time: 2019/07/04 17:03:37
    Next Track ID: 3
  'udta' 0x126E7DE8 [128]
    'FIRM' 0x126E7DF0 [40] "0.2.14A"
    'CAME' 0x126E7E18 [40]
      Unprocessed 32 bytes
    'SETT' 0x126E7E40 [40]
      Unprocessed 32 bytes
  'trak' 0x126E7E68 [76553]
    'tkhd' 0x126E7E70 [92] Track #1, Duration 14145700
      Resolution: 1920x1080
      Creating time: 2019/07/04 17:03:37
      Modification time: 2019/07/04 17:03:37
    'mdia' 0x126E7ECC [76453]
      'mdhd' 0x126E7ED4 [32] Media Header: Time scale 90000, Duration 14145700 (157.174 sec)
        Creating time: 2019/07/04 17:03:37
        Modification time: 2019/07/04 17:03:37
      'hdlr' 0x126E7EF4 [43] Component Type: {0000}, Subtype: 'vide'
      'minf' 0x126E7F1F [76370]
        'vmhd' 0x126E7F27 [20]
        'dinf' 0x126E7F3B [36]
          'dref' 0x126E7F43 [28]
            'url?' 0x126E7F53 [12]
              Unprocessed 4 bytes 00 00 00 01
        'stbl' 0x126E7F5F [76306]
          'stsd' 0x126E7F67 [174]
            'avc1' 0x126E7F77 [158] Video Sample 1920x1080, 24 bits, cgo3
              'avcC' 0x126E7FCD [72] AVC video 1920x1080, Main Profile, Level 4.0
          'stts' 0x126E8015 [24] Time-to-Sample[1] (#: Count * Duration):
             0: 4710 * 3003
          'ctts' 0x126E802D [37696]
            Unprocessed 37688 bytes
          'stsc' 0x126F136D [28] Sample-to-Chunk[1] (#: FirstChunk / SamplesPerChunk / SampleDescIndex):
             0: 1 / 1 / 1
          'stsz' 0x126F1389 [18860] Sample Size[4710] (#: Sample Size):
             0: 0x46e42
             1: 0xb890
             2: 0xef3a
             3: 0xd614
             4: 0xe215
             5: 0xe7ac
             6: 0xe797
             7: 0xf4c4
             8: 0xdf42
             9: 0xe313
            10: 0xe791
            ...
          'stco' 0x126F5D35 [18856] Chunk Offset[4710] (#: Chunk Offset):
             0: 0x20
             1: 0x46e62
             2: 0x526f2
             3: 0x64d7e
             4: 0x72484
             5: 0x81262
             6: 0x8fb00
             7: 0x9e297
             8: 0xad84d
             9: 0xbd033
            10: 0xcb438
            ...
          'stss' 0x126FA6DD [644] Sync Sample[157] (#: SamplesNumber):
             0: 1
             1: 31
             2: 61
             3: 91
             4: 121
             5: 151
             6: 181
             7: 211
             8: 241
             9: 271
            10: 301
            ...
          'mark' 0x126FA961 [16]
            Unprocessed 8 bytes
  'trak' 0x126FA971 [59385]
    'tkhd' 0x126FA979 [92] Track #2, Duration 14148480
      Creating time: 2019/07/04 17:03:37
      Modification time: 2019/07/04 17:03:37
    'mdia' 0x126FA9D5 [59285]
      'mdhd' 0x126FA9DD [32] Media Header: Time scale 90000, Duration 14148480 (157.205 sec)
        Creating time: 2019/07/04 17:03:37
        Modification time: 2019/07/04 17:03:37
      'hdlr' 0x126FA9FD [43] Component Type: {0000}, Subtype: 'soun'
      'minf' 0x126FAA28 [59202]
        'smhd' 0x126FAA30 [16]
        'dinf' 0x126FAA40 [36]
          'dref' 0x126FAA48 [28]
            'url?' 0x126FAA58 [12]
              Unprocessed 4 bytes 00 00 00 01
        'stbl' 0x126FAA64 [59142]
          'stsd' 0x126FAA6C [102]
            'mp4a' 0x126FAA7C [86] Sound Sample v0, 1ch, 16 bits, 48000 Hz
              'esds' 0x126FAAA0 [50] MPEG-4 audio AAC 48000 Hz 1ch profile 2 (codec data 0x11 0x88)
          'stts' 0x126FAAD2 [24] Time-to-Sample[1] (#: Count * Duration):
             0: 7368 * 1920
          'stsc' 0x126FAAEA [28] Sample-to-Chunk[1] (#: FirstChunk / SamplesPerChunk / SampleDescIndex):
             0: 1 / 1 / 1
          'stsz' 0x126FAB06 [29492] Sample Size[7368] (#: Sample Size):
             0: 0x79
             1: 0x79
             2: 0x79
             3: 0x79
             4: 0x79
             5: 0x79
             6: 0x79
             7: 0x79
             8: 0x79
             9: 0x79
            10: 0x79
            ...
          'stco' 0x12701E3A [29488] Chunk Offset[7368] (#: Chunk Offset):
             0: 0x64c8c
             1: 0x64d05
             2: 0x72392
             3: 0x7240b
             4: 0x80699
             5: 0x80712
             6: 0x8fa0e
             7: 0x8fa87
             8: 0xad75b
             9: 0xad7d4
            10: 0xbcf41
            ...
  'trak' 0x1270916A [23033]
    'tkhd' 0x12709172 [92] Track #3, Duration 14143568
      Resolution: 160x120
      Creating time: 2019/07/04 17:03:37
      Modification time: 2019/07/04 17:03:37
    'mdia' 0x127091CE [22933]
      'mdhd' 0x127091D6 [32] Media Header: Time scale 90000, Duration 14143568 (157.151 sec)
        Creating time: 2019/07/04 17:03:37
        Modification time: 2019/07/04 17:03:37
      'hdlr' 0x127091F6 [43] Component Type: {0000}, Subtype: 'vide'
      'minf' 0x12709221 [22850]
        'vmhd' 0x12709229 [20]
        'dinf' 0x1270923D [36]
          'dref' 0x12709245 [28]
            'url?' 0x12709255 [12]
              Unprocessed 4 bytes 00 00 00 01
        'stbl' 0x12709261 [22786]
          'stsd' 0x12709269 [146]
            'avc1' 0x12709279 [130] Video Sample 160x120, 24 bits, cgo3
              'avcC' 0x127092CF [44] AVC video 160x120, Baseline Profile, Level 2.0
          'stts' 0x127092FB [24] Time-to-Sample[1] (#: Count * Duration):
             0: 1366 * 9999
          'ctts' 0x12709313 [10944]
            Unprocessed 10936 bytes
          'stsc' 0x1270BDD3 [28] Sample-to-Chunk[1] (#: FirstChunk / SamplesPerChunk / SampleDescIndex):
             0: 1 / 1 / 1
          'stsz' 0x1270BDEF [5484] Sample Size[1366] (#: Sample Size):
             0: 0x3660
             1: 0xad7
             2: 0x17b2
             3: 0x110c
             4: 0x1277
             5: 0x174c
             6: 0x1754
             7: 0x1896
             8: 0x1e1a
             9: 0x3680
            10: 0x89c
            ...
          'stco' 0x1270D35B [5480] Chunk Offset[1366] (#: Chunk Offset):
             0: 0x6162c
             1: 0x8078b
             2: 0xbb78f
             3: 0xe8889
             4: 0x1130ac
             5: 0x13bc6f
             6: 0x171ab2
             7: 0x1a6123
             8: 0x1d33bd
             9: 0x246214
            10: 0x272753
            ...
          'stss' 0x1270E8C3 [656] Sync Sample[160] (#: SamplesNumber):
             0: 1
             1: 10
             2: 19
             3: 28
             4: 37
             5: 44
             6: 53
             7: 62
             8: 70
             9: 76
            10: 85
            ...
          'mark' 0x1270EB53 [16]
            Unprocessed 8 bytes
----------------------

File 'video.hdr' created succesfully
File 'audio.hdr' created succesfully
----------------------

Video statistics:
Sample Size: Min 0x45b, Avg 0x1996, Max 0x459a
Samples Per Chunk: Min 1, Avg 1, Max 1

Count  1366, [            0c 00 00] Size Min 0x93, Avg 0x94, Max 0x95
Count   160, [            41 9a 20] Size Min 0x3bf, Avg 0x12b8, Max 0x2820
Count   159, [            41 9a 40] Size Min 0x762, Avg 0x15b1, Max 0x27d7
Count   157, [            41 9a 60] Size Min 0xbfc, Avg 0x16a3, Max 0x276f
Count   155, [            41 9a 80] Size Min 0xc92, Avg 0x18d5, Max 0x2422
Count   149, [            41 9a a0] Size Min 0xd12, Avg 0x18d1, Max 0x2592
Count   145, [            41 9a c0] Size Min 0xa3d, Avg 0x17a7, Max 0x2490
Count   142, [            41 9a e0] Size Min 0xd24, Avg 0x17c5, Max 0x2628
Count   139, [            41 9b 00] Size Min 0xd9a, Avg 0x192c, Max 0x27c6
Count    80, [            65 88 82] Size Min 0x1b68, Avg 0x3649, Max 0x44fe
Count    80, [            65 88 84] Size Min 0x1d82, Avg 0x3608, Max 0x42ea
----------------------

Sound statistics:
Sample Size: Min 0x79, Avg 0x79, Max 0x79
Samples Per Chunk: Min 1, Avg 1, Max 1

Count  7368, [01 48 20] Fixed Size 0x79
----------------------


Now run the following command to start recovering:
recover_mp4.exe corrupted_file result.h264 result.aac --cgo3

Then use ffmpeg to mux the final file:
ffmpeg.exe -r 9.001 -i result.h264 -i result.aac -bsf:a aac_adtstoasc -c:v copy -c:a copy result.mp4

« VLC PlayerPython Software »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
SD-Karte
Die SD-Karte ist eine kleine, digitale Speicherkarte mit einem Flash-Speicher. Der Name "SD" steht für "Secure Digital": SD-Karten sind in verschiedenen Grö&szl...

Auslagerungsdatei
Die Auslagerungsdatei, auch bekannt als virtueller Speicher, ist ein wichtiges Element im Windows-Betriebssystem. Sie dient als Erweiterung des physischen Arbeitsspeicher...

Dateiendungen
Die Dateiendung, auch Dateinamenerweiterung, Dateierweiterung oder einfach "Endung" genannt, besteht aus meistens drei oder vier Buchstaben und wird mit einem Punkt an de...