[情報] 串流檔案時間軸損壞修復

看板AVEncode (影音編碼技術)作者時間5年前 (2019/06/11 01:29), 5年前編輯推噓4(400)
留言4則, 4人參與, 5年前最新討論串1/1
最近在錄製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
文章代碼(AID): #1S_fDzSr (AVEncode)
文章代碼(AID): #1S_fDzSr (AVEncode)