返回目录
AV1 Reference Software 版本发布(官方Tag)
版本 | 发布日期 |
---|---|
v0.1.0 | 2017-06-09 |
v1.0.0 | 2018-06-25 |
v1.0.0-errata1 | 2019-01-18 |
v2.0.0 | 2020-05-18 |
v3.0.0 | 2021-03-23 |
软件下载
Libav1的下载地址在谷歌的服务器上,国内需要科学上网才能访问得到。
官方下载地址:https://aomedia.googlesource.com/aom/
如果访问不到,可以到我导入的一个镜像去下载,我会定期更新。
仓库地址:https://github.com/starxiang/libaom.git
在官方网站上有详细的如何编译运行的教程,我这里简单地说几个要点,有见过很多朋友即使是看了那个教程也出现各种编译错误地情况。
首先,把官方说明的cmake,Git,perl,yasm安装好
安装的时候,注意有些软件需要更名,比如yasm.exe,然后还有需要加入系统环境变量的也需要设置好。
如果是visual studio的安装的话,需要把visual studio的c++环境配好,建议装的都装好,然后还有Python也需要装。
如果这些装了后还是报错,比如C/C++的环境没有找到之类的可以试试装个vc的包,我把这个包放到的CSDN的下载,(这个包安装完以后一定要**重启电脑!重启电脑!重启电脑!**重要的事情说三遍)
CSDN下载地址:https://download.csdn.net/download/starperfection/13081896
然后安装的时候,最好把源码与build目录放到同一级目录,比如说,我下载的源码的文件夹为aom,我打算把build的文件放入libaom文件夹中,那么在建立文件夹的时候,可以这么建立。
然后再使用官方提供的编译命令进行编译
$ git clone https://aomedia.googlesource.com/aom# By default, the above command stores the source in the aom directory:$ cd aom$ cmake path/to/aom$ make
这样的话一般会成功,编译成功后,会在文件夹中生成非常多个文件,我这里的情况是生成了1800多个
运行 Lib AV1
安装成功后,打开libaom文件中的 AOM.sln 解决方案就可以打开整套libaom av1项目。打开后首先重编译下整个解决方案。
其中aomenc项目是编码器的最顶端项目,主要依赖下面的几个项目
- aom
- aom_common_app_util
- aom_encoder_app_util
- aom_encoder_stats
aomdec项目是解码器的最顶端项目,主要依赖以下几个项目
- aom
- aom_common_app_util
- aom_decoder_app_util
以上的库都是给编码/解码过程提供库,在运行的时候可以参考aom的命令行帮助,在exe可执行文件生成的路径,使用aomenc.exe --help命令可以查看所以aom支持的编码器命令
下面我们来把编码器跑起来,先将aomenc设置为启动项目,然后build后生成exe可执行文件
./aomenc -o output.av1 -w 64 -h 64 --enable-keyframe-filtering=0 --min-q=27 --obu --annexb=1 --sb-size=64 --limit=1 --passes=1 foreman_64x64.yuv
上面的命令中
- -o 代表输出的文件
- -w 代表原始视频的宽
- -h 代表原始视频的高
- –enable-keyframe-filtering 代表在keyframe是否进行temporal filtering
- –min-q 最小的quantizer
- –obu表示输出的格式为obu序列
- –annexb=1代表遵循标准的AnnexB规定的OBU格式
- –sb-size代表Superblock的大小,可以最大选128
- –limit=1表示只编码一帧
- –passes表示编码过程只包含一次编码(默认会进行两次,即2pass编码)
- foreman_64x64.yuv表示输入的待压缩序列
这样子,编码执行完成后,output.av1的obu序列即会生成。
那么如果我们要播放这个流的时候,就需要把这个流给解码出来,所以我们可以使用下面的命令
./aomdec -o output.yuv --annexb output.av1
这里的参数和上面编码器的参数用法是一致的。