AW: GoPro HD Kamera - kompatible Speicherkarten
Hallo Jürgen,
super Tipp ! Habe mich heute ein paar Stunden rangesetzt und konnte fast alle mp4-Files wieder restaurieren, nur einige wenige ruckeln, ansonsten Originalqualität, außer dass der Ton fehlt, aber das ist unproblematisch. Tatsächlich war dein Tipp auch der einzige der wirklich funktioniert hat. Alle Hinweise in den verschiedenen Foren im Netz sonst erfolglos, auch sämtliche Restaurierungs-Software, außer PC Inspector File Recovery, damit konnte ich die SDHC-Karte wieder erkennen und die Daten sichern, allerdings ohne sie lesen zu können. Offenkundig waren die Header defekt.
Hier eine kurze übersetzte Zusammenfassung des von JÜrgen verlinkten Tipps aus dem "GoProUser.freeforums.org" für alle, die gleiche Probleme haben:
"...ich hatte die RAW-Video-Daten gerettet, aber keinen Header, der mir erlaubt hätte, sie zu lesen."
Anhand unbeschädigter mp4-Files konnte er die Header rekonstruieren.
"... Also schrieb ich ein Perl-Skript um meine beschädigten und nicht abspielbaren Videos zu reparieren. ... Wenn du Perl v5.8 oder höher noch nicht auf deinem PC installiert hast musst du das zuerst installieren....eine gute Free-Version bekommst du hier http://www.activestate.com/activeperl/downloads , außerdem brauchst du den VLC-MediaPlayer.... wenn du Perl installiert hast, kannst du prüfen ob es richtig installiert ist, indem du die DOS-Eingabeaufforderung öffnest und den Befehl eingibst: "perl -v". Dann müsste eine Auskunft erscheinen wie diese:
"This is perl 5, version 12, subversion 1 (v5.12.1) built for MSWin32-x86-multi-thread (with 3 registered patches, see perl -V for more detail)...".
Um deinen File zu reparieren empfehle ich dir einen Temp-Ordner anzulegen, z.B. C:\temp. Kopiere deine beschädigten Video-Files in diesen Temp-Ordner. Lade die zip-Datei herunter, die ich diesem Post angehängt habe. Es befindet sich lediglich ein Perl-Skript (.pl) darin. Kopiere diesen Perl-Skript in denselben Temp-Ordner, in dem sich deine Videos befinden. Öffne die DOS-Eingabeaufforderung und rufe deinen Temp-Ordner auf, z.B. mit dem Befehl "cd \temp". Führe das Skript mit folgendem Befehl aus:
"perl fix_header_v3a.pl <file_to_fix> [-options]"
Ersetze <file_to_fix> mit dem vollständigen Namen des Video-Files, den du reparieren möchtest und [-options] mit einer der beiden folgenden Möglichkeiten:
1. "-reso"
(Resolution/Auflösung) setze hierfür die Auflösung, in der der korrupte File aufgenommen wurde.
Standardmäßig auf 720P30 'r2' wenn nicht weiter bekannt.
Gültige Werte sind: 480p60, 720p30, 720p60, 960p30, 1080p30, r1, r2, r3, r4, or r5
2. "-ctts N"
Setze ctts auf N. Standardmäßig auf 0 wenn nichts weiter bekannt. Nutze das bei ruckelnder Wiedergabe in rekonstruierten Videos, passend für funktionsunfähige Frames.
Gültige Offsets sind 0-2 for 720p30 'r2' & 960p30 'r4'; 0-5 for 720p60 'r3' & 480p60 'r1'
Ein Beispiel: Wenn deine beschädigte Datei GOPR0001.mp4 heißt und du den File im 720P60 'r3' - Modus aufgenommen hast, müsstest du folgenden BEfehl in die DOS-Eingabeaufforderung eingeben:
"perl fix_header_v3a.pl GOPR0001.mp4 -reso r3"
Wenn alles funktioniert hat, müsstest du ein ERgebnis wie folgendes sehen:
"Attempting to fix GOPR0001.MP4
Found frame 000252 at 0083b65b
Opened file GOPR0001.MP4.restore.mp4 for writing
Found 252 (fc) frames, or approx 4s of video at 60fps
min size e2d, max size 30c4c
from 8008, to 839b5c
Calculated header size of 0x8000
Using ctts offset of 0
Using 1280 x 720 @ 60 fps
Copying frame 000252...
Done."
Das Skript wird einen neuen File mit dem selben Namen wie deine beschädigte Datei generieren, mit der Bezeichnung ".restore.mp4" am Ende. Du müsstest diesen File mit VLC abspielen können.
Wenn das Video sehr ruckelnd abgespielt wird, führe das recovery-Skript noch einmal aus und nutze einen anderen -ctts-Wert bis das Video gut wiedergegeben wird.
Der File wird ohne Audio wieder hergestellt. Momentan ist das Skript nicht intelligent genug, um verloren gegangenen Ton wieder herzustellen.
Bitte sei dir bewusst:
Dies ist ein "quick and dirty"- und nicht besonders robuster Code. Es ist nicht schädlich. Es kopiert die alten Daten in einen neuen File, also sorge dafür, dass du genug Speicherplatz zur Verfügung hast, wenn du das Skript ausführst. Es versucht nicht die Audiodaten wieder herzustellen. Die RAW-Audio-Daten bleiben erhalten, aber ich weiß zu wenig über mp4 /ACC, um sie wieder herzustellen."
Soweit die Zusammenfassung. Hoffe das hilft noch anderen. Ich konnte auf Anhieb fast alle mp4-Files wieder herstellen, lediglich einige ruckelten, da arbeite ich noch weiter.
Sollte etwas nicht ganz korrekt übersetzt sein, korrigiert mich bitte.
Danke, Markus
Hallo Jürgen,
super Tipp ! Habe mich heute ein paar Stunden rangesetzt und konnte fast alle mp4-Files wieder restaurieren, nur einige wenige ruckeln, ansonsten Originalqualität, außer dass der Ton fehlt, aber das ist unproblematisch. Tatsächlich war dein Tipp auch der einzige der wirklich funktioniert hat. Alle Hinweise in den verschiedenen Foren im Netz sonst erfolglos, auch sämtliche Restaurierungs-Software, außer PC Inspector File Recovery, damit konnte ich die SDHC-Karte wieder erkennen und die Daten sichern, allerdings ohne sie lesen zu können. Offenkundig waren die Header defekt.
Hier eine kurze übersetzte Zusammenfassung des von JÜrgen verlinkten Tipps aus dem "GoProUser.freeforums.org" für alle, die gleiche Probleme haben:
"...ich hatte die RAW-Video-Daten gerettet, aber keinen Header, der mir erlaubt hätte, sie zu lesen."
Anhand unbeschädigter mp4-Files konnte er die Header rekonstruieren.
"... Also schrieb ich ein Perl-Skript um meine beschädigten und nicht abspielbaren Videos zu reparieren. ... Wenn du Perl v5.8 oder höher noch nicht auf deinem PC installiert hast musst du das zuerst installieren....eine gute Free-Version bekommst du hier http://www.activestate.com/activeperl/downloads , außerdem brauchst du den VLC-MediaPlayer.... wenn du Perl installiert hast, kannst du prüfen ob es richtig installiert ist, indem du die DOS-Eingabeaufforderung öffnest und den Befehl eingibst: "perl -v". Dann müsste eine Auskunft erscheinen wie diese:
"This is perl 5, version 12, subversion 1 (v5.12.1) built for MSWin32-x86-multi-thread (with 3 registered patches, see perl -V for more detail)...".
Um deinen File zu reparieren empfehle ich dir einen Temp-Ordner anzulegen, z.B. C:\temp. Kopiere deine beschädigten Video-Files in diesen Temp-Ordner. Lade die zip-Datei herunter, die ich diesem Post angehängt habe. Es befindet sich lediglich ein Perl-Skript (.pl) darin. Kopiere diesen Perl-Skript in denselben Temp-Ordner, in dem sich deine Videos befinden. Öffne die DOS-Eingabeaufforderung und rufe deinen Temp-Ordner auf, z.B. mit dem Befehl "cd \temp". Führe das Skript mit folgendem Befehl aus:
"perl fix_header_v3a.pl <file_to_fix> [-options]"
Ersetze <file_to_fix> mit dem vollständigen Namen des Video-Files, den du reparieren möchtest und [-options] mit einer der beiden folgenden Möglichkeiten:
1. "-reso"
(Resolution/Auflösung) setze hierfür die Auflösung, in der der korrupte File aufgenommen wurde.
Standardmäßig auf 720P30 'r2' wenn nicht weiter bekannt.
Gültige Werte sind: 480p60, 720p30, 720p60, 960p30, 1080p30, r1, r2, r3, r4, or r5
2. "-ctts N"
Setze ctts auf N. Standardmäßig auf 0 wenn nichts weiter bekannt. Nutze das bei ruckelnder Wiedergabe in rekonstruierten Videos, passend für funktionsunfähige Frames.
Gültige Offsets sind 0-2 for 720p30 'r2' & 960p30 'r4'; 0-5 for 720p60 'r3' & 480p60 'r1'
Ein Beispiel: Wenn deine beschädigte Datei GOPR0001.mp4 heißt und du den File im 720P60 'r3' - Modus aufgenommen hast, müsstest du folgenden BEfehl in die DOS-Eingabeaufforderung eingeben:
"perl fix_header_v3a.pl GOPR0001.mp4 -reso r3"
Wenn alles funktioniert hat, müsstest du ein ERgebnis wie folgendes sehen:
"Attempting to fix GOPR0001.MP4
Found frame 000252 at 0083b65b
Opened file GOPR0001.MP4.restore.mp4 for writing
Found 252 (fc) frames, or approx 4s of video at 60fps
min size e2d, max size 30c4c
from 8008, to 839b5c
Calculated header size of 0x8000
Using ctts offset of 0
Using 1280 x 720 @ 60 fps
Copying frame 000252...
Done."
Das Skript wird einen neuen File mit dem selben Namen wie deine beschädigte Datei generieren, mit der Bezeichnung ".restore.mp4" am Ende. Du müsstest diesen File mit VLC abspielen können.
Wenn das Video sehr ruckelnd abgespielt wird, führe das recovery-Skript noch einmal aus und nutze einen anderen -ctts-Wert bis das Video gut wiedergegeben wird.
Der File wird ohne Audio wieder hergestellt. Momentan ist das Skript nicht intelligent genug, um verloren gegangenen Ton wieder herzustellen.
Bitte sei dir bewusst:
Dies ist ein "quick and dirty"- und nicht besonders robuster Code. Es ist nicht schädlich. Es kopiert die alten Daten in einen neuen File, also sorge dafür, dass du genug Speicherplatz zur Verfügung hast, wenn du das Skript ausführst. Es versucht nicht die Audiodaten wieder herzustellen. Die RAW-Audio-Daten bleiben erhalten, aber ich weiß zu wenig über mp4 /ACC, um sie wieder herzustellen."
Soweit die Zusammenfassung. Hoffe das hilft noch anderen. Ich konnte auf Anhieb fast alle mp4-Files wieder herstellen, lediglich einige ruckelten, da arbeite ich noch weiter.
Sollte etwas nicht ganz korrekt übersetzt sein, korrigiert mich bitte.
Danke, Markus
Kommentar