[英]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.