Une façon de récupérer le mp4 corrompu?

J'ai un fichier mp4 qui semble avoir été corrompu de quelque façon:

$ file HDV_1042.MP4 HDV_1042.MP4: data $ mediainfo HDV_1042.MP4 General Complete name : HDV_1042.MP4 File size : 1.72 GiB $ ffprobe HDV_1042.MP4 avprobe version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, Copyright (c) 2007-2013 the Libav developers built on Apr 2 2013 17:02:36 with gcc 4.6.3 HDV_1042.MP4: Invalid data found when processing input $ AtomicParsley HDV_1042.MP4 -T 1 AtomicParsley error: bad mpeg4 file (ftyp atom missing or alignment error). 

J'ai essayé de le récupérer avec 'untrunc' en utilisant un fichier de travail de la même caméra, mais cela ne fonctionnait pas:

 $ ./untrunc HDV_1041.MP4 HDV_1042.MP4 Reading: HDV_1041.MP4 Composition time offset atom found. Out of order samples possible. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'HDV_1041.MP4': Metadata: major_brand : avc1 minor_version : 0 compatible_brands: avc1isom creation_time : 1947-10-13 12:23:13 Duration: 00:21:20.25, start: 0.000000, bitrate: 12131 kb/s Stream #0.0(eng): Video: h264 (Main), yuv420p, 1280x720, 11988 kb/s, 59.94 fps, 59.94 tbr, 90k tbn, 180k tbc Metadata: creation_time : 1947-10-13 12:23:13 Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 128 kb/s Metadata: creation_time : 1947-10-13 12:23:13 Failed to parse atoms in truncated file 

Aussi essayé ffmpeg / avconv sans succès:

 $ avconv -f h264 -i HDV_1042.MP4 -c:a copy -c:v copy HDV_1042.mp4 avconv version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers built on Apr 2 2013 17:02:36 with gcc 4.6.3 [h264 @ 0x1359ac0] non-existing PPS referenced [h264 @ 0x1359ac0] non-existing PPS 0 referenced [h264 @ 0x1359ac0] decode_slice_header error [h264 @ 0x1359ac0] non-existing PPS 1 referenced [h264 @ 0x1359ac0] decode_slice_header error [h264 @ 0x1359ac0] no frame! [h264 @ 0x134f9e0] Estimating duration from bitrate, this may be inaccurate Input #0, h264, from 'HDV_1042.MP4': Duration: N/A, bitrate: N/A Stream #0.0: Video: h264, 25 fps, 25 tbr, 1200k tbn, 2400k tbc Output #0, mp4, to 'HDV_1042.mp4': Output file #0 does not contain any stream 

Voici un exemple d'un fichier de travail de la même caméra:

 $ mediainfo HDV_1041.MP4 General Complete name : HDV_1041.MP4 Format : MPEG-4 Format profile : JVT Codec ID : avc1 File size : 1.81 GiB Duration : 21mn 20s Overall bit rate : 12.1 Mbps Writing library : SEC Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : [email protected] Format settings, CABAC : Yes Format settings, ReFrames : 4 frames Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 21mn 20s Bit rate mode : Variable Bit rate : 12.0 Mbps Width : 1 280 pixels Height : 720 pixels Display aspect ratio : 16:9 Frame rate mode : Variable Frame rate : 59.940 fps Minimum frame rate : 59.920 fps Maximum frame rate : 59.960 fps Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.217 Stream size : 1.79 GiB (99%) Title : HMX-H300 Language : English Audio ID : 2 Format : AAC Format/Info : Advanced Audio Codec Format profile : LC Codec ID : 40 Duration : 21mn 20s Bit rate mode : Constant Bit rate : 128 Kbps Channel(s) : 2 channels Channel positions : Front: LR Sampling rate : 48.0 KHz Compression mode : Lossy Stream size : 19.5 MiB (1%) Title : HMX-H300 Language : English 

J'ai l' outil de réparation vidéo 1.9.0.0 et jusqu'à maintenant j'ai réussi à réparer la plupart des fichiers MP4 corupted. Au moins, vous pouvez l'essayer car un essai réparera la moitié de votre fichier, afin que vous puissiez voir si cela fonctionne. L'inconvénient est que ce n'est pas gratuit et c'est un peu cher pour l'utilisation occasionnelle

Pourrait essayer ceci:

Voici une alternative pour ceux d'entre vous qui doivent récupérer mp4 AVC Mega Download

Cet utilitaire peut récupérer le flux H.264 / AVC à partir de fichiers MP4 / MOV non finalisés sans en-tête (ou vide). Vous pouvez obtenir le fichier non finalisé en cas de caméra endommage lors de l'enregistrement ou autre. Cet utilitaire a été testé avec des fichiers enregistrés par GoPro, mais il peut également fonctionner avec d'autres caméscopes.

Utilisation: recover_mp4_to_h264 in_good_similar.mp4 –avcc recover_mp4_to_h264 in_corrupted.mp4 out_video.h264 [out_audio.aac | Out_audio.wav | Out_audio.mp3] [] recover_mp4_to_h264 in_corrupted.mp4 out_video.h264 [–aac | –pcm | –mp3] []

Enregistreurs pris en charge: la valeur par défaut est Ambarella (utilisée dans GoPro, etc.) Spécifiez –eos dans le cas de Canon EOS Spécifiez –apple dans le cas d'un codeur logiciel Apple Spécifiez –htc dans le cas du téléphone intelligent HTC Spécifiez –motorola dans le cas de Téléphone intelligent Motorola Spécifiez –samsung dans le cas du caméscope Samsung

Étape 1: Utilisez tout bon fichier précédent avec la même résolution et bitrate pour générer l'enregistrement de configuration AVC, par exemple

Recover_mp4_to_h264.exe GOPR0346.MP4 –avcc

Remarque: Il créera le fichier 'avcc.hdr' dans le répertoire actuel.

Étape 2: récupérer le flux H.264 à partir du fichier corrompu, par exemple

Recover_mp4_to_h264.exe GOPR0347.MP4 GOPR0347.h264 GOPR0347.aac

Remarque: Le fichier 'avcc.hdr' doit exister. Remarque: Spécifiez –pcm ou le nom du fichier WAV en cas de récupération du fichier MOV écrit par Canon EOS.

Étape 3: utilisez n'importe quel autre utilitaire (Yamb ou ffmpeg par exemple) pour recréer le fichier MP4 / MOV du flux H.264 (GOPR0347.h264). Note MP4 ne prend pas en charge le son PCM, vous devez créer MOV dans ce cas:

Ffmpeg.exe -r 30 -i recover.h264 -i recover.wav -vcodec copy -acodec copy result.mov