理解转换错误

The Net (1995)_tt0113957.ts-FullQualityGeneral-2024-01-12T12-42-31.log (2.0 MB)
有关于理解转换错误的文档吗?我仍在使用你提到过的1月9日的2.6.3测试版,今天早上尝试转换一部电影,但MP4-AV1(无硬件加速)输出被截断了,于是我又用常用的mp4-hvec试了一次,结果一样。输出只有14秒,而原本应该至少有120分钟。我在日志里看到一些错误,但不确定哪些重要。
顺便提一下,我的TS文件来源几乎每天都是一样的,所以除非保存文件时出现了奇怪的问题。文件能正常加载到custom cuts里,我也像往常一样做了edl。

你只需要查看日誌,看看發生了什麼。在這種情況下,你的影片時間戳嚴重損壞,導致 ffmpeg 無法恢復:

2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f0251800] start time for stream 0 is not set in estimate_timings_from_pts
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f0251800] stream 0 : no TS found at start of file, duration not set
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f0251800] Could not find codec parameters for stream 0 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → Consider increasing the value for the ‘analyzeduration’ (0) and ‘probesize’ (5000000) options
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02a4b00] start time for stream 0 is not set in estimate_timings_from_pts
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02a4b00] stream 0 : no TS found at start of file, duration not set
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02a4b00] Could not find codec parameters for stream 0 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → Consider increasing the value for the ‘analyzeduration’ (0) and ‘probesize’ (5000000) options
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02a4b00] start time for stream 0 is not set in estimate_timings_from_pts
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02a4b00] stream 0 : no TS found at start of file, duration not set
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02a4b00] Could not find codec parameters for stream 0 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → Consider increasing the value for the ‘analyzeduration’ (0) and ‘probesize’ (5000000) options
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02a4b00] start time for stream 0 is not set in estimate_timings_from_pts
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02a4b00] stream 0 : no TS found at start of file, duration not set
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02a4b00] Could not find codec parameters for stream 0 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → Consider increasing the value for the ‘analyzeduration’ (0) and ‘probesize’ (5000000) options
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02a4b00] start time for stream 0 is not set in estimate_timings_from_pts
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02a4b00] stream 0 : no TS found at start of file, duration not set


2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02933c0] Non-monotonic DTS in output stream 0:1; previous: 226800, current: 220320; changing to 226801. This may result in incorrect timestamps in the output file.
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02933c0] Non-monotonic DTS in output stream 0:1; previous: 226801, current: 222480; changing to 226802. This may result in incorrect timestamps in the output file.
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02933c0] Non-monotonic DTS in output stream 0:1; previous: 226802, current: 224640; changing to 226803. This may result in incorrect timestamps in the output file.
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02933c0] Non-monotonic DTS in output stream 0:1; previous: 226803, current: 226800; changing to 226804. This may result in incorrect timestamps in the output file.
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02933c0] Non-monotonic DTS in output stream 0:1; previous: 324000, current: 319680; changing to 324001. This may result in incorrect timestamps in the output file.
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02933c0] Non-monotonic DTS in output stream 0:1; previous: 324001, current: 321840; changing to 324002. This may result in incorrect timestamps in the output file.
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02933c0] Non-monotonic DTS in output stream 0:1; previous: 324002, current: 324000; changing to 324003. This may result in incorrect timestamps in the output file.
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02933c0] Non-monotonic DTS in output stream 0:1; previous: 436320, current: 429840; changing to 436321. This may result in incorrect timestamps in the output file.
2024-01-12T12:47:06 MCEBuddy.AppWrapper.FFmpeg → [mpegts @ 00000120f02933c0] Non-monotonic DTS in output stream 0:1; previous: 436321, current: 432000; changing to 436322. This may result in incorrect timestamps in the output file.

有時候日誌會給你一些嘗試的提示。在這種情況下,ffmpeg 在合併剪輯片段時遇到困難,日誌也給了你一個提示。

WARNING> 2024-01-12T12:47:06 MCEBuddy.CommercialScan.Remover → Using FFMPEG instead of AVIDemux to merge tracks. There may be artifacts/issues with the video at the merged segments, set CommercialMergeTool=avidemux in the profile if you are facing issues

請編輯你的 profiles.conf 檔案,在你使用的設定檔最後加上一行 CommercialMergeTool=avidemux,看看是否有幫助。

你也可以試著在「轉換工作 → 進階設定」頁面中勾選「跳過重新封裝」選項,這在某些情況下可能會有幫助。

一般來說,如果你是透過電視調諧卡或某些影像擷取卡進行錄製,而影片出現如此嚴重的時間戳問題,通常有兩個原因:

  1. 擷取裝置的驅動程式更新後,新驅動產生了損壞的時間戳。請嘗試回滾到舊版驅動,或聯絡製造商取得修復後的驅動。
  2. 如果你使用的是 OTA 錄製,訊號強度過弱會導致錄製中的時間戳錯誤,請改用更強的天線或訊號放大器。

我使用的是硬件采集设备,唯一的变化是一次 Windows 更新,但之后还录过 3 次都没问题。这个错误以前也出现过,可能是某种偶发情况,因为这次我重新录了一遍,新版本什么都没改就转码成功了。

我查看了新的日志,发现“时间戳不正确”这类信息其实一直都有,每份日志里都有上千条,应该没什么影响。而在我成功的转码日志里,完全找不到你提到的那一组错误;比如搜索“could not find codec parameters”——成功的转码一条都没有,失败的却有 20~30 条,所以这些片段才是我的问题所在。

谢谢你的帮助。