使用 Comskip 捐赠者构建 0.82.012 和 GPU 进行测试

MCEBuddy 中当前使用的 Comskip(捐赠版)版本是 0.82.003。
是的,我知道我们可以自行添加升级的 Comskip 捐赠版

当前 Comskip 的最大亮点?v0.82.011 已改用 FFMPEG 4.3 解码器
次佳亮点?支持 4K 及 10-bit(HDR)流的广告检测。

另外,对于询问 ticker/crawl 去除的人,请在 INI 文件中查找 “ticker”。注意 v0.82.007 新增了一个 INI 参数,可检测顶部 ticker/crawl。因此,如果这正是他们所需,就必须使用较新的 comskip 版本;然而,硬件加速解码器仅在捐赠版中提供。

如果这是阻止 MCEBuddy 内置升级捐赠版 comskip 的唯一原因,我愿意再次为 MCEBuddy 捐款/购买(或至少为 MCEBuddy 的捐赠版)。当然,我可以自己获取升级的捐赠版 comskip 并配置 MCEBuddy 使用它,但这并不能惠及他人。

这是否已列入 MCEBuddy 的路线图(2023 年?),毕竟现在也有了更新的 FFMPEG(v6.0)。我猜测 Comskip 静态链接其 FFMPEG 库,但更新的 FFMPEG 对 MCEBuddy(以及 HandbrakeCLI?)在硬件/GPU 编解码方面也会有所帮助。

我还注意到,MCEBuddy 自带的 v0.82.003 捐赠版不支持 “–cuvid” 选项,即无法指示 hardware_decode 使用 NVIDIA 硬件解码器(CUDA)。

有何想法?

0.82.012 的变更
- 新增对 10bit 视频解码器的支持
**0.82.011 的变更**
**- 升级至 ffmpeg 4.3 解码器**
- 最大视频尺寸提升以支持 4K 视频
0.82.010 的变更
- 升级至最新版 ffmpeg 解码器
- 修复:处理录像时 Comskip 偶发挂起
0.82.009 的变更
- 最大视频尺寸增至 4000×2400,支持 4K 处理
0.82.008 的变更
- 仅用于 Windows 7 的测试版,与上一版无其他差异
0.82.007 的变更
- 新增 INI 参数:设置 top_ticker_tape > 0 可去除视频顶部像素
- 解码器更新至最新可用版本,稳定性有所提升
0.82.005 的变更
- 修复:某些录像导致 Comskip 崩溃
- 修复:某些录像无音频解码
- 解码器更新至最新可用版本,整体速度略有提升
0.82.004 的变更
- 修复:vdr 输出应使用带亚秒帧号的帧数,而非秒的分数

以下是我測試不同版本 Comskip 與不同解碼方式的結果。
測試環境:Win10 x64 22H2,i5-4430(Haswell),RTX2060,nVidia 驅動 531.61(2023-04-13)。

我將 HDHomeRun DVR 錄影(HDTV OTA TS 串流,MPEG2/AC3)轉碼為 H.265/AC3,封裝成 MKV。

TL;DR 摘要:
Comskip 贊助版確實能加速廣告偵測。目前最新的贊助版(0.82.12)比 MCEBuddy 內建的贊助版(0.82.003)快超過 50%。
舉例:原本 MCEBuddy 要花 10 分 00 秒偵測廣告,換成新版贊助版只需 6 分 32 秒。

TIL 摘要:
把 GPU 用於「廣告偵測」的加速幅度,遠不如「轉碼」到 x264/x265 那麼明顯。原因是廣告偵測是跑在 DVR 原始編碼上。我的案例是 OTA HDTV 訊號,HDHR 直接寫碟,沒有再轉碼(TiVo 透過 KMTTG 傳來的也一樣)。因此 comskip 掃的是 TS(Transport Stream),影像為 MPEG2、音訊為 AC3。而 MPEG2 硬解對近 20 年的 CPU 來說早已內建(回想那些現在變成標準 x86 指令的多媒體擴充指令集)。電視、Chromecast、Firestick、Roku、FireTV、Silicon Dust HDHR 等低成本設備都得靠它。話雖如此,使用 GPU 搭配贊助版 comskip 仍有加速效果。

我的建議(不代表 MCEBuddy 或任何官方立場):
如果你手上有近期 nVidia 顯卡,花 10 美元(或更多)入手贊助版 comskip,並在自訂參數裡加上較快的 --cuvid--nvpau。否則 comskip 只會用 CPU 的 MM 擴充指令(--hwassist),而只有最新贊助版才開放指定 GPU 解碼。

注意:
如果你處理的是「已經轉過碼」的檔案(例如從網路抓的 x264/x265,而非 OTA HDTV 的 MPEG2 TS),那麼在 comskip 裡啟用 GPU 解碼會更有意義,速度提升會更明顯。

comskip-0.82.003-Donator-hw-test.log          --- MCEBuddy 贊助版
Generated using donator  Comskip 0.82.003
Parsed 49136 video frames and 55262 audio frames at   336.73 fps

comskip-0.82.012-hw-test.log                  --- 當前公開版
Generated using public  Comskip 0.82.012
Parsed 49136 video frames and 55262 audio frames at   243.65 fps

comskip-0.82.012-Donator-hw-cuvid-test.log    --- 當前贊助版(nVidia CUVID)
Generated using donator  Comskip 0.82.012
Parsed 49136 video frames and 55262 audio frames at   490.11 fps

comskip-0.82.012-Donator-hw-nvpau-test.log    --- 當前贊助版(nVidia VDPAU)
Generated using donator  Comskip 0.82.012
Parsed 49136 video frames and 55262 audio frames at   514.61 fps

哪个是Windows 7的最后一个版本,因为WMC是唯一能观看加密频道的有线电视卡,Windows 10不行。

我注意到的另一件事是,由於我的 OTA 錄製檔案是 MPEG2 串流,轉碼時 CPU 會滿載(負責 MPEG2 解碼),而 GPU 則用於 HEVC/x265 編碼。因此,雖然使用 GPU 絕對比沒用快,而且使用新版 Donator 版本的 comskip 也更快,但由於輸入端的 MPEG2 媒體,我仍受 CPU 限制。也許是時候從第 5 代(Haswell)升級到目前的第 12 或第 13 代 CPU 了。我最有可能選擇 65W 的第 13 代。這也意味著需要一張新的 ITX 主機板,以及 DDR5 記憶體。乾脆也換個(稍大)一點的機殼,能容納 3090 或 RTX40 系列顯卡。整個升級計畫中唯一令人欣慰的部分是 M.2 固態硬碟的價格正在大幅下跌,4TB 的容量已逼近 200 美元。

这已经完成