4.1 FFmpeg编译选项配置

详细的FFmpeg编译流程与脚本分析 FFmpeg是一个跨平台的多媒体库,也是目前音视频领域应用最广泛的库。它包括llibavcodec、libavformat、libavutil、libavdevice、libavfilter、libswscale、libswresample、libpostproc等模块,其中avcodec用于编解码,avformat用于解封装,avutil是提供工具类,avdevice用于各平台的设备接入 阅读详情

一、不同场景的编译选项

1.1 源码调试场景

开启debug和禁用strip,防止代码优化,避免源码调试时乱跳。

# 生成Makefile
./configure \
--prefix=$(pwd)/../install_mingw \
--enable-gpl \
--enable-debug=3 \
--disable-optimizations \
--disable-asm \
--disable-stripping \
--enable-nonfree \
--enable-shared

# 编译 安装
make -j8
make install

1.2 支持x264、fdk-aac、mp4

./configure \
--prefix=$(pwd)/../ffmpeg_build \
--disable-everything \
--disable-programs \
--disable-doc \
--disable-zlib \
--disable-debug \
--disable-neon \
--enable-pic \
--enable-memalign-hack \
--enable-gpl \
--enable-libx264 \
--enable-nonfree \
--enable-libfdk-aac \
--enable-encoder=aac,libfdk_aac \
--enable-encoder=aac,libx264 \
--enable-decoder=aac,aac_latm,h264 \
--enable-demuxer=aac,asf,ffmetadata,h264,mp3  \
--enable-muxer=adts,h264,mp4,pcm_s16le  \
--enable-parser=aac,aac_latm,h264 \
--enable-protocol=file \
--extra-cflags="-I$(pwd)/../3rdparty_mingw/include" \
--extra-ldflags="-L$(pwd)/../3rdparty_mingw/lib"

# 编译 安装
make -j8
make install

1.3 支持x264、x265、fdk-aac、lame、mp4、flv

./configure \
--prefix=$(pwd)/../ffmpeg_build \
--disable-everything \
--disable-programs \
--disable-doc \
--disable-zlib \
--disable-debug \
--enable-shared \
--enable-muxer=mp4,flv,mp3,wav \
--enable-demuxer=mp4,mov,mp3,aac \
--enable-encoder=libx264,libx265,libfdk_aac,libmp3lame \
--enable-decoder=aac,h264,hevc,mp3 \
--enable-protocol=file,http \
--enable-filter=aresample \
--enable-bsf=aac_adtstoasc \
--enable-gpl \
--enable-nonfree \
--enable-libx264 \
--enable-libx265 \
--enable-libfdk-aac \
--enable-libmp3lame \
--extra-cflags="-I$(pwd)/../3rdparty_mingw64/include" \
--extra-ldflags="-L$(pwd)/../3rdparty_mingw64/lib"

# 编译 安装
make -j8
make install

二、参数讲解

2.1 组件禁用与启用

减小库大小原则:先关闭所有组件,再开启自己需要的功能。

禁用选项:

编译选项 描述 禁用的组件示例
--disable-everything 禁用所有组件 所有编码器、解码器、muxer、demuxer、协议、滤镜、设备、解析器、位流滤镜等
--disable-avdevice 禁用所有输入、输出设备 v4l2、alsa、pulse、directshow、decklink、x11grab 等
--disable-encoders 禁用所有编码器 libx264、libx265、aac、mp3、vp8、vp9、huffyuv、mpeg2video 等
--disable-decoders 禁用所有解码器 h264、hevc、mpeg2video、mp3、aac、vp8、vp9、fla
ffmpeg源码编译详细过程与使用(含demo) 关于ffmpeg so库的编译,网上存在各种教程。有些基于windows,有些基于linux~而基于linux的:一般会选择安装虚拟机,在其上跑ubuntu系统。其实各种方式都是可以的,只要最后可以编译出我们需要的so库,就是正道。win10开始自带了linux的子系统,我们可以直接使用该子系统进行编译工作,而无需安装虚拟机等繁琐流程。编译新版的ffmpegdemo中会使用ffmpeg新版的api(注:网上好多教程的demo部分其实无法正常使用,部分api在新版已经废弃) 阅读详情

相关推荐

FFmpeg 详尽编译过程

个人概率性介绍,我在后来测试的时候,就是把别人的 .sh 脚本程序代码,直接拷贝到,我的 linux 系统下使用 vim 编译器打开的脚本中,然后更换自己的路径。在上面编写的Android.mk中,我们制定了后缀名**.c文件的名字为ffmpeg_jni.c**,所以c文件要与Android.mk的LOCAL_SRC_FILES:= ffmpeg_jni.c与此保持一致;对于整个编译的过程我的感触是非常深刻的,因为我在这个编译的过程中踏到了好多的“雷”,每个来的很是突然,都是触不及防的突然。

yinshipin007的博客 485

4.1 FFmpeg编译选项实战:从调试到生产环境的配置策略

本文深入探讨了FFmpeg编译选项的实战配置策略,从调试到生产环境再到跨平台部署。通过对比不同场景下的配置命令,详细解析了如何通过精准的编译选项实现按需定制、性能优化与体积控制,帮助开发者构建高效、稳定的专属媒体处理库。

weixin_29280657的博客 287

ubuntu18.04 ffmpeg 4.1编译安装(共享库)

官方文档(不能生成共享库): https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu#RevertingChangesMadebyThisGuide 参考优快云:https://blog.csdn.net/u010821666/article/details/74905654 为什么官方文档不能生成共享库? 官方文档安装ffmpeg依赖库...

specialshoot的博客 3987

安装pkgconfig_centos7编译安装ffmpeg4.1、opencv3

安装步骤,三步走1. 下载opencv、ffmpeg源码包(附件提供),并解压unzip 3.4.6.zip tar -jxvf ffmpeg-4.1.tar.bz22. 编译ffmpeg4.1cd ffmpeg-4.1 ./configure --enable-shared --enable-pic --enable-static --disable-yasm --prefix=/usr/lo...

weixin_39622562的博客 405

hisi3559A平台(aarch64)ffmpeg-4.1 移植

软件系统:Linux 版本:linux-4.9.37 硬件环境:hisi3559A(64位ARM) 项目中需要将H264/H265的裸流封装为MP4 尝试使用ffmpeg来实现。 移植步骤如下: 下载: http://ffmpeg.org/download.html 默认下载的最新版本 我下载的是ffmpeg-4.1 由于hisi3559A的硬件编码器出来的直接是编码后的H264流,不需要进行编...

重拾程序之路 5129

ffmpeg2,4+sdl1.2起步--交叉编译 lesson1

折腾了两天板,终于在板子上可以播放视频了。先总结几点,放置大家进坑:1、最新版本的FFmpeg-3.4的编译ffplay的话要用SDL2版本,SDL1.2的已经不能用了;2、通过查看源码发现,ffmpeg-3.0.11及以下版本用的是SDL1.2,但这个版本还是有点高,没编译过去;3、最新版本ffmpeg-3.4交叉编译过后,在板子上运行,出现如下错误Could not initialize SD...

cyf15238622067的博客 1115

FFmpeg入门详解之68:FFmpeg4.3的开发环境搭建

1.4.、重命名d:\__msys64\usr\bin\link.exe 为C: \msys64\usr\bin\link.bak, 避免和MSVC 的 link.exe抵触。1.、下载地址:http://yasm.tortall.net/Download.html,下载其64位版本Win64 .exe (64 位 Windows 通用)。下载地址:https://sourceforge.net/projects/msys2/files/Base/x86_64/

福优学苑@音视频+流媒体 1471

构建Windows下的FFmpeg编译环境:使用mingw32_gcc441

Windows作为一个封闭的操作系统,虽然拥有庞大的用户群体,但一直以来都不是开源社区和开发者们喜爱的编程环境。尤其是对于那些习惯了Linux下GCC(GNU Compiler Collection)编译器的开发者来说,他们在Windows下进行程序开发时往往感到诸多不便。为了填补这一空缺,一个名为MingW32的开源项目应运而生。

weixin_42510243的博客 1200

使用Bigemap下载地图流程

Bigemap地图下载简单流程,临时安排任务简单学习没有深入了解。

TKY666的博客 4845

S32DS IDE调试技巧:如何用Attach功能高效定位汽车电子MCU的Bootloader问题

本文详细介绍了在汽车电子MCU开发中,如何利用S32DS IDE的Attach调试模式高效定位Bootloader与应用程序的协同问题。通过对比常规调试与Attach模式的本质差异,并深入讲解工程配置、镜像合并及实战调试流程,帮助开发者在不复位、不重新下载程序的前提下,实时分析系统状态,快速解决内存映射冲突、中断向量表重定向等疑难杂症。

weixin_29168393的博客 265

SAP中MRP运行计划行超限问题的分析与解决

SAP中基于生产性物料的采购特点,通常会采用采购计划协议的方式进行采购。其具体的采购计划通常来自于成品计划独立需求,然后通过物料清单,经由MRP跑出。 在采购计划协议中的计划行中,存在一个计划行号,随着MRP在不断跑出新的计划行,该行号资源会消耗完。当计划行号消耗完后,MRP不会再跑出新的计划行。且在MD04或MD02中看不到类似提示信息。此时可以通过MD05来查看是否出现类似下图的提示信息。 ...

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 3842

SceneSplat

目标:训练一个网络,输入高斯参数 → 输出与自然语言空间对齐的特征。考虑到标注语义的 3DGS 数据有限,作者设计了。策略,让模型在无标签场景上学到有用表征。都有一个与自然语言对齐的语义特征。这是整个方法的第一步,目标是让。

weixin_61091146的博客 1284

abaqus 根据坐标施加载荷- Analytical Field 载荷映射

在一些类型的分析中,需要将按位置分布的载荷施加到结构上,比如流体分析导出了结构的气动载荷、或者温度载荷,需要将压强分布、温度分布载荷施加到固体上。这种分析可以使用abaqus中的Analytical Field实现。 1 例子 1.1 结构 一个100*100mm的面,面的载荷分布函数为p=(x2+y2)0.5/((20.5)*100) MPa,即(0, 0)的压强为0,(100, 100)的压强为1。 1.2 载荷 载荷函数:p=(x^2+y^2)^0.5/((2^0.5)*100) in exce.

shengyutou的博客 2万+

四类九种移位寄存器总结(循环(左、右、双向)移位寄存器、逻辑和算术移位寄存器、串并转换移位寄存器、线性反馈移位寄存器LFSR|verilog代码|Testbench|仿真结果)

移位寄存器有哪些分类呢? 按移位方向分类:①单向移位寄存器(包括左移、右移)②双向移位寄存器 按循环方式分类:①循环移位寄存器②非循环移位寄存器 按部位的不同分类:①逻辑移位寄存器②算术移位寄存器 按输入输出方式分类:①串入串出②串入并出③并入串出④并入并出

Loudrs的博客 1万+

基于 Python Flask 的智能个人财务系统

4.财务分析与报告:自动生成财务分析报告,提供图表展示(如饼图、柱状图)帮助用户了解收支状况和财务趋势。9.管理员管理功能:提供管理员模块,允许管理员查看用户财务数据、生成统计报告,并进行用户管理与权限控制。5.资产管理:用户可以记录并追踪个人资产(如房产、车辆、投资等),系统提供资产价值增减情况和趋势分析。3.预算制定与管理:用户根据收入设定每月预算,系统自动对比实际支出与预算差异,实时提醒预算完成情况。6.信用卡管理:提供信用卡账单记录与管理功能,提醒用户信用卡还款日期,避免逾期,帮助管理信用卡消费。

weixin_68689665的博客 424

深水区探秘:小红书App x-s参数逆向与高并发爬虫实战(2026版)

在移动互联网的碎片化时代,小红书凭借其“社区+电商”的独特模式,积累了超过3亿月活用户。其内容生态覆盖了从美妆、穿搭到旅行、数码等几乎所有垂直领域。对于数据分析师、市场研究员以及AI算法工程师而言,小红书平台蕴含的价值是巨大的——无论是热门趋势洞察、KOL画像分析,还是多模态图文数据的采集。然而,想要高效、稳定地获取小红书App的公开数据,却并非易事。与Web端相比,小红书App的防护体系堪称“铜墙铁壁”。其核心的反爬机制建立在动态混淆的加密参数之上,尤其是请求头中的X-SX-T以及X-S-Common。

2201_76125261的博客 261

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 3.1 Android NDK交叉编译FFmpeg
下一篇: 5.1 Ubuntu Clion 调试FFmpeg 4.4.1 代码
卖猪肉的痴汉
博客等级 码龄10年 166粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值