どういうわけか壊れてしまったように見えるmp4ファイルがあります:
$ 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).
同じカメラからの作業ファイルを使用して 'untrunc'でそれを回復しようとしましたが、それはうまくいきませんでした:
$ ./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
また、成功せずにffmpeg/avconvを試しました:
$ 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
同じカメラからの作業ファイルの例を次に示します。
$ 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: L R
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 19.5 MiB (1%)
Title : HMX-H300
Language : English
私は ビデオ修復ツール1.9.0. を持っており、今まで私は壊れたMP4ファイルのほとんどを修正することができました。試用版ではファイルの半分が修復されるので、少なくとも試してみることができるので、機能するかどうかを確認できます。欠点は、それが無料ではなく、時々使用するために少し高価であることです
あなたはこれを試すかもしれません:
MP4 AVCを回復する必要のある人のための代替策は次のとおりです: Mega Download 。
このユーティリティは、ヘッダーのない(または空の)ファイナライズされていないMP4/MOVファイルからH.264/AVCストリームを回復できます。録画中などにビデオカメラが破損した場合、未完成のファイルが届くことがあります。このユーティリティはGoProで記録されたファイルでテストされていますが、他のカムコーダーでも動作する可能性があります。
Usage:
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] [<recorder>]
recover_mp4_to_h264 in_corrupted.mp4 out_video.h264 [--aac | --pcm | --mp3] [<recorder>]
Supported recorders:
Default is Ambarella (used in GoPro, etc.)
Specify --eos in case of Canon EOS
Specify --Apple in case of some Apple software encoder
Specify --htc in case of HTC smartphone
Specify --Motorola in case of Motorola smartphone
Specify --samsung in case of Samsung camcorder
手順1:同じ解像度とビットレートの以前の適切なファイルを使用して、AVC構成レコードを生成します。例えば、
recover_mp4_to_h264.exe GOPR0346.MP4 --avcc
注:現在のディレクトリにファイル「avcc.hdr」が作成されます。
手順2:破損したファイルからH.264ストリームを復元します。例えば、
recover_mp4_to_h264.exe GOPR0347.MP4 GOPR0347.h264 GOPR0347.aac
注:ファイル 'avcc.hdr'が存在する必要があります。注:Canon EOSで作成したMOVファイルを復元する場合は、--pcm
またはWAVファイル名を指定してください。
ステップ3:他のユーティリティ(YambやFFmpegなど)を使用して、H.264ストリーム(GOPR0347.h264)からMP4/MOVファイルを再作成します。注MP4はPCMサウンドをサポートしていません。この場合、MOVを作成する必要があります。
ffmpeg.exe -r 30 -i recovered.h264 -i recovered.wav -vcodec copy -acodec copy result.mov