簡體   English   中英

如何限制 FFMpeg CPU 使用率?

[英]How can I limit FFMpeg CPU usage?

我在 C# Windows 窗體應用程序中調用 FFMpeg。 由於它使用了如此多的 CPU(始終高於 90%),我的線程都無法繼續工作。 有沒有辦法限制這種 CPU 使用率?

我試圖將 Process.PriorityClass 設置為 PriorityClass.BelowNormal 但這完全阻止了 ffmpeg 進程。

我相信有一種方法可以做到這一點,因為我看到很多使用 ffmpeg 的程序。

請幫忙。

您不能將 FFMpeg 限制為 CPU 使用的百分比,但您可以在 FFMpeg 調用中設置-threads參數,如果您有 4 個內核,請嘗試將其設置為-threads 2 ,這應該將您限制在 50% 左右的 CPU。

另一種解決方案可能是降低 FFMpeg 進程的優先級,使其低於應用程序。

僅適用於試圖找到在終端(bash、zsh 或服務器上)中使用的解決方案的人......

nice -n 20 cpulimit -l 60 -i ffmpeg -threads 1 -i in.avi out.mp4

nice是用於設置優先級的程序。 閱讀man nice知道-n參數在您的系統中的含義。 在 macOS 上,20 最低,-20 最高。

cpulimit是用於控制 CPU 使用率的開源實用程序(Linux/OS X/FreeBSD)。

在 MacOS 上,這需要 sudo。

檢查這個答案: https : //superuser.com/a/214572/458727

我使用 Battle Encoder Shirasé 來降低 FFMPEG。 BES 是開源的,所以觀察它的代碼可以幫助獲得一個想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM