在生產環境中,視頻通常是一種重要的文件證據,但是,如果因為各種原因,導致視頻在錄制到一半過程中失敗,
比如:監控到一半,錄制設備掉電.雖然,掉電后的視頻肯定找不到,但是,有時,長時間工作生產的視頻通常是隔一
段時間保存一個文件比如:24小時,每隔一個小時保存一個文件,這時候,如果在最后59分鍾掉電,我們如何查看0-59分鍾的視頻數據呢,
下面方案參考:http://www.spirithy.com/2016/11/26/recover_mp4/
找到了一款靠譜(且不收費)的視頻修復工具:recover_mp4.exe,主頁在此:http://slydiman.me/eng/mmedia/recover_mp4.htm 。話說戰斗民族的技術總是這么犀利,主頁總是這么大巧不工。
用法很簡單,先得找一個沒有問題的、擁有同樣分辨率和比特率的視頻 good.mp4,拿recover_mp4.exe給分析一下,分析完會產生兩個文件:"video.hdr" 和 "audio.hdr"。
|
1
|
recover_mp4.exe good.mp4 --analyze
|
開始處理有問題的文件bad.mp4,從中分離出里面的視頻流"recovered.h264",音頻流"recovered.aac",注意前面產生的"video.hdr" 和 "audio.hdr"也要在當前目錄下。
|
1
|
recover_mp4.exe bad.mp4 recovered.h264 recovered.aac
|
最后用FFMPEG(Windows版下載地址:https://ffmpeg.zeranoe.com/builds/ , static、shared都行)將分離出的視頻流和音頻流重新生成一個mp4文件,注意"-r 30"是指幀率、這里30只是示例,應設置為視頻原來的幀率。
|
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打開
