栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

先决条件:
  • 需要安装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 三个文件夹)
修改usrlocallibpkgconfigx265.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 开始编译
编译完成

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/613522.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号