使用 -fflags +genpts 時 ffmpeg 掛起

使用 -fflags +genpts 時 ffmpeg 掛起

我正在嘗試使用 ffmpeg 4.2.4-ubuntu0.1 將 .vob 檔案(我使用 vobcopy 獲得的)重新混合到 mp4 容器中(mkv 也可以做到)。最初重新混合完成,但我收到以下錯誤:

[mp4 @ 0x560f9a37e5c0] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly

和幾千次

[mp4 @ 0x560f9a37e5c0] pts has no value

所以我嘗試使用以下方法來修復它-fflags +genpts

ffmpeg -fflags +genpts -i 'video.vob' -c copy 'video.mp4'

在處理大約 90000 幀後,ffmpeg 不知何故卡住了(但 CPU 保持 100% 運行),只能使用killCtrl+C 組合終止。

我用另一個 .vob 檔案嘗試過,這次 ffmpeg 在另一個點掛起了。


在建立完整的偵錯日誌時,我注意到程式中止後,輸出始終顯示相同的最後編輯的幀(92775)。您可以在這裡查看:https://paste.ubuntu.com/p/tbhMmpQwff/

答案1

我透過添加標誌解決了這個問題+igndts

ffmpeg -fflags +genpts+igndts -i 'video.vob' -c copy 'video.mp4'

它導致 ffmpeg 早些時候掛起時出現一些錯誤訊息,但創建的視訊檔案很好。

[mp4 @ 0x56482f355a00] Invalid DTS: 333993600 PTS: 0 in output stream 0:0, replacing by guess
[mp4 @ 0x56482f355a00] Non-monotonous DTS in output stream 0:0; previous: 334018800, current: 334018800; changing to 334018801. This may result in incorrect timestamps in the output file.

我不確定是什麼導致了這個問題以及如何+igndts解決它,但我很高興它有效。

相關內容