论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3 ...
FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器 ...
前进之路
金牌会员
|
2024-5-20 14:06:13
|
显示全部楼层
|
阅读模式
楼主
主题
847
|
帖子
847
|
积分
2541
AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制定工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提拔了约30%。 libuavs3d是AVS3标准的解码器,最高可支持8K/60P视频实时解码,支持windows/linux/arm/ios等全部常用平台,在移动端最高支持4K/30fps视频实时解码,解码速率大幅领先AV1开源解码器dav1d和aomdec。
在《FFmpeg开发实战:从零底子到短视频上线》一书的“8.1.2 给FFmpeg集成avs2”先容了怎样在Windows环境给FFmpeg集成AVS2的编解码器,其实也能给FFmpeg集成AVS3的解码器libuavs3d。详细的集成步骤说明如下。
一、编译AVS3的解码器libuavs3d
libuavs3d的源码托管在https://github.com/uavs3/uavs3d,留意要下载master的主干代码,不可下载2019年的1.0版本代码(该版本的源码编译有问题)。主干代码的下载地点是https://codeload.github.com/uavs3/uavs3d/zip/refs/heads/master,把该链接复制到欣赏器地点再按回车键,即可开始下载源码包。
libuavs3d的编译步骤说明如下。
1、解压下载好的压缩包,双击运行uavs3d-master源码目录下的version.bat,以便生成头文件version.h。
2、启动Visual Studio 2022,在欢迎页面单击右侧的“打开项目或解决方案”,在弹出的文件对话框中选择uavs3d-master/build/vs2017目录下的uavs3d.sln。
3、等待Visual Studio打开uavs3d-master工程,依次选择顶部菜单“生成”→“配置管理器”,在打开的配置管理器界面上,找到左上角的“活动解决方案配置”下拉框,把Debug模式改为Release模式,再单击右下角的关闭按钮。
4、右击界面右侧解决方案列表中的common,选择右键菜单底部的“属性”。在弹出的属性窗口中,将右侧常规属性列表中的“Windows SDK 版本”这项改为“10.0(最新安装的版本)”,将“平台工具集”这项改为“Visual Studio 2022(v143)”,目的是把这两项的值改为自己电脑上的版本。
5、右击界面右侧解决方案列表中的libuavs3d,选择右键菜单底部的“属性”。在弹出的属性窗口中,将右侧常规属性列表中的“Windows SDK 版本”这项改为“10.0(最新安装的版本)”,将“平台工具集”这项改为“Visual Studio 2022(v143)”,目的是把这两项的值改为自己电脑上的版本。
6、单击界面右侧解决方案列表中的libuavs3d,再依次选择顶部菜单“生成”→“生成libuavs3d”(或“Build libuavs3d”)。等待生成完毕,可在uavs3d工程的uavs3d-master/bin目录下找到uavs3d的库文件(包括libuavs3d.dll和libuavs3d.lib)。
二、安装AVS3的解码器libuavs3d
虽然Visual Studio把libuavs3d的dll库文件编译了出来,但是若想让FFmpeg识别libuavs3d,还得依照相应的目录结构放入libuavs3d的库文件和头文件,从而模仿Linux环境的安装效果。详细的安装步骤参考《FFmpeg开发实战:从零底子到短视频上线》一书的第8章的“8.1.4 给FFmpeg集成freetype”。
(1)在msys64的/usr/local目录下新建libuavs3d目录,并在该目录下创建lib子目录;
(2)把uavs3d工程中uavs3d-master/bin目录下的libuavs3d.lib和libuavs3d.dll两个文件复制到上面第一步创建的lib目录;
(3)在lib目录下创建pkgconfig子目录,并在pkgconfig目录下新建文件uavs3d.pc,给该pc文件填入以下的配置内容。
prefix=/usr/local/libuavs3d
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: uavs3d
Description: AVS3 decoder library
Version: 1.2.0
Libs: -L${libdir} -luavs3d -lm -lpthread
Cflags: -I${includedir}
复制代码
(4)在libuavs3d目录下创建include目录,并把uavs3d工程的uavs3d-master/source/decoder/uavs3d.h复制到include目录下。
经过以上步骤操作后的libuavs3d目录结构如下所示:
/usr/local/libuavs3d
|--------------- lib
| |-- libuavs3d.lib
| |-- libuavs3d.dll
| |-- pkgconfig
| |----- uavs3d.pc
|--------------- include
复制代码
(5)接着给环境变量PKG_CONFIG_PATH添加libuavs3d的pkgconfig路径,也就是在/etc/profile文件末尾添加如下一行内容。
export PKG_CONFIG_PATH=/usr/local/libuavs3d/lib/pkgconfig:$PKG_CONFIG_PATH
复制代码
(6)保存并退出profile文件后,在MSYS窗口中实行下面下令重新加载环境变量。
source /etc/profile
复制代码
(7)实行下面下令查看当前的环境变量,发现PKG_CONFIG_PATH的修改已经收效。
env | grep PKG_CONFIG_PATH
复制代码
三、让FFmpeg启用libuavs3d
由于FFmpeg默认未启用libuavs3d,因此必要重新配置FFmpeg,标明启用libuavs3d,然后重新编译安装FFmpeg。FFmpeg的Windows环境完整编译过程参见《FFmpeg开发实战:从零底子到短视频上线》一书的“8.1 Windows环境编译FFmpeg”,详细的启用步骤说明如下。
1、回到FFmpeg源码的目录,实行以下下令重新配置FFmpeg,主要增加启用libuavs3d。(增加了选项--enable-libuavs3d)
./configure --prefix=/usr/local/ffmpeg --arch=x86_64 --enable-shared --disable-static --disable-doc --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libdavs2 --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libfreetype --enable-sdl2 --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libopus --enable-libvpx --enable-libass --enable-libfribidi --enable-libxml2 --enable-fontconfig --enable-openssl --enable-libuavs3d --enable-iconv --enable-zlib --extra-cflags='-I/usr/local/lame/include -I/usr/local/libogg/include -I/usr/local/amr/include' --extra-ldflags='-L/usr/local/lame/lib -L/usr/local/libogg/lib -L/usr/local/amr/lib' --cross-prefix=x86_64-w64-mingw32- --target-os=mingw32
复制代码
2、运行下面下令编译FFmpeg。
make clean
make -j4
复制代码
3、实行下面下令安装FFmpeg。
make install
cp /usr/local/libuavs3d/lib/*.dll /usr/local/ffmpeg/bin
复制代码
4、运行以下下令查看FFmpeg的版本信息。
ffmpeg -version
复制代码
查看控制台回显的FFmpeg版本信息,找到“--enable-libuavs3d”,说明FFmpeg精确启用了AVS3的解码器libuavs3d。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
前进之路
金牌会员
这个人很懒什么都没写!
楼主热帖
低代码平台 - 危险的赌注
后台性能测试规范
Redis常见使用场景
小小项目-博客系统 - 服务器版本 - jav ...
Docker 基础 - 1
实用五步法教会你指标体系的设计与加工 ...
泛型通配符?(问号)简介说明 ...
端午假期整理了仿天猫H5 APP项目vue.js ...
MacOS升级12.3后,Jenkins打包环境问题 ...
HTML和CSS总结
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表