我遇到了一个问题,无法确定是否与我的 Nvidia、MCEBuddy 或 Comskip 设置有关。我在笔记本上用 Happauge 的 HD PVR 2 录制 1 小时电视节目,录出来是 H.264 编码(在 MCEBuddy 里查看媒体信息确认过),但文件属性显示为 MPEG-2 TS Video (.ts)。系统为 Windows 7 Pro 64 位,CPU 是 Intel Core i5-3230M 2.6 GHz,独显为 NVIDIA NVS 5200M,同时也有核显 Intel HD Graphics 4000。我目前用的是 MCEBuddy 2.4.8,并花了 10 美元买了 Donator 版(0.82.003),后来才知道 2.4.8 已经自带 Donator 版,这 10 美元其实不必花。
在论坛看了不少帖子后,我把 MCEBuddy 按以下方式设置:在 Nvidia 控制面板里把 MCEBuddy 指定给“高性能 NVIDIA 处理器”,以利用独显而非核显。最初效果显著,总处理时间从 6 小时降到 2.5 小时。
第一次转换时,日志显示:广告扫描 36 分钟、去广告 5 分钟、转码 1 小时 39 分钟,总计 2.5 小时,比最初的 6 小时好,但我看到有人能把 1 小时节目 15–20 分钟搞定。我把这次日志保存为 File 1 并附上。
接着我试了 Donator 版 Comskip,把它放到独立文件夹,并在 MCEBuddy 系统设置里指向该路径。
再转另一部 1 小时节目时,广告扫描与转码的时间对调:广告扫描 1 小时 30 分钟、去广告 5 分钟、转码 46 分钟,总耗时 2 小时 41 分钟。我把这次日志保存为 File 2。File 1.log (2.1 MB)
*更新:File 2 的日志有 70.5 MB,传不上来。这也是个奇怪的地方,File 1 只有 2 MB。
我现在完全不知道下一步该试什么?是我的设置问题,还是 H.264 本身处理就慢?要不要先用别的软件把 H.264 转成 MP4,再拿 MCEBuddy 去广告?任何建议都非常感谢,谢谢!
Goose
(Goose)
2
压缩后再上传
扫描时间变长,大概率是因为你用的是免费版 comskip(非捐赠版)。请从日志里确认一下,这是常见错误。
至于转码,它没用上你的 NVIDIA 硬件,因为检测不到:
2018-02-23T20:28:36 MCEBuddy.AppWrapper.NVidiaQuery → C:\Program Files\MCEBuddy2x\nvidia\nvidiaQuery.exe 正在启动…
2018-02-23T20:28:36 MCEBuddy.AppWrapper.NVidiaQuery → CUDA Device Query (Runtime API) version (CUDART static linking)
2018-02-23T20:28:36 MCEBuddy.AppWrapper.NVidiaQuery → cudaGetDeviceCount returned 30
2018-02-23T20:28:36 MCEBuddy.AppWrapper.NVidiaQuery → -> unknown error
2018-02-23T20:28:36 MCEBuddy.AppWrapper.NVidiaQuery → Result = FAIL
→ Process exited with code 1
WARNING> 2018-02-23T20:28:38 MCEBuddy.AppWrapper.NVidiaQuery → nvENC NVIDIA 驱动未检测到或驱动版本过旧
WARNING> → 检测 NVIDIA 硬件编码器能力出错
你的驱动没有报告 CUDA 能力,请尝试安装推荐的 NVIDIA 驱动。
它正在用 HandBrake 的软件编码器(HandBrake 报告无 Intel CUDA 支持),所以耗时 1.5 小时
2018-02-23T20:28:39 MCEBuddy.AppWrapper.Handbrake → [20:28:39] Intel Quick Sync Video support: no
2018-02-23T20:28:48 MCEBuddy.AppWrapper.Handbrake → [20:28:48] + encoder: H.264 (libx264)
如果你查看 File 1 的日志文件,会发现它显示使用了 Comskip 的 Donator 版本。File 2 的日志也同样显示了这一点,我现在把 File 2 作为 zip 附件上传(谢谢你提供的建议!)。生成 File 1 后,我直接从戴尔官网下载了显卡驱动更新,因为我的笔记本是 Dell Latitude E6530,正如你在 File 2 日志里看到的,CUDA 已被检测到。
File 2.zip (684.8 KB)
谢谢你指出日志里需要关注的关键点。我想我可能已经找到了问题所在。生成 File 1 时,我使用的是 MCEBuddy 2.4.8,该版本已内置 Donator 版 Comskip,因此广告扫描耗时 36 分钟。当时我没意识到 2.4.8 已经自带 Comskip。网上和论坛里关于 2.4.8 的信息让我困惑,因为一直说如果要转换 H.264 文件就得用 Donator 版 Comskip,所以我以为必须捐 10 美元才能获得 Donator 版;显然 2.4.8 已经内置,这在 File 1 的日志里也得到了确认。
在转换 File 2 之前,我单独下载了 Comskip 的 Donator 版并解压到 C:\Comskip。然后在 MCEBuddy 设置里把 Comskip 路径指向了这个目录。

这样做之后,我怀疑 MCEBuddy 是不是同时“看到”了两个 Comskip(这样说有道理吗?),导致广告扫描时间变长。接下来我准备把 MCEBuddy 里指向 C:\Comskip 的设置清空,再转换一个文件,看看广告扫描时间是否有变化。转换完成后我会汇报结果。
Goose
(Goose)
4
我查看了这两个转换及其源文件(虽然不同),但它们在特性上(大小、时长、格式、编码、帧率、码率等)非常相似,因此我假设它们在比较时是相同的。
其他所有参数看起来也一致。
使用内置的 Comskip,我看到处理速度约为 100fps
2018-02-23T20:15:48 MCEBuddy.AppWrapper.Comskip → 215069 帧在 2188.00 秒内解码完成(98.29 fps)
而使用外部 Comskip,我看到处理速度约为 40fps
2018-02-25T12:41:04 MCEBuddy.AppWrapper.Comskip → 219470 帧在 5417.97 秒内解码完成(40.51 fps)
这基本上说明内置 Comskip 比外部 Comskip 快约 250%。
原因可能有以下几点:
- 内置 Comskip 是定制构建,可能使用了更新、更快的库来处理视频。
- Comskip INI 文件不同:默认情况下,内置版本使用自带的 Comskip.ini,而外部 Comskip 使用外部目录中的 comskip.ini。
如果你想排除 Comskip.ini 的差异,可以复制/替换任一 INI 文件,使两种方法使用相同的 INI,这样就能确认是否是内置 Comskip 更快。
我进入 MCEBuddy 的设置,把 Comskip 路径中的 C:\ComSkip\comskip.exe 删除,随后干脆把整个 C:\ComSkip 文件夹删掉,确保它不会再被检测到。接着我又转换了另一个与之前两个类似的文件,结果依旧:广告扫描耗时一个多小时,Comskip 显示约 46 fps。
我决定从头开始:卸载 MCEBuddy 2.4.8,并删除残留的所有日志、配置文件等。然后重新安装 MCEBuddy,不做任何设置改动,直接转换附件中的文件。虽然总分析加转换时间缩短到了 22 分钟,非常理想,但广告扫描仍花了 1 小时 18 分钟,Frames Decoded 显示 46.04 fps。日志中可以看到这是 Donator 版本的 Comskip;由于是重装,这自然是 MCEBuddy 自带的 Comskip,同时也确认 CUDA 已启用并正在使用。随信附上 Comskip.ini 文件,方便查看是否有需要调整的地方。再次衷心感谢您的帮助,谢谢!
File 3.zip (565.7 KB)
comskip.ini (6.2 KB)
Goose
(Goose)
6
所以現在我有點困惑,第一次內建的 comskip 跑在 100fps,而 donator 版本是 46fps。第二次內建的 comskip 卻只有 46fps?
如果是這樣,我唯一能想到的就是你電腦裡有其他程序正在占用資源,導致 Comskip 無法全力運作。你可以檢查一下背景正在執行哪些程序。
另外,試著在 comskip.ini 裡把這個值改掉:
hardware_decode=0
把它改成 1 來啟用硬體解碼。這招不一定有效,預設是關閉的,因為不是每套系統都支援硬體解碼,但如果你的支援,速度可能會大幅提升。
也試著把 MCEBuddy 的處理程序優先順序調成「高」,在主畫面右下角。
我把 hardware_decode 改成 1,並把 MCEBuddy 的處理優先順序調到「高」,但還是沒用。廣告掃描花了一小時多。我回頭檢查原始貼文,卻看不出為什麼 File 1 的廣告掃描只要 36 分鐘,現在卻超過一小時。File 1 用的是隨 Donator 版附贈的 Comskip。唯一可能想到的是我的錄影檔案變了,但我不知道怎麼變的。我從開始使用 Hauppauge HD PVR 2 後就沒改過設定。記得曾在某處讀到,有時候電視台會改變廣播訊號,連帶改變廣告識別方式,或許 File 1 和 File 2 之間、以及後續錄影時,訊號有了變化。我看過有人分享針對美國特定地區、有線電視業者的 Comskip INI 檔,或許我會去找幾個來試試看。既然問題出在 Comskip,我會去那邊的論壇問問,看有沒有人能找出原因。
再次感謝你的幫忙,非常感激。如果找到解決方法,我會貼在這裡。