参考网站
https://aomedia.googlesource.com/aom/
编译工具和依赖库
-
CMake
-
Git
-
Perl
-
官网下载安装:https://www.perl.org/get.html
-
我的百度云下载安装:链接:https://pan.baidu.com/s/1ZSsE2nevhW7ZMMSY1QzE-Q?pwd=unel
提取码:unel安装完成之后在终端输入:
perl -v出现以下输出则表示成功

-
-
yasm
链接:https://yasm.tortall.net/Download.html
下载完成之后重命名为
yasm.exe,并且配置环境变量。 -
Doxygen
链接:https://doxygen.nl/download.html,需要安装 1.8.10 以上版本
-
EMSDK
链接:https://github.com/emscripten-core/emsdk,需要安装 Python3.6.0 以上版本
在终端进入代码路径之后输入以下命令:
emsdk.bat update #更新 emsdk.bat install latest #安装最新的emsdk emsdk.bat activate latest #激活 emsdk_env.bat #设置环境变量安装完成之后在终端输入:
emcc -v,出现以下输出则表示成功:

在 Windows 环境下,如果想把 Emscripten 的环境变量注册为全局变量,可以以管理员身份运行
emsdk.bat activate latest --global,或者手动配置环境变量,来更改系统的环境变量,使得以后无需再运行emsdk_env.bat,该方法有潜在的副作用:它将环境变量指向了 Emscripten 内置的 Node.js、Python、Java,若系统中安装了这些组件的其他版本,可能引发冲突。
下载源代码
-
官方链接:
git clone https://aomedia.googlesource.com/aom -
即使可以科学上网,但是官方链接我一直无法下载,所以我去谷歌的 AV1 论坛(https://groups.google.com/a/aomedia.org/g/av1-discuss)找了一份代码,链接:https://storage.googleapis.com/aom-releases/libaom-3.4.0.tar.gz
编译
使用 CMake 生成 VS 解决方案
打开 CMake 软件,设置代码路径,生成路径,点击 Configure 按钮

选择自己的 VS 版本

根据需求手动修改配置(不修改也可以),点击 Generate 按钮

看到以下 2 行说明生成成功:

编译
-
进入 build 目录,打开 AOM.sln
-
设置 aomenc/aomdec 为启动项,右键生成

使用
编码示例:
aomenc.exe --fps=30/1 --width=320 --height=256 --max-q=22--psnr --obu --bit-depth=8 -y -o str.bin E:\Sequence\foreman-cif_320x256.yuv
解码示例:
aomdec.exe --i420 -o rec.yuv str.bin
所有可调的编码参数:
Options:
--help Show usage options and exit
-c <arg>, --cfg=<arg> Config file to use
-D, --debug Debug mode (makes output deterministic)
-o <arg>, --output=<arg> Output filename
--codec=<arg> Codec to use
-p <arg>, --passes=<arg> Number of passes (1/2/3)
--pass=<arg> Pass to execute (1/2/3)
--fpf=<arg> First pass statistics file name
--limit=<arg> Stop encoding after n input frames
--skip=<arg> Skip the first n input frames
--good Use Good Quality Deadline
--rt Use Realtime Quality Deadline
--allintra Use all intra mode
-q, --quiet Do not print encode progress
-v, --verbose Show encoder parameters
--psnr=<arg> Show PSNR in status line (0: Disable PSNR status line display, 1: PSNR calculated using input bit-depth (default), 2: PSNR calculated using stream bit-depth); takes default option when arguments are not specified
--webm Output WebM (default when WebM IO is enabled)
--ivf Output IVF
--obu Output OBU
--q-hist=<arg> Show quantizer histogram (n-buckets)
--rate-hist=<arg> Show rate histogram (n-buckets)
--disable-warnings Disable warnings about potentially incorrect encode settings
-y, --disable-warning-prompt Display warnings, but do not prompt user to continue
--test-decode=<arg> Test encode/decode mismatch

本文详细介绍了AV1编解码器的安装过程,包括CMake、Git、Perl、Yasm、Doxygen和Emscripten SDK的安装步骤。提供了从官方及替代来源获取源代码的方法,并指导如何使用CMake生成Visual Studio解决方案进行编译。此外,还列出了编码器`aomenc`和解码器`aomdec`的参数选项,涵盖编码质量、速率控制、关键帧放置和AV1特定设置等多个方面。

1万+

被折叠的 条评论
为什么被折叠?



