【X265】Win10环境编译FFmpeg,集成 x264、x265、avs2
在Win10中编译完x264、x265后,开始编译FFmpeg,并将集成这几个主流视频编解码算法
准备
系统环境: Win10 + VS2019
编译环境: Mingw64 + msys2 + cmake + yasm + nasm
编码算法:x264_161、x265_3.3、avs2(xavs2_1.3、davs2_1.6)
为方便将以上编码器一起集成到FFmpeg中,全部采用msys2编译,并编译到同一地址,本人全部编译到 /home/build 中, 即在编译时,全部采用./configure --prefix=/home/build
,这样三个编码器+一个解码器(avs2 分为:编码器 xavs2 和解码器 davs2)全部放在同一文件夹中。
具体见【X265】Win10环境编译x264 / x265
AVS2编译
AVS2是我国自主研制的视频编码算法,具体框架与HEVC类似,性能上也对标HEVC。北京大学数字视频编解码技术国家工程实验室已开源AVS2高清实时编码器。AVS3正在研制中,还未看到开源代码。
AVS2编码器开源地址
AVS2解码器开源地址
FFmpeg已可集成AVS2编解码器,因此顺便编译了AVS2,与FFmpeg一起编译。
AVS2编译过程很简单,有msys2和VS工程两种,在开源中已明确说明编译方法,不再赘述,这里采用msys2编译。
FFmpeg编译
FFmpeg源码获取
FFmpeg详细配置参数
- 将获取的源码拷到msys2中(本人下载的FFmpeg_4.4版本);
- 由于可选编译选项比较长,这里采用创建sh脚本的方式,输入编译指令:在 ffmpeg-4.4文件夹中创建build.sh,可通过
vim build.sh
创建并编写脚本。本人编写的 sh 文件如下:
./configure \--enable-shared \--enable-static \--enable-gpl \--enable-encoder=libx264 \--enable-encoder=libx265 \--enable-encoder=libxavs2 \--enable-libx264 \--enable-libx265 \--enable-libxavs2 \--enable-asm \--prefix=/home/ffmpeg \--extra-cflags=-I/home/build/include \--extra-ldflags=-LIBPATH:/home/build/lib
make
make install
- 注意: FFmpeg好像不能集成版本号 >= 1.6 的 davs2解码器,现在在北大官网下载的只有 davs2_1.6,因此这里没有集成解码器,如需要可添加
--enable-decoder=libdavs2 \ --enable-libdavs2
- 我目前还不知道
--enable-encoder=libx264
和--enable-libx264
有什么区别,有这个选项就都输上了。。
- 开始编译前,还需要修改一个环境变量:PKG_CONFIG_PATH
- 本人在直接运行 build.sh 后报错
ERROR:libx264 not found
,查看 ffmpeg-4.4/ffbuild/config.log,发现最后会提示在路径 PKG_CONFIG_PATH 下没有找到libx264(具体咋写的忘了),查看此路径echo $PKG_CONFIG_PATH
,发现定位如上图; - PKG_CONFIG_PATH 指之前x264、x265等编译后,生成的lib文件夹中的pkgconfig文件夹,其中的几个pc文件会指引查询到x264、x265、avs2的库文件和头文件;
- 因此,使用
export PKG_CONFIG_PATH=/home/build/lib/pkgconfig
将此环境变量定位在正确位置,再开始配置和编译; - 实际上本人在修改完这个后,仍遇到了
ERROR:libx264 not found
错误,查看 config.log 发现跟此次 PKG_CONFIG_PATH 无关,但仍未找到 lx264,最终发现是在/home/build/lib/路径中,我本来是删去了libx264.dll.a 的动态链接库,libx264.a 仍在,但FFmpeg没找到 lx264,不知道为啥必须要这个动态链接库,反正添加上之后就正确了。
- 配置成功后,在弹出的配置列表中可以找到 Enabled encoders,其中包含了 libx264,libx265,libxavs2等,这在未配置几个编码器前是没有的,说明此时 configure 成功,可以开始编译
5. 编译完成,在生成的 ffmpeg文件夹中可以看到以下4个文件夹,其中bin文件中的ffmpeg.exe可以直接运行,运行如下:
测试用FFmpeg进行x265编码,ffmpeg -i test.mp4 -c:v libx265 -an output.265
,可以输出265压缩码流文件。编译成功!
【X265】Win10环境编译FFmpeg,集成 x264、x265、avs2相关推荐
- linux 编译ffmpeg 支持x264, x265
原址 1. 前言 本教程涉及的ffmpeg, x264, x265 2. 环境依赖 2.1 删除系统中安装的ffmpeg等库 [plain] view plaincopy sudo apt-get - ...
- linux 编译x264,linux 编译ffmpeg 支持x264, x265
1. 前言 本教程涉及的ffmpeg, x264, x265 2. 环境依赖 2.1 删除系统中安装的ffmpeg等库 sudo apt-get --purge remove ffmpeg mplay ...
- 交叉编译ffmpeg:aac x264 x265
交叉编译AAC: 1.下载aac源码 wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master tar xzv ...
- Ubuntu下编译ffmpeg+openh264+x264
[笔记] Ubuntu下编译ffmpeg+openh264+x264 原文:https://www.cnblogs.com/journeyonmyway/p/4648820.html - ffmpeg ...
- Ubuntu 下编译ffmpeg和x264解编码器(翻译的一篇文章:)
拿出自己一篇早期接触Ubuntu时翻译的文章,对逝去的SEO-DIC.COM.CN这个网站默哀. Ubuntu 下编译ffmpeg和x264解编码器 今年初由于个人的一些原因和其它因素:希奥开源(ht ...
- Windows msys2 下编译FFmpeg并实现x265依赖
这里写自定义目录标题 引言 Msys2的安装 x265的编译 编译FFmpeg 结语 引言 为了做毕设,要使用FFmpeg与x265,由于之前没有相关方面的经验,算是一个小白,所以安装过程属实艰辛.暂 ...
- 完美解决Linux环境编译ffmpeg库
背景说明 项目功能实现需要在Linux下编译出可用的FFmpeg库.FFmpeg在编译过程中是需要链接其它三方库的,比如x265 x265等,否则可能会造成功能不全(如程序接口返回找不到H264编码器 ...
- 音视频学习 - windows10 + vs2019环境编译ffmpeg
一.编译经历 1.[第一次失败]基于windows11 + vs2022编译,总是卡住不动. 2.[第二次失败]基于ubantu进行交叉编译,各种报错,没搞定. 3.[第一次成功]基于虚拟机的win1 ...
- MinGw+Msys搭建环境 编译ffmpeg
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...
最新文章
- 如何更新你的机器学习模型?手把手带你设计一个可持续的预测模型!
- jQuery源码学习之Callbacks
- OpenGL的简单研究-开端
- CTFshow 信息收集 web7
- Oracle - Log buffer 的相关设置
- Bumblebee微服务网关之Url重写
- 视觉SLAM笔记(56) 位姿图优化
- 央行发布声纹识别安全应用技术标准,适用手机银行、第三方支付
- 利用bwm-ng 实时监控系统
- intellij idea 键盘映射
- 西北工业大学noj数据结构实验003稀疏矩阵转置
- 网吧免费上网的7种武器
- Deep Light Enhancement without Paired Supervision (非配对数据监督学习用于低曝光图像增强)
- Go会否给Java带来冲击?
- 程序员成就技术大拿之路
- 上升了百分之几怎么算_计算上涨百分比的公式,上涨比例怎么算公式?
- 山东省地震局2008年事业单位公开招聘工作人员公告
- 一元函数微分学的几何与物理应用
- 【计算机网络】思科实验(9):动态路由协议RIPv2
- ssh框架可以使用Ajax,基于Ajax的SSH框架的应用研究