修复损坏的 .MP4 文件。这可能是一个 3gp 文件

Posted

技术标签:

【中文标题】修复损坏的 .MP4 文件。这可能是一个 3gp 文件【英文标题】:Fixing a corrupted .MP4 file. which might be a 3gp file 【发布时间】:2018-12-30 06:43:33 【问题描述】:

我有一个名为 input.MP4 的文件,它已损坏。它来自闭路电视摄像机。我尝试了一切,ffmpeg,VLC 转换,没有运气。但是,我使用了mediainfoexiftool 并提取了以下信息。我想知道是否有人可以弄清楚我是否可以使用这些信息中的任何一个来修复它或将其转换为可用的格式。我有一份here on my Google Drive

mediainfo 给了我这个:

General
Complete name                       : input.MP4
Format                              : MPEG-4
Format profile                      : 3GPP Media Release 5
Codec ID                            : 3gp5 (3gp5/3gp4/avc1/mp42/isom)
File size                           : 5.77 MiB
IsTruncated                         : Yes

exiftool 给了我这个:

ExifTool Version Number          : 10.80
File Name                        : input.MP4
Directory                        : /home/tendi/Downloads
File Size                        : 5.8 MB
File Modification Date/Time      : 2018:07:21 19:09:03-04:00
File Access Date/Time            : 2018:07:21 19:30:48-04:00
File Inode Change Date/Time      : 2018:07:21 19:30:48-04:00
File Permissions                 : rw-rw-r--
File Type                        : 3GP
File Type Extension              : 3gp
MIME Type                        : video/3gpp
Major Brand                      : 3GPP Media (.3GP) Release 5
Minor Version                    : 0.0.0
Compatible Brands                : 3gp5, 3gp4, avc1, mp42, isom
Movie Data Size                  : 5899106
Movie Data Offset                : 44

有什么建议吗?

【问题讨论】:

这似乎是 7-8 个文件融合为一个。我检测到 8 个 moov 原子和 9 个 mdat 原子! 真的吗?怎么会这样?关于如何分离它们的任何想法?修复它们? 我怀疑这并不是真正的多个文件,而是 a) 文件系统条目包含错误的文件内容链接列表,引用其他文件,和/或 b) 由于某些 I/O 错误,数据被多次刷新到不同的位置。无论如何,我做了一些十六进制编辑来获取第一个文件并能够获取流信息,但解码失败,因为示例表仍然无效。 【参考方案1】:

我收到了一个编解码器为“3gp5”的 mp4 视频,这似乎是 isom/mp41 编解码器的前身。我将其转码为:

ffmpeg -i input-3gp5.mp4 -vc mp42  output.mp4

然后我就可以播放带有 html5 视频标签的视频了。

【讨论】:

以上是关于修复损坏的 .MP4 文件。这可能是一个 3gp 文件的主要内容,如果未能解决你的问题,请参考以下文章

android中的视频录制格式(.3gp或mp4)?

修复损坏的 MP4 视频文件 [关闭]

mp4文件修复

使用python在django中将任何格式(flv、3gp、MXF等)的视频转换为MP4

手机本地视频怎么突然不能看了

使用损坏的外部参照表修复 pdf