使用 MKV 未處理設定檔,從 90 分鐘的 wtv 檔案進行轉換。不知何故,remux 在 25% 處停止,且沒有任何錯誤訊息。最終產物長度(分鐘)只有原始檔案的 25%。
2018-06-16T21:49:15 MCEBuddy.RemuxMediaCenter.ExtractWithGraph → Percentage complete : 24.98 %
2018-06-16T21:49:31 MCEBuddy.RemuxMediaCenter.ExtractWithGraph → Percentage complete : 24.99 %
2018-06-16T21:49:31 MCEBuddy.RemuxMediaCenter.ExtractWithGraph → Source D:\Recorded TV Test\The Sing-Off_WDIVDT_2011_12_05_19_58_00 - DVRMS.dvr-ms filesize [KB] : 9,371,702.00
2018-06-16T21:49:31 MCEBuddy.RemuxMediaCenter.ExtractWithGraph → D:\temp\working0\The Sing-Off_WDIVDT_2011_12_05_19_58_00 - DVRMS_AUDIO0 extracted filesize [KB] : 65,095.00
2018-06-16T21:49:31 MCEBuddy.RemuxMediaCenter.ExtractWithGraph → D:\temp\working0\The Sing-Off_WDIVDT_2011_12_05_19_58_00 - DVRMS_VIDEO extracted filesize [KB] : 2,276,579.00
2018-06-16T21:49:31 MCEBuddy.RemuxMediaCenter.ExtractWithGraph → Total extracted parts size [KB] : 2,341,675.00
我已經試過幾次,結果都一樣。有任何建議嗎?The Sing-Off_WDIVDT_2011_12_05_19_58_00 - DVRMS.dvr-ms-MKV Unprocessed-2018-06-16T21-40-36.9237008-04-00.log (1.0 MB)
Goose
(Goose)
3
查看了日志,注意到视频流有一个问题——不确定是否相关,但确实存在异常:
2018-06-16T21:41:23 MCEBuddy.AppWrapper.Base → [mpeg2video @ 000000000053ad60] Invalid frame dimensions 0x0.
不过,对于 DVR-MS,MCEBuddy 会调用 Windows DirectShow 编解码器来提取原始视频和音频文件。
在你的情况中,Windows 编解码器只返回了文件的前 25%。这很可能是因为文件在大约 25% 处有一个 EOF(文件结束)标记,Windows 误以为流已结束。这通常是由于电视调谐器/录制驱动程序存在缺陷(某些有 bug 的驱动会这样)。请尝试更新驱动。
MCEBuddy 还有其他提取流的方法,但只有在 Windows 流编解码器“失败”时才会启用;而这里并未失败,只是返回了成功代码,却仅提供了 25% 的流,原因可能就是那个 EOF。
如果你能把原始的 DVR-MS 文件上传,我们可以进一步检查。
我上傳了兩個檔案到 FTP 伺服器,放在名為 klaberte 的資料夾裡。兩個檔案都「提前結束」,一個大約在 25%,另一個大約在 16%(如果我沒記錯)。如果發現來源檔案有任何問題,請告訴我。謝謝!
Goose
(Goose)
5
看看吧,這個檔案肯定有問題,連 FFMPEG 都無法重新封裝,所以 Windows DirectShow 解碼器出問題也不意外。這表示你的錄影裝置驅動程式在產生符合規範的串流時有問題(也可能是空氣訊號接收不良)。
2018-06-21T16:26:23 MCEBuddy.AppWrapper.FFmpeg → error, non monotone timestamps 286588800 >= 286585920
2018-06-21T16:26:23 MCEBuddy.AppWrapper.FFmpeg → error, non monotone timestamps 286588800 >= 286588800
2018-06-21T16:26:23 MCEBuddy.AppWrapper.FFmpeg → error, non monotone timestamps 286632000 >= 286629120
2018-06-21T16:26:23 MCEBuddy.AppWrapper.FFmpeg → error, non monotone timestamps 286641090 >= 286641090
不過,MCEBuddy 使用了一個特別的 dvrms remuxer,能夠順利重新封裝。問題在於 Windows DirectShow 不會回報錯誤,所以 MCEBuddy 不會啟用這個特別的 remuxer。
你可以試著在沒有 DVRMS 解碼器的 Windows 機器上轉換(例如 Windows 10),或者下載今天的 2.4.9 BETA 版本,並在你的設定檔中加入這個新設定:
DisableDVRMSStreamsRemuxing=true
這會讓 MCEBuddy 跳過使用 Windows 解碼器來重新封裝 DVRMS 檔案,改用 ffmpeg,然後再使用特別的 remuxer(ffmpeg 會在這裡失敗,所以特別的 remuxer 就會接手)。
謝謝!DisableDVRMSStreamsRemuxing=true 似乎解決了那個問題!
如果我使用的是 MKV 未處理設定檔,在 Win7 機器上 DisableDVRMSStreamsRemuxing=true 仍然是個好解決方法嗎?
Goose
(Goose)
7
它可以在任何機器上運作,我們通常建議優先使用 Windows streams remuxing,因為它速度更快且具有原生優勢,但這個變通方法也適用於像你一樣在 streams remuxing 遇到問題(但沒有錯誤代碼)的任何機器。