在生產環境中,視頻一般是一種重要的文件證據,可是,若是由於各類緣由,致使視頻在錄製到一半過程當中失敗,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打開視頻