4

У меня есть файл 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).

Я попытался восстановить его с помощью «unrrunc», используя рабочий файл с той же камеры, но это не сработало:

$ ./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                           : Main@L4.0
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

2 ответа2

5

может попробовать это:

вот альтернатива для тех из вас, кому нужно восстановить mp4 AVC Mega Download

Эта утилита может восстановить поток H.264/AVC из незавершенных файлов MP4/MOV без (или пустого) заголовка. Вы можете получить незаконченный файл в случае повреждения видеокамеры во время записи или чего-то подобного. Эта утилита была протестирована с файлами, записанными GoPro, но она может работать и с другими видеокамерами.

Использование: recover_mp4_to_h264 in_good_simil.mp4 --avcc recover_mp4_to_h264 in_corrupted.mp4 out_video.h264 [out_audio.aac | out_audio.wav | out_audio.mp3] [] recovery_mp4_to_h264 in_corrupted.mp4 out_video.h264 [--aac | --pcm | --mp3] []

Поддерживаемые рекордеры: по умолчанию Ambarella (используется в GoPro и т.д.) Укажите --eos для Canon EOS Укажите --apple для некоторых программных кодеров Apple Укажите --htc для смартфона HTC Укажите --motorola для смартфона Motorola Укажите --samsung для видеокамеры Samsung

Шаг 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 должен существовать. Примечание. Укажите --pcm или имя файла WAV в случае восстановления файла MOV, написанного Canon EOS.

Шаг 3: Используйте любую другую утилиту (например, Yamb или ffmpeg), чтобы воссоздать файл MP4/MOV из потока H.264 (GOPR0347.h264). Примечание. MP4 не поддерживает звук PCM, в этом случае необходимо создать MOV:

ffmpeg.exe -r 30 -i recovered.h264 -i recovered.wav -vcodec copy -acodec copy result.mov

1

У меня есть Video Repair Tool 1.9.0.0 и до сих пор мне удалось исправить большинство испорченных файлов MP4. По крайней мере, вы можете попробовать его, так как пробная версия восстановит половину вашего файла, чтобы вы могли увидеть, работает ли он. Недостатком является то, что это не бесплатно, и это немного дорого для случайного использования

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .