Итак, у меня есть несколько поврежденных файлов MP4 (также некоторые поврежденные файлы AVI, но я считаю, что это другая проблема). Кажется, они испортились, когда у меня был внешний жесткий диск, на котором они находились в аварийном состоянии (он больше не работает ни на одном из моих компьютеров). У меня есть один компьютер под управлением Windows 8.1 и один старый компьютер под управлением Windows Vista. Поведение для всего следующего одинаково на обоих компьютерах.

Файлы не воспроизводятся в проигрывателе Windows Media или VLC (только конус трафика) или QuickTime («Ошибка-2048: не удалось открыть файл MVI_0338.MP4, потому что это не файл, который понимает QuickTime».). Так что это привело меня к поиску исправлений в Интернете. Многие люди, похоже, добились успеха с инструментом ремонта видео от Grau, но он мне не помог. На выходе была всего пара кадров видео. Был еще один редактор, с которым людям повезло, Digiarty WinX HD Video Converter Deluxe, который не работал для меня. Итак, после того, как программы с графическим интерфейсом потерпели неудачу, я вернулся к более мощным корням вычислений и запустил ffmpeg.

Это также подавилось файлом. Вот как выглядел вывод на экран:

Microsoft Windows [Version 6.0.6002]
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

C:\180_0416>ffmpeg -i mvi_0335.MP4 -c copy MVI_0335-fix.MP4
ffmpeg version N-74113-gcdb0225 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth
--enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec
--enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug
--enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger
--enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame
--enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc
--enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264
--enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink
--enable-zlib
  libavutil      54. 29.100 / 54. 29.100
  libavcodec     56. 56.101 / 56. 56.101
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 30.100 /  5. 30.100
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
[dv @ 03e24ac0] Estimating duration from bitrate, this may be inaccurate
Input #0, dv, from 'mvi_0335.MP4':
  Metadata:
    timecode        : 00:10:13;00
  Duration: 00:00:18.15, start: 0.000000, bitrate: 28798 kb/s
    Stream #0:0: Video: dvvideo, yuv411p, 720x480 [SAR 8:9 DAR 4:3], 28771 kb/s,
 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Stream #0:1: Audio: pcm_s16le, 32000 Hz, stereo, s16, 1024 kb/s
    Stream #0:2: Audio: pcm_s16le, 32000 Hz, stereo, s16, 1024 kb/s
[mp4 @ 03ee0be0] Codec for stream 0 does not use global headers but container fo
rmat requires global headers
[mp4 @ 03ee0be0] Codec for stream 1 does not use global headers but container fo
rmat requires global headers
[mp4 @ 03ee0be0] Could not find tag for codec dvvideo in stream #0, codec not cu
rrently supported in container
Output #0, mp4, to 'MVI_0335-fix.MP4':
  Metadata:
    timecode        : 00:10:13;00
    encoder         : Lavf56.40.101
    Stream #0:0: Video: dvvideo, yuv411p, 720x480 [SAR 8:9 DAR 4:3], q=2-31, 287
71 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Stream #0:1: Audio: pcm_s16le, 32000 Hz, stereo, 1024 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Invali
d argument

Я уверен, что что-то упустил в своих поисках в Интернете (я много узнал об атоме moov, но не совсем о моей проблеме с кодеком, dvvideo и т. Д.), Но любые идеи о том, как справиться с этой проблемой, были бы очень оценили.

Джон
источник