[情報] 串流檔案時間軸損壞修復
最近在錄製youtube之類live
用streamlink抓取串流存為ts檔
因為各種原因
很多live是結束後就沒得重看了
也不會有重錄的機會...
然後終於遇到壞檔了
timestamp損壞
用各種解碼器都只能讀到部分影片
從檔案大小來看剩下的部分還在
只是因為timestamp損壞讀取不出來
使用ffmpeg轉換時出現大量的Non-monotonous DTS in output stream
轉出來的也是只有讀取到的部分的影片
翻了一大堆ts/flv修復的英文討論
結果根本沒有個完整的解決方法
修復軟體不是不支援就是要錢但又不知道有沒有用
有遠古的工具則是win10無法使用或是格式不支援
自己摸出來的免費修復方法 (過程無重新編碼 都是copy)
1.使用mkvtoolnix
把ts檔丟進去
然後下方軌道處選擇視訊→右邊勾選修復位元串流時間資訊
其實就是mkvmerge的參數
--fix-bitstream-timing-information
然後開始multiplexing
輸出成mkv
這階段已經能看到完整長度的時間軸
但後方損壞的部分還是無法播放
2.使用ffmpeg copy成mp4時進行自動修復
ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4
此時一樣會跳出Non-monotonous DTS in output stream
但
仔細看會發現開始正確修復了
沒經過前一步的話
損壞的部分會被全部塞到影片結尾的同一個時間點,結果還是不能看
未經過MKV處理的(讀不到後面的部分 全在做白工)
https://i.imgur.com/olfVuGN.jpg
經過處理後的(正確修復)
https://i.imgur.com/JwGNXbP.jpg
這次處理完之後影片應該正常了
但聲音還是出不來
3.再使用mkvtoolnix轉換一次
但加上fps(幀數)設定
一般應該是30或60
29.xx選30000/1001p
這次應該已經聲音也能聽了(不知道為甚麼顯示0位元)
4.再ffmpeg copy成mp4一次
完全正常了
大概是這樣
留個紀錄
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.176.49 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/AVEncode/M.1560187773.A.735.html
※ 編輯: x94fujo6 (114.33.176.49 臺灣), 06/11/2019 01:29:58
※ 編輯: x94fujo6 (114.33.176.49 臺灣), 06/11/2019 01:31:05
※ 編輯: x94fujo6 (114.33.176.49 臺灣), 06/11/2019 01:43:01
推
06/11 23:05,
5年前
, 1F
06/11 23:05, 1F
推
06/13 08:14,
5年前
, 2F
06/13 08:14, 2F
推
06/13 11:54,
5年前
, 3F
06/13 11:54, 3F
推
06/17 11:02,
5年前
, 4F
06/17 11:02, 4F
AVEncode 近期熱門文章
PTT數位生活區 即時熱門文章