• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Wie kann ich ein "temp_video" wiederherstellen???

EagleFox

Member
Hallo Leute,

ich hoffe hier kann mir jemand helfen. Folgendes Problem:

Ich habe ein Video mit meinem Galaxy S2 aufgenommen - nach einiger Zeit hat sich das blöde Handy von selber heruntergefahren (ja, das macht es oft in letzter Zeit, obwohl der Akku voll ist) und das Video nicht als beendet gespeichert. Also habe ich nun eine temp_video Datei in meinem Kamera-Ordner.
Das Handy speichert die Datei normaler Weise als mp4 (H.264) ab.
Die Datei einfach in temp_video.mp4 umbenennen und mit vlc öffnen geht nicht - kommt nix. Auch andere Player öffnen die Datei nicht.
Code:
ffmpeg -i temp_video.mp4 out.mp4
gibt mir folgende Meldung am Ende:
Code:
moov atom not found
temp_video.mp4: Invalid data found when processing input
Das Gleiche mit der nichtumbenannten Datei (ohne .mp4 am Ende).
avidemux kann die Datei auch nicht öffnen. Gibt immer eine Fehlermeldung: --- kann nicht geöffnet werden (Lese-, Schreib- und Ausführrechte sind korrekt vergeben).
Ich habe die Datei hier http://mp4repair.org überprüfen lassen und das Ergebnis zeigt mir sowohl Ton, als auch Bilder aus dem Video. Es ist zu 95% wiederherstellbar. Allerdings muss ich hier 19$ für die Wiederherstellung zahlen.
Durch langes googeln habe ich folgenden Hinweis gefunden:
Code:
mencoder -idx input.avi -ovc copy -oac copy -o output.avi
soll auch mit mp4 funktionieren, nur finde ich mencoder nicht für SuSE 12.2. RPM search sagt mir "recorditnow-debugsource", aber nach der Installation finde ich auch kein mencoder.
Auch ein Weg über das Programm "untrunc" habe ich gefunden, nur ist das so alt, dass das auch nicht mehr bei SuSE 12.2 zu installieren ist, ohne viele Pakete zu deinstallieren und down zu graden.

Hat jemand eine Lösung des Problems parat? Ich kann mir nicht vorstellen, dass die mächtigen freien aktuellen Linux-Tools das nicht hinkriegen können.

Ich danke schon mal vielmals für eine Antwort!!!

Beste Grüße!
 
OP
E

EagleFox

Member
aha, ich hatte mplayer2-as-mplayer installiert. Ich versuche mal das MPlayer-Paket! Danke schon mal für den Hiinweis!
 
OP
E

EagleFox

Member
Installiert und mencoder ist da! Danke!!!

Nun habe ich den Befehl so ausgeführt:
Code:
mencoder -idx temp_video -ovc copy -oac copy -o ente.mp4

Folgende Meldung:
Code:
MEncoder dev-SVN-r35127-4.7-openSUSE Linux 12.2 (i586)-Packman (C) 2000-2012 MPlayer Team

WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
success: format: 0  data: 0x0 - 0x4bd2f20
libavformat version 54.25.104 (internal)
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x8990d80]moov atom not found
LAVF_header: av_open_input_stream() failed
MOV: missing header (moov/cmov) chunk! Maybe broken file...
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x8990d80]moov atom not found
LAVF_header: av_open_input_stream() failed
RAWDV file format detected.
VIDEO:  [DVSD]  720x480  24bpp  29.970 fps    0.0 kbps ( 0.0 kbyte/s)
[V] filefmt:22  fourcc:0x44535644  size:720x480  fps:29.970  ftime:=0.0334
videocodec: framecopy (720x480 24bpp fourcc=44535644)
Audio format 0x56444152 is incompatible with '-oac copy', please try '-oac pcm' instead or use '-fafmttag' to override it.

Dann so:
Code:
mencoder -idx temp_video -ovc copy -oac pcm -o ente.mp4

Ergebnis:
Code:
MEncoder dev-SVN-r35127-4.7-openSUSE Linux 12.2 (i586)-Packman (C) 2000-2012 MPlayer Team

WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
success: format: 0  data: 0x0 - 0x4bd2f20
libavformat version 54.25.104 (internal)
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x8990d80]moov atom not found
LAVF_header: av_open_input_stream() failed
MOV: missing header (moov/cmov) chunk! Maybe broken file...
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x8990d80]moov atom not found
LAVF_header: av_open_input_stream() failed
RAWDV file format detected.
VIDEO:  [DVSD]  720x480  24bpp  29.970 fps    0.0 kbps ( 0.0 kbyte/s)
[V] filefmt:22  fourcc:0x44535644  size:720x480  fps:29.970  ftime:=0.0334
==========================================================================
Opening audio decoder: [libdv] Raw DV Audio Decoder
Unknown/missing audio format -> no sound
ADecoder init failed :(
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 54.54.100 (internal)
Cannot find codec 'dvaudio' in libavcodec...
ADecoder init failed :(
ADecoder init failed :(
Cannot find codec for audio format 0x56444152.
==========================================================================
videocodec: framecopy (720x480 24bpp fourcc=44535644)
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Pos:   9.3s    280f (42%)  0.00fps Trem:   0min  75mb  A-V:0.000 [28874:0]

Too many audio packets in the buffer: (280 in 33600000 bytes).
Maybe you are playing a non-interleaved stream/file or the codec failed?
For AVI files, try to force non-interleaved mode with the -ni option.
Writing index...
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.

Video stream: 28771.199 kbit/s  (3596399 B/s)  size: 33600000 bytes  9.343 secs  280 frames

Das Video ist dann zwar abspielbar, aber statt ca. 30 Sekunden nur 9 Sekunden lang und man sieht nur kleine bunte Quadrate (wohl sehr pixelig das Ganze!?) und hört keinen Ton.
Kennst Du zufällig auch noch den korrekten Befehl?
 

spoensche

Moderator
Teammitglied
Vor der Frage nach dem Befehl, sollten wir erst mal klären, ob du auch alle Codecs installiert hast. Ohne passende Codecs bringt der Befehl auch nichts.

Poste mal die Ausgabe von
Code:
rpm -qa | egrep "mpeg|avcodec|theora"
 
OP
E

EagleFox

Member
Die Ausgabe ist:

Code:
libavcodec54-1.0.8-1.2.i586
libtheora0-1.1.1-20.1.2.i586
libavcodec55-2.0.1-3.3.i586
libmpeg2-0-0.5.1-2.1.i586
recorditnow-backend-ffmpeg-0.8.1-1.61.i586
gstreamer-0_10-plugins-ffmpeg-0.10.13-2000.9.i586
libavcodec52-0.7.15-3.1.i586
ffmpeg-2.0.1-3.3.i586
 

spoensche

Moderator
Teammitglied
Versuch mal
Code:
mencoder temp.mp4 -ovc lavc -lavcopts vcodec=mpeg4:autoaspect=1 -oac pcm -of avi -o datei.avi

Ansonsten mal unter http://www.mplayerhq.hu/DOCS/HTML/de/mencoder.html nachsehen und mit den Optionen "spielen".
 
OP
E

EagleFox

Member
Danke für die Hilfe!!!
Das Ergebnis war das gleiche wie vorher auch. Ein Video, ohne Ton, mit lauter bunten Quadraten. Nichts zu sehen also. Ich habe nun folgendes gemacht:
Es gibt ein repairtool "HD repair utility", das war in der version 1.5 noch kostenlos. Das habe ich mir gezogen und damit das Video gerettet. Läuft leider nur auf Windows. Das Programm gibt aber in der cmd bash die Befehle aus, die es durchführt. Im Hintergrund benutzt das Programm ffmpeg, mencoder, movdump und MPlayer. Movdump habe ich leider nicht für Linux gefunden, ffmpeg alleine gibt mit den selben Befehlen wie sie von dem Tool genutzt werden die selbe Fehlermeldung von ganz oben aus.
Da das Video nun wieder da ist, gebe ich auf, das weiter mit den mir bekannten Tools mit Linux nachzuvollziehen.

Ich danke für die Hilfe!!!
 
Oben