请求类型: 错误 / 轻微
MCEBuddy 版本及位数(32 位或 64 位): 2.4.9 2018-03-09
操作系统及位数(32 位或 64 位): Win10x64
问题或建议摘要:
我在配置过程中不小心把“临时文件夹”设置弄丢了。
于是 MCEBuddy 恢复默认(临时文件夹留空)到 C:\Program Files\MCEBuddy2x\working0。
我的系统盘是块小 SSD,因此我会把所有能移走的数据都指向另一块更大的硬盘。
例如 F:\Recorded TV(我把 HDHomeRun 的录制目录指向这里,让它录到自己的 HDHomerun 文件夹,再由 MCEBuddy 监视并把转换后的文件移到同级目录)。
于是我把“临时文件夹”设为 F:\Recorded TV\MCEBuddyTemp,问题就解决了。
给其他读者:临时文件夹设置位于“设置 → 常规设置 → 系统设置”。
问题:当临时文件夹所在磁盘满了,服务就会崩溃,且 mcebuddy 日志里没有任何记录,只有 Windows 事件日志里有。由于它在开始处理第一个文件后一分钟内就崩溃,我只好先启动服务,然后立刻打开 GUI,等它连上新的服务实例后,用 GUI 上的 停止 按钮暂停,才能去改设置。
服务崩溃后,GUI 无法连到服务以获取状态,除了“关闭”按钮外,其余按钮全部灰掉,尤其是“设置”按钮,因此在这种状态下根本无法“修复”设置。我不知道在崩溃时锁定设置到底是好是坏(为了保留现场以便复现)。您看着办。但这确实给我抓“崩溃时机”带来了点小麻烦。
更麻烦的是,唯一的失败提示只在 Windows 事件日志里。建议捕获这个错误,优雅地关闭,并在 MCEBuddy(及转换)日志里写下合适的信息。另外,如果 GUI 连不上服务,不妨让“设置”按钮仍然可用,而不是直接关掉 GUI。
MCEBuddy 日志
INFORMATION> 2018-03-17T10:49:13 MCEBuddy.Engine.QueueManager --> Monitor task HD HomeRun : Added new job to queue for F:\Recorded TV\HDHomeRun\Show\Show S10E05 20170826 [20180310-1100].mpg
2018-03-17T10:49:13 MCEBuddy.Engine.ConversionJob --> Starting Conversion Thread
INFORMATION> 2018-03-17T10:49:13 MCEBuddy.Engine.Core --> Job for F:\Recorded TV\HDHomeRun\Show\Show S10E05 20170826 [20180310-1100].mpg started using Conversion Task Convert to MKV - TV and Profile MKV High Quality
2018-03-17T10:49:13 MCEBuddy.Engine.Core --> Temp working path is C:\Program Files\MCEBuddy2x\working0
2018-03-17T10:49:13 MCEBuddy.Engine.Core --> Starting new conversions, allowing system sleep
INFORMATION> --> Extracting metadata from file F:\Recorded TV\HDHomeRun\Show\Show S10E06 20170902 [20180310-1130].mpg
INFORMATION> 2018-03-17T10:49:13 MCEBuddy.Engine.ConversionJob --> Creating log file : C:\Program Files\MCEBuddy2x\log\Show S10E05 20170826 [20180310-1100].mpg-Convert to MKV - TV-2018-03-17T10-49-13.7124134-05-00.log
日志的下一条记录就是我手动重启服务之后。
事件日志
[mike808: 服务启动后的最后一条事件日志]
Information 17-Mar-2018 2:49 AM
MCEBuddy service started on port 23332
[mike808: 我认为这就是出问题的信号。]
Warning 17-Mar-2018 10:49 AM
MCEBuddy GUI: Unable to get Event Log Entries due to pipe error System.NullReferenceException: Object reference not set to an instance of an object.
[mike808: 这里我从“服务”控制台手动重启了服务。]
Information 17-Mar-2018 3:50 AM
MCEBuddy service OnStart called, version 2.4.9.0
at MCEBuddy.GUI.StatusForm.displayEventLogEntries()
重现步骤:
用一个太大的文件去转换,而 TEMP/工作目录又太小。
这里有一段简短的排错视频。