FFmpeg源码编译出支持音频AAC编码以及H264,H265编码的库

本文指导如何在Windows上通过Visual Studio和msys2环境配置,安装必要的依赖,如Snasm、Syasm等,并详细步骤编译x264、x265和AAC编码库,最终完成ffmpeg源码的编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先决条件:

  • 需要安装msys2(是一个在windows中模拟linux操作系统的软件) 由于在linux中编译ffmpeg比较简单,
    所以利用一下msys2, 直接去官网下载安装即可

  • 需要安装visual studio 2019

一,配置mys2

使用vs2019+msys2的环境来编译ffmpeg源码
1,打开vs2019命令行工具
在这里插入图片描述
想要编译出64位的库就选64位的命令行工具, 这里选用32位的作为示范
2,输入cl命令 确认下存在编译工具在这里插入图片描述
3,打开msys2_shell.cmd文件 : 修改文件
在这里插入图片描述
4,在之前打开的vs2019命令行工具输入命令:

msys2_shell.cmd -mingw32

命令执行后会打开msys2命令行

5,在msys2中输入cl命令 以确认继承了vs2019的环境

在这里插入图片描述
至此msys2环境配置完成

二, 在msys2中安装编译所需的依赖

在编译ffmpeg需要编译汇编代码, 需要安装编译汇编代码的工具:
msys2中的安装指令是 pacman

pacman -S nasm
pacman -S yasm

还有一些其他工具 :

pacman -S make cmake
pacman -S diffutils 比较工具 (避免生成makefile时出错)
pacman -S pkg-config 库配置工具
pacman -S git
三,编译源码

ffmpeg库中是默认支持 x264,x265,aac的解码的, 但是不支持其编码 所以要手动编译成x264,x265,aac库
编译x264
下载x264源码
http://download.videolan.org/pub/videolan/x264/snapshots/
源码放进msys2/home路径下

1,进入x264源码目录
在这里插入图片描述
2,指定编译工具, 指定编译成动态库dll

CC=cl ./configure --enable-shared

在这里插入图片描述
3,编译并安装

make -j32

编译完成后生成文件
在这里插入图片描述
执行make -install
在这里插入图片描述
x264动态库被安装到 /usr/local/bin中
lib库/usr/local/lib中
编译x265
在官网下载x265源码
在这里插入图片描述
源码放到msys2/home目录中
进入build/msys2-cl目录
注意:这里不能使用msys2中usr/bin中的cmake(暂时改个文件名即可 改成cccmake)
将usr/bin中的cmake暂时改个文件名即可改成cccmake
运行 ./make-Makefile.sh
等待编译完成
在这里插入图片描述
安装

make install

在这里插入图片描述
生成的文件复制到msys2/usr/local目录中(include , bin , lib 三个文件夹)
修改usr\local\lib\pkgconfig\x265.pc
在这里插入图片描述

三,编译AAC

下载aac编码器源码
源码自身就有MakeFile可以不用msys2
可以直接在vs2019控制台中运行编译
执行 nmake -f Makefile.vc开始编译
在这里插入图片描述
编译完成生成文件
在这里插入图片描述
指定安装路径

nmake -f Makefile.vc prefix=./install install

同样生成三个文件夹
在这里插入图片描述
生成的三个文件都放进msys2/usr/local目录
在usr/local/lib/pkgconfig中编辑并生成文件fdk-aac.pc

prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: Fraunhofer FDK AAC Codec Library
Description: AAC codec library
Version: 
Libs: -L${libdir} -lfdk-aac 
Libs.private: 
Cflags: -I${includedir}
四,编译ffmpeg源码

下载源码这里用4.3版本放在home目录
msys2中执行命令 只需要SDK

CC=cl.exe ./configure --prefix=./install --toolchain=msvc --enable-shared --disable-programs --disable-ffplay --disable-ffmpeg --disable-ffprobe --enable-libx264 --enable-gpl --enable-libfdk-aac --enable-nonfree --enable-libx265

生成makefile时出现的错误:
在ffbuild/config.log记录了错误原因

原因:系统在默认路径MSYS2/mingw32/lib找不到pkgconfig目录
解决:MSYS2/usr/local/lib/pkgconfig搬移到MSYS2/mingw32/lib

其他一些找不到库错误基本是usr/local/lib中名字不符, 修改名字即可
ffbuild/config.log查看错误记录, 并将编译的库修改成ffmpeg认得到的名字在这里插入图片描述

执行 make -j32 开始编译
编译完成
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值