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

Posted

技术标签:

【中文标题】修复损坏的 MP4 视频文件 [关闭]【英文标题】:Repairing a Corrupt MP4 Video File [closed] 【发布时间】:2014-06-05 19:48:44 【问题描述】:

我有一个使用翻转相机拍摄的 MP4 视频。当我停止录像机时,相机冻结了,现在视频出现损坏。我仍然可以从相机下载它,但它不会播放。现在,视频的大小仍然超过 2 GB,所以我认为数据仍然存在。

因此,我在网上搜寻解决方案,并找到了声称能够解决此类问题的付费服务和软件。一项诊断服务(“珍藏”)向我展示了视频中的剧照,确认我相信那里可能有一些可以挽救的东西。但不幸的是,要求修复它的价格不在预算之内。它需要更多简单的解决方案。

有谁知道如何修复损坏的 MP4?或者是不是太花钱的服务或软件?

【问题讨论】:

【参考方案1】:

试一试 Official tool Link 此实用程序可以从未完成的 MP4/MOV 文件中恢复 H.264/AVC 流 没有(或为空)标题。如果损坏,您可能会得到未完成的文件 录制过程中的摄像机等。此实用程序已经过文件测试 由 GoPro 录制,但它也可以与其他摄像机一起使用。

用法:

recover_mp4_to_h264 in_good_similar.mp4 --analyze
recover_mp4_to_h264 in_corrupted.mp4 out_video.h264 [out_audio.aac | out_audio.wav | out_audio.mp3] []
recover_mp4_to_h264 in_corrupted.mp4 out_video.h264 [--aac | --pcm | --mp3] []

支持的录音机:

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 --analyze

注意:它将在当前目录中创建文件'avcc.hdr'。

第 2 步:例如从损坏的文件中恢复 H.264 流

recover_mp4_to_h264.exe GOPR0347.MP4 GOPR0347.h264 GOPR0347.aac

注意:文件“avcc.hdr”必须存在。 注意:指定--pcm或WAV文件名,以防恢复佳能EOS写入的MOV文件。

第 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

编辑:添加官方工具链接。感谢编译器

旧链接: Mega Link

【讨论】:

感谢您对此的见解。我会在时间允许的时候尝试一下。 :) 工作出色,谢谢!起初我有点担心通过直接链接下载,但注意到其他网站也这样做。 Usage: recover_mp4_to_h264.exe in_good_similar.mp4 --avcc recover_mp4_to_h264.exe bad.mp4 out_video.h264 out_audio.aac the tool's website 上现在有官方下载(我认为)。此外,--avcc 似乎已重命名为 --analyze recover_mp4 工具不再可在该工具的网站上下载。该网站现在将您带到一个在线工具。我试过了,它似乎工作,但它很贵。您仍然可以在此处下载该工具:softpedia.com/get/Multimedia/Video/Other-VIDEO-Tools/…。如果您使用的是 linux 或 Mac,这里有一个用 perl 编写的类似工具:github.com/bookkojot/mp4fixer 很少有谷歌搜索结果提供免费的解决方案。我写了一篇关于如何在 Windows、Linux 和 Mac 上免费修复视频文件的博文:blog.jonathanflower.com/post/174339850366/…【参考方案2】:

太棒了!

我在拍摄时我的安卓手机崩溃了。幸运的是它已经植根,所以我可以从相机文件夹中检索临时文件。

使用此处的建议很容易恢复材料,它让我顺利进行。 但是在文件合并方面有一些困难需要克服......

恢复的音频比“好”文件中的音频具有更高的比特率。 128k 而不是 96k。所以我可以将文件合并回工作电影,但音频会过快并失去同步。所以它需要转换。

ffmpeg 也不能/不会复制 aac 流,所以它需要使用过滤器转换流;aac_adtstoasc

就我而言,我必须这样做:

recover_mp4_to_h264.exe good.MP4 --avcc

recover_mp4_to_h264.exe bad.MP4 bad.h264 bad.aac --android

ffmpeg -i bad.aac -acodec libvo_aacenc -b:a 96k fixed.aac

ffmpeg -r 30 -i bad.h264 -i fixed.aac -vcodec copy -acodec copy -bsf:a aac_adtstoasc fixed.mp4

成功了!

【讨论】:

您能否重新格式化您的答案,以便更清楚地了解您在解决问题的步骤中所提出的要点? 仅供阅读本文的其他人使用,您无需root手机即可检索临时文件。您可以使用大多数文件管理器程序轻松检索它。【参考方案3】:

我没有测试上述解决方案,但 Grau 的视频修复软件对我来说有效。该程序的下载链接和使用说明可在此页面上找到:

http://grauonline.de/cms2/?page_id=5

请务必注意,要使其正常工作,您必须提供相同类型的完整(可播放)电影(使用相同的相机录制,具有相同的分辨率、相同的设置等),因此该软件可以将该可播放的视频文件与损坏的视频文件进行比较并进行修复。如果您还没有样本,那么使用与录制最终损坏的文件相同的设置录制 10 秒的房间视频或其他任何内容就足够了。

【讨论】:

对于Linux,有untrunc:superuser.com/a/596402/458848 似乎 Federico Ponchio 让所有人都可以使用他的 untrunc(非 Linux 用户也可以使用 ;-)):untrunc.it

以上是关于修复损坏的 MP4 视频文件 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

mp4文件修复

解决了,佳能R6相机DAT/MP4视频文件修复卡顿无声问题

MP4格式的视频播放不出来了怎么办?

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

如何从xhr下载流媒体视频

Azure 媒体服务 - 视频播放因损坏而中止... (0x20400003)