[AV1] AV1 Reference Software

返回目录

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

软件下载

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文件夹中,那么在建立文件夹的时候,可以这么建立。
aom和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支持的编码器命令
aomhelper

下面我们来把编码器跑起来,先将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

这里的参数和上面编码器的参数用法是一致的。

猜你喜欢

转载自blog.csdn.net/starperfection/article/details/109146190
今日推荐