在生产环境中,视频一般是一种重要的文件证据,可是,若是由于各类缘由,致使视频在录制到一半过程当中失败,linux
好比:监控到一半,录制设备掉电.虽然,掉电后的视频确定找不到,可是,有时,长时间工做生产的视频一般是隔一git
段时间保存一个文件好比:24小时,每隔一个小时保存一个文件,这时候,若是在最后59分钟掉电,咱们如何查看0-59分钟的视频数据呢,github
下面方案参考:http://www.spirithy.com/2016/11/26/recover_mp4/ide
找到了一款靠谱(且不收费)的视频修复工具:recover_mp4.exe,主页在此:http://slydiman.me/eng/mmedia/recover_mp4.htm 。话说战斗民族的技术老是这么犀利,主页老是这么大巧不工。工具
用法很简单,先得找一个没有问题的、拥有一样分辨率和比特率的视频 good.mp4,拿recover_mp4.exe给分析一下,分析完会产生两个文件:"video.hdr" 和 "audio.hdr"。ui
1
|
recover_mp4.exe good.mp4 --analyze
|
开始处理有问题的文件bad.mp4,从中分离出里面的视频流"recovered.h264",音频流"recovered.aac",注意前面产生的"video.hdr" 和 "audio.hdr"也要在当前目录下。spa
1
|
recover_mp4.exe bad.mp4 recovered.h264 recovered.aac
|
最后用FFMPEG(Windows版下载地址:https://ffmpeg.zeranoe.com/builds/ , static、shared都行)将分离出的视频流和音频流从新生成一个mp4文件,注意"-r 30"是指帧率、这里30只是示例,应设置为视频原来的帧率。code
1
|
ffmpeg.exe -r 30 -i recovered.h264 -i recovered.aac -bsf:a aac_adtstoasc -c:v copy -c:a copy recovered.mp4
|
其实,我这里存储的是mo4.tmp文件,在最后一步的时候,失效,可是当获取recovered.h264文件的时候就能够了,在linux下能够用VLC打开视频