Ich habe eine MP4-Datei mit PlaysTV aufgenommen und mein Computer hatte mitten in der Aufnahme einen Stromausfall. Ich bin mir sicher, dass die Datei gültige Daten enthält, es ist nur so, dass kein Mediaplayer sie erkennen wird.
Um es zu beheben, habe ich Avidemux ausprobiert, ich habe zahlreiche Programme ausprobiert, die in anderen Fragen zu Stackexchange aufgeführt sind. Und bisher hat nichts funktioniert.
Die Ausgabe von ffmpeg -i lautet wie folgt:
libavutil 55. 24.100 / 55. 24.100
libavcodec 57. 43.100 / 57. 43.100
libavformat 57. 37.100 / 57. 37.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 46.100 / 6. 46.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000262d040] moov atom not found
2016_05_27_20_08_12-ses.mp4: Invalid data found when processing input
Mediainfo-Ausgabe:
General
Complete name : F:\vids\2016_05_27_20_08_12-ses.mp4
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42 (mp41/isom)
File size : 1.21 GiB
Es gibt wahrscheinlich kostenpflichtige Dienste, die diese Datei für mich reparieren, aber da es sich um eine (ziemlich) große Datei handelt, kosten sie zu viel.
Kann mir hier jemand helfen?
Ich bin kürzlich auf genau dieses Problem gestoßen und konnte die Datei mit Untrunc reparieren , einem Programm, das speziell zur Lösung dieses Problems entwickelt wurde, wie von Sparrowt auf SuperUser vorgeschlagen :
Für diese Methode benötigen Sie:
eine andere Videodatei, die nicht beschädigt ist
eine Linux-Installation (ich habe Ubuntu 12.04 verwendet) und die grundlegende Fähigkeit, eine Befehlszeile zu verwenden.
Folgendes ist zu tun:
Installieren Sie einige erforderliche Bibliotheken mit diesem Befehl:
sudo apt-get install libavformat-dev libavcodec-dev libavutil-dev
Laden Sie den Quellcode für Untrunc aus dem Github-Repo herunter:
wget https://github.com/ponchio/untrunc/archive/master.zip
Entpacken Sie den Quellcode:
unzip master.zip
Gehen Sie in das Verzeichnis, in dem es entpackt wurde:
cd untrunc-master
Kompilieren Sie den Quellcode mit diesem Befehl (alle eine Zeile):
g++ -o untrunc file.cpp main.cpp track.cpp atom.cpp mp4.cpp -L/usr/local/lib -lavformat -lavcodec -lavutil
(Sie können versuchen, diesen Schritt zu überspringen und die fertig bereitgestellte ausführbare Datei zu verwenden, aber es hat bei mir nicht funktioniert.)
Dann können Sie das Video tatsächlich reparieren. Sie benötigen sowohl das defekte Video als auch ein funktionierendes Beispielvideo.
Idealerweise sollte das Video von derselben Kamera stammen und dieselbe Auflösung haben (meins war, aber es könnte auch ohne funktionieren). Auch wenn es mindestens so lang ist wie das kaputte (vorzugsweise ungefähr gleich), kann dies hilfreich sein.
Führen Sie diesen Befehl in dem Ordner aus, in dem Sie Untrunc entpackt und kompiliert haben, aber ersetzen Sie die Bits /path/to/... durch Ihre 2 Videodateien:
./untrunc /path/to/working-video.m4v /path/to/broken-video.m4v
Dann sollte es weglaufen und hoffentlich eine abspielbare Datei namens produzieren
broken-video_fixed.m4v
Das ist es, was du getan hast!
Der VLC Media Player sollte nun in der Lage sein, die Datei abzuspielen. Es kann jedoch die falsche Längeninformation melden (Untrunc versucht, dies zu erraten/herauszufinden, macht es aber nicht immer richtig). Um dies zu beheben, versuchen Sie, das Video mit einem anderen Programm neu zu codieren.
track.cpp:60:32: fatal error: libavcodec/h264dec.h
Aktualisiert : Dieses Tool kann jetzt Dateien aus mehr Quellen wiederherstellen.
Versuchen Sie es mit recovery_mp4_to_h264 . Es ist ein Befehlszeilenprogramm und erfordert eine gute Referenzdatei.
Verwendung wie angegeben:
recover_mp4 in_good_similar.mp4 --analyze
recover_mp4 in_corrupted.mp4 {out_video.h264 | out_video.hevc | --novideo} [out_audio.aac | out_audio.wav | out_audio.mp3 | out_audio.raw | --noaudio] [options]
recover_mp4
, bietet diesen Download nicht mehr an und repariert stattdessen Dateien nur online über ihre Website (gegen Gebühr). Sie können immer noch eine frühere Version dieses Tools erhalten (legal; Restore.media bietet sogar den direkten Link für den Download ). Leider ist es Closed Source und nur für Windows (32/64 Bit) verfügbar ...Sie können auch, um sich Ärger zu ersparen, zuerst überprüfen, ob die Daten überhaupt vorhanden sind. Die Dateigröße von 1,21 GB, klingt das für die Zeit bis zum Stromausfall korrekt?
Ich spreche das an, weil einige Programme die Daten zuerst in den Speicher schreiben ... manchmal sehr lange große Datenblöcke, bevor sie tatsächlich auf die Festplatte übertragen werden.
Bei einem MP4 sollte das Video, wenn es gültige Header hat, bis zum letzten guten Paket abgespielt werden, das die richtigen Schlüssel/i-Frames enthält.
Was mir in den Sinn kommt, ist, dass die Daten möglicherweise nicht da sind, da sie in den Speicher geschrieben wurden, aber nicht auf die Festplatte - ich würde eine Testaufzeichnung machen (unter Berücksichtigung der Zeit, die sie "sein sollte", und die Datei vergleichen Größen). Bevor Sie durch Reifen springen.
Älterer Geek
DaBler