当前位置: 首页 > news >正文

ffmpeg-编译汇总01

ffmpeg-编译汇总

ubuntu18.04下编译ffmpeg

所有安装目录 /usr/local

1.nasm编译器编译

(nasm-2.13.03解包)

./configure --prefix=/usr/local

make -j4

sudo make install

注意:能检测到可以不用设置下面的环境。

安装完成后,为了系统能自动找到nasm程序,我们需要配置下环境变量。步骤如下:

输入命令:sudo vim /etc/profile,在文件末尾加入

export NASM_HOME=/usr/local/nasm

export PATH=${NASM_HOME}/bin:$PATH

export LD_LIBRARY_PATH=${NASM_HOME}/bin:$LD_LIBRARY_PATH

2.SDL(SDL2-2.0.10解包) sudo apt-get install xorg-dev

cmake直接编译(注意勾选静态编译 取消掉动态库)

make -j4

sudo make install

3.x264    -fPIC

git clone https://code.videolan.org/videolan/x264.git

./configure --prefix=/usr/local --enable-pic --enable-strip --enable-static --disable-shared

make -j4

sudo make install

4.x265

git clone https://bitbucket.org/multicoreware/x265_git.git

cmake直接编译(注意勾选静态编译)

make -j4

sudo make install

5.ffmpeg编译

(先确定安装好apt-get install libasound2-dev libpulse-dev)

生成库

make -j4

sudo make install

FFmpeg编译后产生的FFmpeg和FFmpeg_g有什么区别

_g一般是里面带了debug信息,方便调试的(比如单步调试)

//下面是关闭asm编译的

./configure --enable-static --disable-shared --disable-yasm --disable-x86asm --enable-libx264 --enable-libx265 --enable-sdl2 --enable-gpl --prefix=/usr/local/

//下面是打开多线程支持ubuntu通用

./configure --enable-static --disable-shared --enable-libx264 --enable-libx265 --enable-sdl2 --enable-pthreads --enable-pic --enable-gpl --prefix=/usr/local/

//树莓派3b

./configure --enable-static --disable-shared --enable-libx264 --enable-libx265 --enable-sdl2 --enable-pthreads --enable-gpl --enable-mmal --enable-omx --enable-omx-rpi --enable-pic --extra-ldflags=-latomic --pkg-config-flags="pkg-config --static" --prefix=/home/pi/dev/ffmpeg-4.4.1-dev/

./configure --arch=armel --target-os=linux --enable-static --disable-shared --enable-gpl --enable-libx264 --enable-sdl  --enable-nonfree --enable-omx --enable-omx-rpi --enable-encoder=h264_omx --enable-mmal --enable-hwaccel=h264_mmal --enable-decoder=h264_mmal

//NVIDIA

1.下载并安装ffnvcodec:

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git

cd nv-codec-headers && sudo make install

2.下载最新的FFmpeg或libav源代码

git clone https://git.ffmpeg.org/ffmpeg.git[Libav:https://github.com/libav/libav]

3.从NVIDIA网站下载并安装兼容的驱动程序并安装CUDA工具包CUDA工具包

4.ffmpeg命令

./configure --enable-cuda-sdk --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64

5.测试FFmpeg,请尝试以下示例命令行进行1:2转码

ffmpeg -y -hwaccel cuvid -c:v h264_cuvid -vsync 0 -i <input.mp4> -vf scale_npp=1920:1072

-vcodec h264_nvenc <output0.264> -vf scale_npp=1280:720 -vcodec h264_nvenc <output1.264>

//jetson-TX2(下载jetson-ffmpeg补丁)

./configure --enable-static --disable-shared --enable-nvmpi --enable-libx264 --enable-libx265 --enable-sdl2 --enable-pthreads --enable-gpl --enable-pic --prefix=/usr/local/

MSYS2下编译

MSYS2静态/动态编译

./configure --enable-static --disable-shared --disable-debug --enable-sdl2 --enable-gpl --enable-libx264 --enable-libx265 --enable-w32threads --disable-pthreads --enable-memory-poisoning --enable-version3 --disable-iconv --disable-bzlib --disable-zlib --disable-lzma --prefix=/home/AGAN/ffmpeg-4.4.1-dev

./configure --enable-shared --disable-debug --enable-sdl2 --enable-gpl --enable-libx264 --enable-libx265 --enable-w32threads --disable-pthreads --enable-memory-poisoning --enable-version3 --disable-iconv --disable-bzlib --disable-zlib --disable-lzma --prefix=/home/AGAN/ffmpeg-4.4.1-devdll

msvc 32/64静态/动态编译

./configure --toolchain=msvc --enable-static --disable-shared --disable-debug --enable-gpl --enable-sdl2 --enable-libx264 --enable-libx265 --enable-w32threads --prefix=/home/AGAN/ffmpeg-4.4.1

./configure --toolchain=msvc --enable-shared --disable-debug --enable-gpl --enable-sdl2 --enable-libx264 --enable-libx265 --enable-w32threads --prefix=/home/AGAN/ffmpeg-4.4.1

相关文章:

ffmpeg-编译汇总01

ffmpeg-编译汇总 ubuntu18.04下编译ffmpeg 所有安装目录 /usr/local 1.nasm编译器编译 (nasm-2.13.03解包) ./configure --prefix/usr/local make -j4 sudo make install 注意&#xff1a;能检测到可以不用设置下面的环境。 安装完成后&#xff0c;为了系统能自动找到nasm程序&…...

素雅的登录界面,简单而优雅

先上效果图&#xff1a; 再上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>*, *::after, *::before {margin: 0;padding: 0;box-sizing: bord…...

Docker数据目录迁移方法

文章目录 前言一、停掉Docker服务&#xff1f;二、迁移docker数据到数据盘目三、备份原数据目录四、添加软链接五、重启docker服务六、确认服务没有问题后&#xff0c;删除备份的目录总结 前言 服务器上安装的docker服务&#xff0c;数据默认存储在/var/lib/docker目录&#x…...

C++——动态规划

动态规划是一种解决复杂问题的算法思想。它通过将问题分解为更小的子问题&#xff0c;并利用子问题的解来构建原问题的解。动态规划通常用于优化问题&#xff0c;其中需要找到最优解或最大值/最小值。 动态规划的核心思想是存储并重复使用子问题的解&#xff0c;以避免重复计算…...

【FAQ】视频编辑服务常见问题及解答

Q1问题描述 1、 访问贴纸等素材的时候提示“网络异常&#xff0c;请重试”怎么办&#xff1f; 2、 使用AI能力时&#xff0c;提示“errorCode:20124 errorMsg:Method not Allowed”&#xff1f; 解决方案 请做以下检查&#xff1a; 1、 在代码中检查鉴权信息是否已设置。如…...

JavaEE(系列8) -- 多线程案例(单例模式)

目录 1. 设计模式 2. 单例模式 -- 饿汉模式 3. 单例模式 -- 懒汉模式 4. 单例模式(懒汉模式-多线程) 1. 设计模式 什么是设计模式? 设计模式好比象棋中的 "棋谱". 红方当头炮, 黑方马来跳. 针对红方的一些走法, 黑方应招的时候有一些固定的套路. 按照套路…...

深度剖析,如何从底层代码层面理解Selenium和Appium的关联

目录 前言&#xff1a; 一、Selenium和WebDriver 二、Appium和WebDriver 三、Selenium和Appium的底层关联 1. Selenium WebDriver提供底层的浏览器控制机制 2. 利用JSON Wire Protocol通信协议实现通讯机制 四、实例代码 总结&#xff1a; 前言&#xff1a; Selenium和…...

【Three.js】第一、二章 入门指南和基础知识

01.介绍 Three.js 非常庞大&#xff0c;你可以用它做无数的事情。 在第一章中&#xff0c;我们将学习所有基础知识&#xff0c;例如创建第一个场景、渲染、添加对象、选择正确的材料、添加纹理、为所有内容制作动画&#xff0c;甚至将其放到网上。有些人可能会觉得这部分有点…...

力扣第 104 场双周赛 2681. 英雄的力量

原题链接力扣 题目大意&#xff1a;我开始看成连续子段了&#xff0c;写了个递归程序....... 一个数组任选一个子序列&#xff0c;子序列的力量值最大值平方*最小值。求所有子序列的力量和。 分析过程&#xff1a;如序列长度为n&#xff0c;子序列总数为2的n次幂&#xff0c…...

在linux上创建crypto_LUKS格式的块设备

要在Linux上创建一个块设备并将其格式化为 crypto_LUKS&#xff0c;可以按照以下步骤进行&#xff1a; 创建一个空白文件&#xff0c;作为块设备的基础。可以使用 dd 命令创建指定大小的文件&#xff0c;例如&#xff1a; dd if/dev/zero of/path/to/device bs1M count100这将创…...

76.建立一个主体样式第二部分

上节课的时候我们完成的页面是这个样子&#xff01; ● 之后我们通过绝对定位来解决位置定位的问题 .header-container {width: 1200px;margin: 0 auto;position: absolute;left: 50%;top: 50%; }header {height: 100vh;background-color: orange;position: relative; }● 之…...

SQL删除重复的记录(只保留一条)-窗口函数row_number()

文章目录 一、关于mysql表中数据重复二、聚合函数min(id)not in二、窗口函数row_number()四、补充&#xff1a;常见的窗口函数 一、关于mysql表中数据重复 关于删除mysql表中重复数据问题&#xff0c;本文中给到两种办法&#xff1a;聚合函数、窗口函数row_number()的方法。 (注…...

CF1660D Maximum Product Strikes Back 题解

CF1660D Maximum Product Strikes Back 题解 题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 思路点拨&#xff08;分类题&#xff09;缩小研究对象范围除0的分析加上0的分析 代码实现小方法陈述 题目描述 你有一个长度为 n n n 的数组&#xff0c;每一个元素都在 …...

基于CSSOM的暗链检测技术实现方案

什么是暗链 大部分的开源代码在实现暗链检测的时候都是直接判断页面里面有没有敏感词,如果有,就认为该链接为暗链。这种做法其实是有误的。 违规链接应该分为:外链、内链、死链和暗链。而暗链除了违规,还应该具备“暗”这个看不见的特征。 暗链的特征 其实“暗链”就是看…...

MySQL db、tables_priv、columns_priv和procs_priv权限表

在 MySQL 数据库中&#xff0c;权限表除了 user 表外&#xff0c;还有 db 表、tables_priv 表、columns_priv 表和 procs_priv 表。在《MySQL user权限表详解》中我们讲解了 MySQL 的 user 表&#xff0c;下面主要介绍其它几种权限表。 db表 db 表比较常用&#xff0c;是 MyS…...

JavaWeb-JSP的学习

JSP 今日目标&#xff1a; 理解 JSP 及 JSP 原理能在 JSP中使用 EL表达式 和 JSTL标签理解 MVC模式 和 三层架构能完成品牌数据的增删改查功能 1、JSP 概述 JSP&#xff08;全称&#xff1a;Java Server Pages&#xff09;&#xff1a;Java 服务端页面。是一种动态的网页技术…...

力扣sql中等篇练习(二十三)

力扣sql中等篇练习(二十三) 1 统计实验的数量 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # 有可能数据本身就不全,就需要自行创建临时表 WITH T as (SELECT Android p1,Reading e1UNIONSELECT Android p1,Sports e1UNIONSELECT Android p1,Prog…...

C语言算法之查找

一.查找相关概念 这一部分解释数据结构里面查找的相关基础概念&#xff1a; 查找&#xff1a;在数据集合中寻找满足某种条件的数据元素的过程。查找表&#xff1a;用于查找的数据集合关键字&#xff1a;数据元素中唯一标识该元素的某个数据项的值静态查找表&#xff1a;静态查…...

肝一肝设计模式【九】-- 享元模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 肝一肝设计模式【三】-- 原型模式 传送门 肝一肝设计模式【四】-- 建造者模式 传送门 肝一肝设计模式【五】-- 适配器模式 传送门 肝一肝设计模式【六】-- 装饰器模式 传送门 肝…...

自动化测试的十大雷区【刚入门必看】

虽然从自己的错误中学习也不错&#xff0c;但从别人的错误中学习总是更好的。 作为一个自动化测试人员&#xff0c;分享常见的容易犯的10个错误&#xff0c;可以从中吸取教训&#xff0c;引以为鉴。 一、必要时才自动化 新人小王接到为Web应用程序自动化测试脚本的任务时&…...

AI Agent在智能风控中的实战:多智能体欺诈检测与预警

AI Agent在智能风控中的实战:多智能体欺诈检测与预警 你有没有过明明是正常交易却被银行冻结账户的糟糕体验?或是听说过某电商平台上线新活动首日就被黑产团伙薅走数千万补贴的新闻?随着黑产欺诈向团伙化、专业化、动态化演进,传统依赖规则引擎、单模型机器学习的风控体系已…...

DISMTools企业部署:在组织中大规模应用的最佳实践

DISMTools企业部署&#xff1a;在组织中大规模应用的最佳实践 【免费下载链接】DISMTools The connected place for Windows system administration 项目地址: https://gitcode.com/GitHub_Trending/di/DISMTools DISMTools是一款专为Windows系统管理设计的连接平台&…...

Kerberos身份认证原理与实战排错指南

1. 为什么今天还要花时间搞懂 Kerberos&#xff1f;——一个被低估的“老协议”正在悄悄支撑着你的日常你每天登录公司内网查邮件、访问财务系统提交报销、用 Jenkins 构建代码、甚至在 Windows 域环境中打开一台同事的共享文件夹……这些看似顺滑的操作背后&#xff0c;大概率…...

如何在macOS上免费解锁QQ音乐加密文件:完整指南

如何在macOS上免费解锁QQ音乐加密文件&#xff1a;完整指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转换结果…...

Transient、QuickEye、VerifyEye傻傻分不清?一文讲透Ansys里三种眼图仿真方法的适用场景与避坑指南

Transient、QuickEye、VerifyEye深度解析&#xff1a;Ansys眼图仿真技术选型实战指南 在高速数字系统设计中&#xff0c;眼图分析是评估信号完整性的黄金标准。面对Ansys工具链中三种截然不同的眼图生成方法&#xff0c;工程师常常陷入选择困境——是追求精确度的传统瞬态分析&…...

XML 服务器

XML 服务器 引言 XML(可扩展标记语言)服务器在现代互联网技术中扮演着至关重要的角色。它为数据的传输和处理提供了灵活且高效的方式。本文将深入探讨XML服务器的概念、工作原理、应用场景及其在软件开发中的重要性。 什么是XML服务器? XML服务器是一种用于存储、处理和…...

长期使用Token Plan套餐在项目开发中的成本观察

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用Token Plan套餐在项目开发中的成本观察 在AI驱动的项目开发中&#xff0c;成本控制与预算管理是团队负责人必须面对的现实…...

PCB的常规机械通孔与HDI工艺钻孔差异

结合常规 4 层通孔 PCB&#xff08;非 HDI&#xff09; 标准制程&#xff0c;分步骤讲清钻孔时机、先后顺序&#xff0c;区分机械通孔与板件结构&#xff0c;专业且贴合工厂实际流程。一、先明确 4 层通孔板基础结构4 层板结构&#xff1a;L1 → PP 半固化片 → L2/L3&#xff…...

ArduPilot飞行模式实战:从代码角度看Stabilize、Acro、Loiter模式如何切换(附避坑指南)

ArduPilot飞行模式深度解析&#xff1a;从状态机到实战避坑指南 在开源飞控领域&#xff0c;ArduPilot以其强大的飞行模式系统著称。不同于普通用户只需了解模式功能&#xff0c;开发者更需要掌握模式切换的底层机制——这直接关系到飞行安全与二次开发效率。本文将带您深入Sta…...

Unity中MMD初音资源导入与动画落地全流程指南

1. 这不是普通模型包&#xff1a;初音跳舞资源在Unity中的真实价值定位“Unity初音跳舞精品模型动画资源分享”——看到这个标题&#xff0c;很多刚接触Unity的美术向开发者第一反应是&#xff1a;“哇&#xff0c;能直接放进项目里做Demo了&#xff01;”但我在带三个独立游戏…...