【X265】Win10环境编译FFmpeg,集成 x264、x265、avs2

article/2025/8/28 9:27:23

在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详细配置参数

  1. 将获取的源码拷到msys2中(本人下载的FFmpeg_4.4版本);
  2. 由于可选编译选项比较长,这里采用创建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有什么区别,有这个选项就都输上了。。
  1. 开始编译前,还需要修改一个环境变量:PKG_CONFIG_PATH

FFmpeg编译出错

  • 本人在直接运行 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,不知道为啥必须要这个动态链接库,反正添加上之后就正确了。
  1. 配置成功后,在弹出的配置列表中可以找到 Enabled encoders,其中包含了 libx264,libx265,libxavs2等,这在未配置几个编码器前是没有的,说明此时 configure 成功,可以开始编译

在这里插入图片描述
5. 编译完成,在生成的 ffmpeg文件夹中可以看到以下4个文件夹,其中bin文件中的ffmpeg.exe可以直接运行,运行如下:
FFmpeg编译完成
运行FFmpeg
测试用FFmpeg进行x265编码,ffmpeg -i test.mp4 -c:v libx265 -an output.265,可以输出265压缩码流文件。编译成功!


http://chatgpt.dhexx.cn/article/mnrS6v8e.shtml

相关文章

一个有趣的avs2编码器

该avs2编码器是清华大学开发的一个参考编解码器: https://mp.csdn.net/mp_download/manage/download/UpDetailed 代开文件,结构如下: 考虑到我们是要使用,所以进入到build: 因为我们是linux,cd linux : 继续cd lencod: 编译&a…

AVS2 有点令人不敢相信

王荣刚:建立中国自主视频技术生态 文 / 王荣刚 整理 / LiveVideoStack 直播回放: https://www.baijiayun.com/web/playback/index?classid18072579438145&session_id201807260&tokenPsTmsjVpbRht681rrJ0J_Xl0fbNahfHFmF1doYNdca5XBFzghyiw1…

HEVC 、H.264与AVS2 视频压缩

Lab2 Report: HEVC 、H.264与AVS2 视频压缩 文章目录 Lab2 Report: HEVC 、H.264与AVS2 视频压缩1. 摘要2. 实验一:HEVC 视频编码与解码2.1 实验内容2.2 实验原理简述2.3 实验过程与分析2.3.1 实验环境与测试序列2.3.2 HEVC编码与解码(1)测试…

AVS2参考软件的运行

博主最近在接触学习AVS2的代码,在查找资料的时候发现关于AVS2的资料少之又少,光是将这个代码运行起来博主也是踏了一些坑,其实遇到的问题都是很简单的,只不过下载下来的代码并没有使用手册,一切都是自己一点点根据代码…

HEVC vs AVS2

AVS2高清实时编码器问世,性能大幅超越HEVC/H.265编码器x265 2015/9/23 北京大学深圳研究生院数字媒体研究中心研制成功首款基于AVS2标准的高清实时编码器uAVS2,性能大幅超越HEVC/H.265编码器x265。2014年12月,面向高清/超高清视频应用的新…

京东云视频云全面支持AVS2标准

一、概述 数字音视频编解码技术标准(AVS)工作组由国家原信息产业部科学技术司于2002年6月批准成立,目标是制定我国自有的音视频编解码标准。至今已有两代AVS标准正式发布并成为国家标准,目前第三代标准AVS3正在制定中。AVS2属于第…

实现一个avs2码流分析工具

最近在做avs2编码器项目,但是却没有成熟的码流分析工具,于是抽空学习了QT,业余时间写了一个avs2码流分析工具。 软件的界面如下: 图1、avs2码流分析仪界面 UI的左边框为NAL列表或者语法元素列表: 默认情况显示的是NAL列…

AVS2技术

转自http://www.avs.org.cn/avs2/technology.asp AVS2技术 AVS2采用了混合编码框架,整个编码过程包括帧内预测、帧间预测、变换量化、反量化反变换、环路滤波和熵编码等模块。具有如下技术特征: 图1 AVS2编码框架 1.灵活的编码结构划分 为了满足高清和…

AVS2解码图像管理

前言 对于解码器来说,解码得到的重建图像可能需要参与参考帧选择过程和输出排序过程。硬件解码器大概率不会将解码图像的相关操作硬件化,从而将此部分内容保留在软件端实现。 驱动工程师需要明确解码图像的管理逻辑,才能开发出硬件解码器的驱…

AVS2技术概述

转自公众号“智媒之音”:https://mp.weixin.qq.com/s?__bizMzI5Nzc4OTkxOQ&mid2247483715&idx1&snbb28272fd9b2baad9d4cccbe7c8ddcea&chksmecaef1f3dbd978e56764beb9d8ac69c753f3635716e9c449362f34f3c9e738870b1ffa00df4e#rd AVS2采用了传统的混…

【金三银四】设计模式面试题(2021最新版)

目录 前言 1.什么是设计模式 2.为什么要学习设计模式 3.设计模式分类 4.设计模式的六大原则 5.单例模式 5.1 什么是单例 5.2 哪些地方用到了单例模式 5.3 单例优缺点 5.4 单例模式使用注意事项: 5.5 单例防止反射漏洞攻击 5.6 如何选择单例创建方式 5.…

【Java架构师面试题】设计模式面试专题(共35题含答案)

设计模式(DesignPattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 本篇为设计模式面试专题,总共收…

一文整理总结常见Java后端面试题系列——设计模式篇(2022最新版)

关于作者 🐶 程序猿周周 ⌨️ 短视频小厂BUG攻城狮 🤺 如果文章对你有帮助,记得关注、点赞、收藏,一键三连哦,你的支持将成为我最大的动力 本文是《后端面试小册子》系列的第 1️⃣2️⃣ 篇文章,该系列将整…

C++面试题之设计模式及设计原则

六大设计原则 1)单一职责原则 类的职责单一,对外提供一个功能,函数也支持; 2)里氏替换原则 任何抽象类的出现都可以用他的实现类进行替换。 3)依赖倒置原则 依赖于抽象,不要依赖具体实现&#…

23种设计模式(常见面试题)

23种设计模式(常见面试题) 1.什么是设计模式? 答: 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。是一套用来提高代码可复用性、可维护性、可读性、稳健…

设计模式面试题(总结最全面的面试题!!!)

文章目录 设计模式什么是设计模式为什么要学习设计模式设计模式分类设计模式的六大原则开放封闭原则(Open Close Principle)里氏代换原则(Liskov Substitution Principle)依赖倒转原则(Dependence Inversion Principle…

【2022最新Java面试宝典】—— 设计模式面试题(14道含答案)

目录 1.什么是设计模式2.为什么要学习设计模式3.设计模式分类4.设计模式的六大原则5.单例模式1.什么是单例2.那些地方用到了单例模式3.单例优缺点4.单例模式使用注意事项:5.单例防止反射漏洞攻击6.如何选择单例创建方式7.单例创建方式 6.工厂模式1.什么是工厂模式2.…

java高频面试题-设计模式

1 你所知道的设计模式有哪些? Java 中一般认为有 23 种设计模式,我们不需要所有的都会,但是其中常用的几种设计模式应该去掌握。下面列出了所有的设计模式。需要掌握的设计模式我单独列出来了,当然能掌握的越多越好。 总体来说设…

Java常见设计模式面试题及答案

文章目录 1.设计模式是什么?你是否在代码中使用过?2. JDK 中常用的设计模式有哪些?3.单例模式是什么?请用 Java 写出线程安全的单例模式4.在 Java 中,什么叫观察者模式(observer design pattern&#xff09…

JAVA常见设计模式面试题

一、单例模式 java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、双重检查锁定 1.单例模式有以下特点:   a、单例类只能有一个实例。   b、单例类必须自己创建自己的唯一…