最大并发转换数

嗨——

我剛在一顆 AMD 16 核心的 Ryzen 處理器上安裝了 Plex 與 MCEBuddy,目前同時只能跑 8 個轉檔。用 Process Lasso 觀察,CPU 使用率不到 50%,最低 20%,偶爾衝到 55%。請問是什麼原因讓我無法再提高並行轉檔數,還是只是 GUI 的限制?

機器配備 M.2 Samsung SSD,寫出檔案時內部瞬間可達 350 MB/s,但只維持約一秒。16 GB 記憶體只用了 40%,整體來看應該還有兩倍以上的處理餘裕。

非常感謝!

只是 GUI 而已,不过我可以直接告诉你,有些地方不对劲。8 个并发转换连我们见过最顶级的系统、最大的显卡都能吃满。

当软件转码哪怕只有一个文件时,CPU 应该跑到 100%(MCEBuddy 是多线程的)。但这只发生在真正的转码阶段,而不是其他步骤(比如 remux 和分析等)。所以,你用的是什么配置文件?是否启用了硬件编码(NVIDIA 还是 Intel)?你查看 CPU 占用率时是在转码阶段吗?

嗨——

我有一张华硕 GTX 1070 TI,频率与常见的 1080 差不多,但核心数少了 15%。硬件编码已启用,日志显示工作正常。

配置文件是“转换为 MKV 普通质量”。我已经完成了与 PLEX 的集成,只是让它遍历我的整个视频库(约 6500 部),检查是否有广告并移除,同时压缩较大的文件(如 mp2)。

我长时间观察了 CPU 占用(一次记录 30 分钟),找出最吃资源的时段。最吃资源的无疑是 ffmpeg:启动时每实例会开启 32–49 个线程;Mencoder 每实例 9–12 个线程;Comskip 每实例固定 7 个线程。

除了我在 Process Lasso 里为 Plex 任务预留的最后一核,其余核心都被线程占满,核心负载分布也算均衡,但似乎仍有瓶颈。我猜测可能是“分析视频信息”这一步线程不足——这步应该是 ffmpeg 内部操作,现在就有 7 个实例在跑,外加 1 个 comskip,此时 CPU 利用率最低。

有趣的是,当我把并发任务从 8 降到 6 时,整体利用率反而下降约 30%(从略高于 50% 降到略高于 33%),所以我才问为什么不能开到 12 或 16 个任务。可能是某种资源锁(自旋锁)问题。

目前每天大约处理 800 部视频,速度相当快,输出画质也没问题(只是 comskip 后少数文件会出现音画不同步)。

谢谢!

对于8个并发会话,这几乎就是400个线程,而且CPU还没跑满,真厉害。试试这个:创建一个自定义配置文件,加入参数 -threads 100 或你想要的ffmpeg线程数,看看是否有变化。

Comkip我记得是在INI文件里设置线程数,不确定的话可以去讨论区确认一下。

看看这样能不能把CPU利用率拉上去。至于并发转换数量,如果想再提高,只需停止引擎,打开mcebuddy.conf文件,把max concurrent conversions改成你想要的数字(12或16),保存文件。然后点击Start按钮,它会重新加载设置(只是别打开Settings标签再点保存,否则会报错)。如果这能解决你的问题,下个版本我们会把最大并发转换数再提高。

你在运营电视台吗?

另一件事是,當它正在「分析影片資訊」時,如果影片檔案裡有些雜訊(因為是從天線錄的,所以有些檔案品質不太好),它似乎會卡在這個步驟非常久(可能永遠卡著,雖然我沒讓它卡超過一天)。這也是我為什麼會想說,如果能有多個工作階段會比較好,這樣當其中一些卡住時,其他的還能繼續進行。

當它們卡住時,我會記下檔名,停止轉換,刪除檔案,然後重新開始。最後,又會被更多檔案卡住。

謝謝!

请上传那个“卡住”的文件,以便我们分析原因。在分析阶段会发生多个步骤,包括分析轨道的技术属性以设置/优化转换,以及遍历整个视频寻找裁剪信息。如果裁剪导致问题,可在专家设置中勾选“禁用裁剪”,跳过该步骤。总之,请上传文件供我们查看。

嗨——

我想我搞懂了一件事,那就是 Bitdefender 正在檢查寫入磁碟的內容,我認為它不堪重負。我告訴它不要檢查與影片處理相關的任何磁碟 I/O,使用率就飆升了 25%。所以現在 CPU 使用率最高約 80%,平均約 70%,最低約 50%。還不完美,但已經是顯著改善。我現在正在查看 Windows Defender 的設定,看看它是否也受到資源限制,以及能否讓它退出。

感謝你提供的進一步資訊,我打算提高 ffmpeg 的執行緒數,看看會發生什麼事。我打賭我可以透過達到 100% 來讓它滿載。

非常感謝你的資訊!

你说得对,8 个转换并行时,最慢的环节(比如硬盘)可能就是瓶颈。试着把转换任务分散到不同的目标盘和源盘,把临时文件夹放到内存盘(如果你有多余内存),处理速度会大幅提升。

這應該能真正提升你的轉換效能,把你的 TEMP 資料夾保留在這裡:

順帶一提,在今天的 BETA 版本中,你現在可以輸入 1 到 50 之間的數字(這對於最大的系統來說也是合理的限制)

Goose——

感谢你的建议。我有一块 M.2 三星 512 GB NVMe SSD(标称 8 Gb/s)专门存放临时文件,另一块给 Win10 和 Plex 用。媒体库放在 8 块 4 TB 硬盘组成的 RAID 5 阵列上,所以 I/O 队列(峰值我看到 1000 个请求)在全力工作时也很短,几毫秒就能清空。目前我看到持续两秒的突发流量超过 350 MB/s,对我来说算是重载 I/O 了。

我试过把临时目录放到 8 GB 的内存盘里,除了满载时会空间不足,速度和 M.2 差不多,于是还是把全部 16 GB 还给系统。

我觉得按现在这条路,一天能处理 1200 部视频,对我个人的 Plex 服务器绰绰有余。瓶颈也找得差不多了,下一步就是把 ffmpeg 的线程数再往上提。

再次感谢!

歡迎隨時提供你們轉換效能的基準測試結果。資料很棒,設定也很讚!

是的。所以这会出现在GUI中吗?显示状态的区域会是一个可滚动区域吗,就像它上方的文件处理列表那样?

谢谢!

是的,如果队列数量超过屏幕可容纳范围,主屏幕将出现滚动条。默认下拉选项仍为1到8,但您可以手动覆盖至50;不过,要使用如此多的并发转换,您的临时文件夹需要极大的可用磁盘空间(1.5 × 转换数量 × 文件大小)。

知道了!非常感谢!

Thomweah5555,你在 Bitdefender 裡改了哪些設定?在「工具」-「進階」底下我看到一些可能相關的選項。
可以幫我們指點一下嗎?
謝謝。

嗨——

抱歉,主要问题是 ByteFence,我已经将临时盘和视频盘加入了白名单。但在 Bitdefender 中,关闭自动模式会有所帮助。

Tom