目录
- 参考
- 概述
- 使用AOMAnalyzer
- 3.1 Local Analyzer
- 3.2 Online Analyzer
1. 参考
- [1] AOM Analyzer
- [2] github.com/mbebenita/aomanalyzer
- [3] elecard.com/products/video-analysis/streameye
- [4] 施华德/AV1 码流分析器的搭建
- [5] LiveVideoStack/在浏览器中分析AV1码流
- [6] github.com/xiph/rav1e
- [7] stackoverflow/Disable same origin policy in Chrome
2. 概述
码流分析工具帮助Codec开发人员快速分析定位问题,也帮助人们学习视频编码相关的知识。
码流分析工具:
- StreamEye:新版已支持AV1,商业付费的,在“音视频分析工具StreamEye介绍”中介绍了它的一些功能。
-
AOM Analyzer:AV1、VP9的码流分析工具,开源项目,支持在线和本地分析。
- AOM Analyzer提供了一个在线的demo
- “在浏览器中分析AV1码流”是AOM Analyzer的开发者对工具的介绍。
3. 使用AOMAnalyzer
有两种方式:Local Analyzer和Online Analyzer
本文主要是介绍“使用Online Analyzer分析本地文件”的方法。
3.1. Local Analyzer
Local Analyzer版本是一个基于electron实现的客户端,支持 Mac Linux Windows
多个平台。
安装本地分析版本的步骤:
- 下载AOM Analyzer。
- 下载inspect.js和inspect.wasm并且保存在相同的目录。
- inspect.js就是解码器的实现,是通过Emscripten编译工具把libaom编译成的js版本
,上面下载的是已经编译好的一个版本。 - 如果要集成最新的libaom,参考[2][4]中的步骤。可能有一些坑,安装 Emscripten的过程我就觉得很慢。
- 执行
AOMAnalyzer path_to_inspect.js output.ivf
- 若直接打开AOMAnalyzer不指定js解码文件和ivf文件,打开的是默认的界面,只能选择来自网站
https://arewecompressedyet.com/
产生的码流进行分析。
很简单吧。
但是为什么我安装windows版本为什么有问题呢?一直在Loading,提示“Loading Decoders”,打开本地的文件和选择arewecompressedyet的数据都这个问题。
image.png
- 没有什么更多的错误提示,没找到有错误日志文件,不知道什么问题。
- AomAnalyzer项目的issues中有一个相关的问题issue#68:AOMAnalyser unable to decode frame on windows,反馈linux版本正常,但是windows版本有问题。说windows版本需要在inspect.js中改inspect.wasm文件路径的格式。修改方法没有写的很明确,没有找到修改的地方。
- 暂时先搁置了,先看看Online Analyzer的方法怎么用。
- 有找到解决方法的小伙伴请回复一下。
3.2. Online Analyzer
在线版本使用起来要更加灵活,通过浏览器的控制台也方便查看软件运行的一些问题。
步骤如下
- 把要分析的
.ivf
文件放在支持CORS(Cross-Origin Resource Sharing)的web服务器上。 - 把下面url中的f参数设置为你的文件在网络上的地址,如
https://arewecompressedyet.com/analyzer/?d=https://people.xiph.org/~mbebenita/analyzer/inspect.js&f=path_to_output.ivf
,
- 比如AOM Analyzer提供的在线的demo的url为
https://arewecompressedyet.com/analyzer/?maxFrames=10&d=https://people.xiph.org/~mbebenita/analyzer/inspect.js&f=https://people.xiph.org/~mbebenita/analyzer/output.ivf
下面介绍一种简便的搭建本地服务的方法,来实现使用在线工具分析本地文件。
- chrome安装Websever for chome插件,安装后点击启动,选择一下工作目录,Websever for chome的界面如下所示。
- 前面提到服务器要支持CORS(Cross-Origin Resource Sharing),否则访问的时候会提示相应的错误,访问不到的文件资源。参照[7]中关闭这个策略方法可以简单绕开这个问题。
//Win+R键打开运行窗口,执行下面的命令,会打开一个关闭安全模式的chrome。
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
- 把要分析的文件放到Websever指定的工作目录下。
- 在关闭安全模式的chrome访问在线工具,f指定为文件在本地服务上的地址,如
https://arewecompressedyet.com/analyzer/?d=https://people.xiph.org/~mbebenita/analyzer/inspect.js&f=http://127.0.0.1:8887/julin_5s.ivf
image.png
下面是用rav1e编码的一个AV1视频使用AOMAnalyzer在线版本分析的界面。
AomAnalyzer.png