ffmpeg-编译汇总01

news/2024/7/10 20:52:33 标签: ffmpeg, c++, linux

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


http://www.niftyadmin.cn/n/334949.html

相关文章

DJ5-3 多路访问链路和协议

目录 一、网络链路 二、广播信道要解决问题 三、多路访问协议 1、基本介绍 2、多路访问协议的类型&#xff08;3&#xff09; 四、信道划分协议 1、时分多路访问 TDMA 2、频分多路访问 FDMA 3、码分多路访问 CDMA&#xff08;略&#xff09; 五、随机访问协议 1、纯…

科普ChatGPT

ChatGPT是什么? ChatGPT是一款基于人工智能技术的聊天机器人&#xff0c;可以进行自然语言的交互。它是由OpenAI公司开发的&#xff0c;其名称中的GPT是“Generative Pre-trained Transformer”的缩写&#xff0c;即基于预训练的转换器。ChatGPT使用预训练的神经网络模型来理…

chatgpt赋能Python-pycharm爬虫电影代码

PyCharm爬虫电影代码详解 作为一位有着10年python编程经验的工程师&#xff0c;我想分享一下关于PyCharm爬虫电影代码的详细介绍和使用方法。 PyCharm简介 PyCharm是由JetBrains开发的一款Python IDE&#xff0c;它为Python开发者提供了一站式的开发环境&#xff0c;包括代码…

【C++ 入坑指南】(09)数组

文章目录 简介一维数组1. 定义2. 特点3. 用途4. 示例 二维数组1. 定义2. 用途3. 示例 简介 C 支持数组数据结构&#xff0c;它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据&#xff0c;但它往往被认为是一系列相同类型的变量。 一维数组 1. 定义…

论文中文翻译——VulCNN An Image-inspired Scalable Vulnerability Detection System

本论文相关内容 论文下载地址——Web Of Science论文中文翻译——VulCNN An Image-inspired Scalable Vulnerability Detection System 文章目录 本论文相关内容前言VulCNN&#xff1a;一种基于图像的可扩展漏洞检测系统作者信息摘要CCS概念关键词ACM参考格式1 引言2 动机3 方…

【文老师软考数据库】(全)

目录 第一章 计算机系统基本知识 1.1 计算机系统 1.1.1 计算机硬件组成 1.1.2 中央处理单元 1.1.3 数据表示 1.1.4 校验码 1.2 计算机体系结构 1.2.1 体系结构分类 1.2.2 指令系统存 1.2.3 储系系统 1.2.4 输入/输出技术 1.2.5 总线结构 1.3 可靠性、性能、安全 …

GPRS 技术现状

GPRS 是通用分组无线业务〔General Packet Radio Service〕的 英文简称&#xff0c;是在现有的 GSM 系统上开展出来的一种新的分组数 据承载业务。GPRS 与现有的 GSM 语音系统最根本的区别是&#xff0c; GSM 是一种电路交换系统&#xff0c;而 GPRS 是一种分组交换系统。因 此…

mysql字符串切割,截取函数SUBSTRING、LEFT 和 RIGHT 、 SUBSTR、MID

SUBSTRING 函数的语法 SUBSTRING(string, start[, length]) 其中&#xff0c;string 指字符串&#xff1b;start 是要提取的起始位置&#xff08;从 1 开始计数&#xff09;&#xff0c;length 则是要提取的字符数。如果省略 length 参数&#xff0c;则表示从起始位置开始提取…