FFmpeg开发笔记(七十三)Windows给FFmpeg集成MPEG-5视频编解码器
MPEG-5现已开源MPEG-5 EVC的视频编解码器,其中视频解码器的开源库叫libxevd,视频编码器的开源库叫libxeve。如今EVC的编解码器libxevd和libxeve日渐成熟,从7.0版本开始的最新FFmpeg源码已经支持EVC的编解码器libxevd和libxeve。
接下来以微软的视窗系统为例,介绍如何在Windows环境给FFmpeg集成MPEG-5 EVC视频编解码器libxevd和libxeve,具体的操作步骤说明如下:
一、配置libxevd
libxevd是一款MPEG-5的EVC视频解码器。它的源码托管页面在https://github.com/mpeg5/xevd/,最新版本是2024年4月发布的xevd-0.5.0,该版本的源码包下载地址是https://codeload.github.com/mpeg5/xevd/tar.gz/refs/tags/v0.5.0。
libxevd的配置步骤说明如下。
1、下载最新的xevd源码,再把xevd源码包复制到MSYS环境的/usr/local/src目录下。接着在MSYS控制台执行下面命令解压源码包:
2、在xevd目录下创建新文件version.txt,文件内容填入“v0.5.0”,表示解码器的版本为0.5.0。
3、执行下面命令配置xevd:
配置完毕,会在build目录下找到XEVD.sln,这就是xevd的Visual Studio项目工程文件。
二、编译libxevd
在xevd工程的build目录下创建xevd.def,并往该文件填入以下内容(其中函数列表来自incxevd.h定义的函数):
打开Visual Studio 2022,在欢迎页面单击右侧的“打开项目或解决方案”,在弹出的文件对话框中选择xevd-0.5.0uild目录下的XEVD.sln。
打开xevd工程后,右击解决方案管理器的xevd_dynamic模块,右键菜单依次选择:属性→配置属性→链接器→输入,在窗口右侧的模块定义文件栏填写xevd.def的绝对路径。继续依次选择:配置属性→链接器→高级,在窗口右侧的导入库栏填写待生成xevd.lib的绝对路径。完成设置后,单击右下角的确定按钮,保存xevd.def和xevd.lib的路径配置。
依次选择顶部菜单:生成→配置管理器,在打开的配置管理器窗口上,找到左上角的“活动解决方案配置”下拉框,把Debug模式改为Release模式,再单击窗口右下角的关闭按钮。
依次选择顶部菜单:生成→生成→生成xevd_dynamic,Visual Studio就开始编译xevd_dynamic模块。编译过程可在Visual Studio界面下方观察,直到编译完成如下图所示。
此时可在xevd-0.5.0uildsrc_mainRelease目录下找到xevd.lib和xevd.dll,这两个文件就是编译生成的libxevd库文件。
三、安装libxevd
确保Windows系统已经按照《FFmpeg开发实战:从零基础到短视频上线》第一章“1.3 Windows系统安装FFmpeg”的说明安装配置了MSYS,再按照以下步骤在MSYS环境安装libxevd。
1、在msys64的/usr/local目录下新建libxevd目录,并在该目录下创建lib子目录;
2、把xevd工程中buildsrc_mainRelease目录下的xevd.lib和xevd.dll复制到第一步创建的lib目录;
3、在lib目录下创建pkgconfig子目录,并把xevd工程的buildxevd.pc复制到pkgconfig目录;然后打开xevd.pc,把开头四行改成下面这样。
4、在msys64的/usr/local/libxevd目录下创建include目录,然后把xevd工程中incxevd.h和buildxevd_exports.h复制到刚才创建的include目录;
经过以上步骤操作后的libxevd目录结构如下所示。
四、配置libxeve
libxeve是一款MPEG-5的EVC视频编码器。它的源码托管页面在https://github.com/mpeg5/xeve/,最新版本是2024年6月发布的xeve-0.5.1,该版本的源码包下载地址是https://codeload.github.com/mpeg5/xeve/tar.gz/refs/tags/v0.5.1。
注意:由于FFmpeg仅支持版本号大于等于0.5.1的libxeve,因此务必下载xeve-0.5.1,不可下载xeve-0.5.0。
libxeve的配置步骤说明如下。
1、下载最新的xeve源码,再把xeve源码包复制到MSYS环境的/usr/local/src目录下。接着在MSYS控制台执行下面命令解压源码包:
2、在xeve目录下创建新文件version.txt,文件内容填入“v0.5.1”,表示编码器的版本为0.5.1。
3、执行下面命令配置xeve:
配置完毕,会在build目录下找到XEVE.sln,这就是xeve的Visual Studio项目工程文件。
五、编译libxeve
在xeve工程的build目录下创建xeve.def,并往该文件填入以下内容(其中函数列表来自incxeve.h定义的函数):
打开Visual Studio 2022,在欢迎页面单击右侧的“打开项目或解决方案”,在弹出的文件对话框中选择xeve-0.5.1uild目录下的XEVE.sln。
打开xeve工程后,右击解决方案管理器的xeve_dynamic模块,右键菜单依次选择:属性→配置属性→链接器→输入,在窗口右侧的模块定义文件栏填写xeve.def的绝对路径。继续依次选择:配置属性→链接器→高级,在窗口右侧的导入库栏填写待生成xeve.lib的绝对路径。完成设置后,单击右下角的确定按钮,保存xeve.def和xeve.lib的路径配置。
依次选择顶部菜单:生成→配置管理器,在打开的配置管理器窗口上,找到左上角的“活动解决方案配置”下拉框,把Debug模式改为Release模式,再单击窗口右下角的关闭按钮。
依次选择顶部菜单:生成→生成→生成xeve_dynamic,Visual Studio就开始编译xeve_dynamic模块。编译过程可在Visual Studio界面下方观察,直到编译完成如下图所示。
此时可在xeve-0.5.1uildsrc_mainRelease目录下找到xeve.lib和xeve.dll,这两个文件就是编译生成的libxeve库文件。
六、安装libxeve
确保Windows系统已经按照《FFmpeg开发实战:从零基础到短视频上线》第一章“1.3 Windows系统安装FFmpeg”的说明安装配置了MSYS,再按照以下步骤在MSYS环境安装libxeve。
1、在msys64的/usr/local目录下新建libxeve目录,并在该目录下创建lib子目录;
2、把xeve工程中buildsrc_mainRelease目录下的xeve.lib和xeve.dll复制到第一步创建的lib目录;
3、在lib目录下创建pkgconfig子目录,并把xeve工程的buildxeve.pc复制到pkgconfig目录;然后打开xeve.pc,把开头四行改成下面这样。
4、在msys64的/usr/local/libxeve目录下创建include目录,然后把xeve工程中incxeve.h和buildxeve_exports.h复制到刚才创建的include目录;
经过以上步骤操作后的libxeve目录结构如下所示。
七、编译安装FFmpeg
先下载最新的FFmpeg源码(版本号需大于等于7.0),再把FFmpeg源码包复制到MSYS环境的/usr/local/src目录下。接着在MSYS控制台执行下面命令解压源码包:
确保MSYS环境已经按照《FFmpeg开发实战:从零基础到短视频上线》该书第八章的“8.1.1 给FFmpeg集成x264”和“8.1.5 给FFmpeg集成x265”安装了H.264的编码器libx264和H.265的编码器libx265,也按照该书第十章的“10.1.1 FFmpeg集成SDL”安装了Windows系统的SDL2库,并且按照之前的文章安装了H.266的编码器libvvenc,然后执行下面命令配置FFmpeg的编译环境:
配置完毕执行下面命令编译和安装FFmpeg,编译完成的ffmpeg库将会安装到configure指定的/usr/local/ffmpeg目录。
八、查看FFmpeg的安装结果
运行下面命令查看FFmpeg的安装版本:
上面命令返回的FFmpeg版本信息如下:
根据以上返回的版本信息,可知已安装的FFmpeg版本号为7.1.1,同时configuration这行找到“--enable-libxevd --enable-libxeve”,说明FFmpeg已经启用了MPEG-5 EVC视频编解码器libxevd和libxeve。
更多详细的FFmpeg开发知识参见
原文地址:https://www.cnblogs.com/aqi00/p/18980438