基本多線程編譯make命令

背景:
在ffmpeg源碼編譯的時候要等很久,快下班了,等不及。

解決方法:
使用多線程編譯。
make -j{n}
如:

make -j8

詳解:沒時間看的可以返回了!

在編譯 FFmpeg 時使用多線程可以顯著加快編譯速度。以下是使用 make 進行多線程編譯的詳細指南:

基本多線程編譯命令

make -j$(nproc)

解釋

  • -j:啟用多線程編譯
  • $(nproc):自動獲取系統 CPU 核心數量(推薦方式)

替代指定線程數的方式

  1. 自動檢測核心數

    # Linux/macOS
    make -j$(sysctl -n hw.ncpu)  # macOS
    make -j$(nproc)              # Linux
    
  2. 手動指定線程數

    make -j4     # 使用 4 個線程
    make -j8     # 使用 8 個線程
    make -j16    # 使用 16 個線程
    
  3. 不限制線程數(不推薦,可能導致系統過載):

    make -j
    

完整編譯流程(帶多線程優化)

# 1. 進入 FFmpeg 源碼目錄
cd FFmpeg# 2. 配置編譯選項(根據需要調整)
./configure --enable-libwebp --enable-gpl --enable-libx264# 3. 多線程編譯(使用所有可用核心)
make -j$(nproc)# 4. 安裝(需要 sudo 權限)
sudo make install

多線程編譯的最佳實踐

  1. 核心數量選擇

    • 理想線程數 = CPU 物理核心數 × 2
    • 例如 4 核 CPU 使用 -j8
    • 使用 tophtop 監控系統負載
  2. 內存考慮

    # 內存不足時減少線程數
    make -j$(($(nproc)/2))  # 使用一半核心數
    
  3. 錯誤處理

    # 編譯失敗后重新嘗試(單線程調試)
    make -j1 V=1  # V=1 顯示詳細錯誤
    
  4. 結合 ccache 加速

    # 安裝 ccache
    sudo apt install ccache# 配置時啟用 ccache
    export CC="ccache gcc"
    export CXX="ccache g++"
    ./configure --enable-libwebp# 多線程編譯
    make -j$(nproc)
    

各平臺建議線程數

系統配置推薦線程數示例命令
雙核 CPU-j4make -j4
四核 CPU-j8make -j8
八核 CPU-j16make -j16
16 核服務器-j32make -j32
內存 < 8GB-j$(nproc)/2make -j$(($(nproc)/2))

驗證安裝

# 檢查 libwebp 支持
ffmpeg -version | grep libwebp# 測試動態 WebP 轉換
ffmpeg -i input.webp -c:v libx264 output.mp4

提示:首次編譯可能需要 10-30 分鐘(取決于硬件),使用多線程可顯著縮短時間。八核處理器上使用 -j16 通常比單線程快 6-8 倍。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909298.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909298.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909298.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MNIST數據集上樸素貝葉斯分類器(MATLAB例)

MNIST數據集上樸素貝葉斯分類器 Naive Bayes Classification fitcnb Train multiclass naive Bayes model Syntax Mdl fitcnb(Tbl,ResponseVarName) Mdl fitcnb(Tbl,formula) Mdl fitcnb(Tbl,Y) Mdl fitcnb(X,Y) Mdl fitcnb(___,Name,Value) [Mdl,AggregateOptimization…

網站設計小技巧:利用交互設計提升用戶體驗

現在很多企業朋友都會感覺到&#xff0c;做網站設計掌握不好設計網頁的魂&#xff0c;換了很多設計方式可能效果都不理想。蒙特網站專注高端網站建設20多年&#xff0c;基于為華為、字節跳動、海康威視等頭部企業打造網站的經驗&#xff0c;今天將近期用戶比較喜歡的網頁設計方…

Github指南-Add .gitignore和Choose a license

Add .gitignore&#xff08;添加忽略文件列表&#xff09; &#x1f4cc; 作用&#xff1a; .gitignore 文件用于告訴 Git 哪些文件或文件夾**不要被上傳&#xff08;版本控制&#xff09;**&#xff0c;例如&#xff1a; 編譯生成的臨時文件&#xff08;如 .exe, .o&#x…

如何打造沉浸式文件操作體驗

在操作系統長期運行后&#xff0c;本地文件系統往往會面臨一個常見卻棘手的問題&#xff1a;元數據管理效率下降&#xff0c;導致用戶在海量文件中檢索目標內容時出現顯著的延遲與操作成本。這種現象在未使用標簽化或語義化管理系統的情況下尤為明顯。 而 Oversis 的出現&…

企業AI深水區突圍:從星辰大海到腳下泥濘的進化論

一、業務價值旅程&#xff1a;從降本增效到價值躍遷 1.1 技術落地的"甜蜜陷阱" 企業在AI應用初期往往陷入"高配用不起&#xff0c;低配用不了"的困境。一臺8卡A100服務器每月電費超3萬元的成本&#xff0c;對制造業利潤形成巨大擠壓。即便跨過算力門檻&a…

PostgreSQL的擴展moddatetime

PostgreSQL的擴展moddatetime moddatetime 是 PostgreSQL 的一個內置擴展&#xff0c;用于自動維護表的最后修改時間字段。這個擴展可以自動更新指定字段為當前時間戳&#xff0c;非常適合需要跟蹤記錄最后修改時間的應用場景。 一、moddatetime 基本功能 核心特性 自動更新…

自己的電腦搭建外網訪問網站服務器的步驟

文章目錄 PC電腦做網站服務器的步驟1.前言2. 網站服務器系統的安裝2.1個人電腦安裝IIS&#xff08;Windows7系統安裝IIS7.0&#xff09;2.1.1&#xff1a;打開控制面板&#xff0c;給Windows安裝插件 2.2網站配置&#xff1a;2.2.1打開網站配置項&#xff1a;2.2.2開始配置&…

基于深度學習的智能語音合成系統:技術與實踐

前言 隨著人工智能技術的飛速發展&#xff0c;智能語音合成&#xff08;Text-to-Speech, TTS&#xff09;技術已經成為人機交互領域的重要組成部分。從智能助手到有聲讀物&#xff0c;語音合成技術正在改變我們與數字內容的交互方式。近年來&#xff0c;深度學習技術為語音合成…

鑄鐵平臺的制造工藝復雜而精細

鑄鐵平臺的制造工藝確實復雜而精細。首先&#xff0c;需要選擇合適的鑄鐵材料&#xff0c;通常是灰鑄鐵或球墨鑄鐵&#xff0c;以滿足平臺的強度和耐磨性要求。然后&#xff0c;根據設計要求&#xff0c;制作模具&#xff0c;并在高溫下將鐵液倒入模具中進行鑄造。在鑄造過程中…

ArcPy 與 ArcGIS .NET SDK 讀取 GDB 要素類坐標系失敗?GDAL 外掛方案詳解

ArcPy 與 ArcGIS .NET SDK 讀取 GDB 要素類坐標系失敗&#xff1f;GDAL 外掛方案詳解 在ArcGIS Pro中正常顯示的坐標系&#xff0c;為何通過ArcPy或.NET SDK卻無法正確讀取&#xff1f;本文將分享我在處理CGCS2000坐標系時的踩坑經歷&#xff0c;以及最終通過GDAL外掛方案解決問…

Zabbix 高可用架構部署方案(2最新版)

Zabbix 高可用架構部署方案&#xff08;MySQL 雙 VIPHAProxyNginx&#xff09; 前景提要&#xff1a;使用 MySQL 作為數據庫&#xff0c;兩個虛擬 IP&#xff08;10.0.0.100 和 10.0.0.200&#xff09;&#xff0c;HAProxy 作為數據庫負載均衡&#xff0c;Nginx 作為 Web 訪問…

深入解析Linux分頁機制:從虛擬內存到物理地址的魔法轉換

目錄 引言&#xff1a;為什么需要分頁機制&#xff1f; 一、分頁機制基礎概念 1.1 虛擬地址與物理地址 1.2 頁與頁框 1.3 為什么是4KB&#xff1f; 二、多級頁表結構 2.1 為什么需要多級頁表&#xff1f; 2.2 x86_64的四級頁表結構 2.3 頁表項詳解 三、Linux分頁實現機…

使用python進行圖像處理—圖像變換(6)

圖像變換是指改變圖像的幾何形狀或空間位置的操作。常見的幾何變換包括平移、旋轉、縮放、剪切&#xff08;shear&#xff09;以及更復雜的仿射變換和透視變換。這些變換在圖像配準、圖像校正、創建特效等場景中非常有用。 6.1仿射變換(Affine Transformation) 仿射變換是一種…

NLP-數據集介紹(并不全,文本類介紹)

目錄 第一章 STS&#xff08;語義文本相似度&#xff09; &#xff08;重點&#xff09;一、SemEval STS 年度任務&#xff08;2012-2017&#xff09;1. SemEval-2012 STS2. SemEval-2013 STS3. SemEval-2014 STS4. SemEval-2015 STS5. SemEval-2016 STS6. SemEval-2017 STS 二…

JS進階 Day01

1.作用域和作用域鏈 let不可訪問 var可訪問&#xff0c;因為沒有塊作用域這一說法 2.JS垃圾回收機制以及算法 下圖如上圖同理 下圖這個三個相互引用的&#xff0c;根部找不到&#xff0c;就進行清除。 3.JS閉包 4.變量和函數提升(了解) 5.函數剩余參數和展開運算符 還有種寫法 …

詳解Python當中的pip常用命令

想象一下&#xff0c;如果建造房屋時&#xff0c;每一塊磚、每一根鋼筋都需要你自己親手燒制和打造&#xff0c;那會是怎樣一番景象&#xff1f;軟件開發也是如此。如果沒有現成的、高質量的、可復用的代碼庫&#xff0c;開發者們就不得不重復“發明輪子”&#xff0c;效率低下…

LangChain面試內容整理-知識點10:文本嵌入模型(Embeddings)使用

文本嵌入(Embeddings)是將文字轉換為向量(高維數值向量)的過程和結果。在LangChain中,Embeddings模塊負責調用各種嵌入模型,將文本轉化為向量表示,以便后續在向量空間執行相似度搜索、聚類等操作。這在實現語義搜索、RAG中非常關鍵,因為向量可以讓計算機“理解”文本語…

To be or Not to be, That‘s a Token——論文閱讀筆記——Beyond the 80/20 Rule和R2R

本周又在同一方向上刷到兩篇文章&#xff0c;可以說&#xff0c;……同學們確實卷啊&#xff0c;要不卷卷開放場域的推理呢&#xff1f; 這兩篇都在講&#xff1a;如何巧妙的利用帶有分支能力的token來提高推理性能或效率的。 第一篇叫 Beyond the 80/20 Rule: High-Entropy Mi…

bisheng系列(三)- 本地部署(后端 1.2版本)

一、導讀 環境&#xff1a;Ubuntu 24.04、open Euler 23.03、Windows 11、WSL 2、Python 3.10 、bisheng 1.2.0 背景&#xff1a;需要bisheng二開商用&#xff0c;故而此處進行本地部署&#xff0c;便于后期調試開發 時間&#xff1a;20250612 說明&#xff1a;bisheng的1.2…

使用 PolarProxy+Proxifier 解密 TLS 流量

一、簡介 在分析惡意樣本或加密流量時,我們常常需要將 TLS 加密通信還原為明文。 本文介紹如何通過 PolarProxy 和Proxifier 解密 TLS 流量并保存為 pcap 文件,在 Wireshark 中進行進一步分析。 二、工具準備 ? PolarProxy(推薦 Windows x64 版本)? Proxifier(強制非瀏…