基本多线程编译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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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(强制非浏…