损坏的 MP4 文件:ffmpeg 编解码器、全局标头和 dvvideo 错误。可以修复吗?

损坏的 MP4 文件:ffmpeg 编解码器、全局标头和 dvvideo 错误。可以修复吗?

因此,我有许多损坏的 MP4 文件(还有一些损坏的 AVI 文件,但我相信这是另一个问题)。它们似乎是在我有一个外部硬盘驱动器崩溃时损坏的(它在我的任何一台计算机上都不再工作)。我有一台运行 Windows 8.1 的计算机和一台运行 Windows Vista 的老旧计算机。以下所有行为在两台计算机上都是一致的。

这些文件无法在 Windows Media Player 或 VLC(只有交通锥)或 QuickTime(“错误 - 2048:无法打开文件 MVI_0338.MP4,因为这不是 QuickTime 可以理解的文件。”)中播放。因此,我开始在互联网上寻找修复方法。很多人似乎都成功地使用了 Grau 的视频修复工具,但对我来说却不起作用。输出只有几帧视频。还有另一个人们运气不错的编辑器,Digiarty WinX HD Video Converter Deluxe,对我来说却不起作用。因此,在带有 GUI 的程序让我失望之后,我回到了更强大的计算根源,并启动并运行了 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 atom 的信息,但并没有找到有关我的编解码器、dvvideo 等问题的任何信息),但如果能提供任何关于如何处理这个问题的想法,我将不胜感激。

相关内容