引言
研究视频编解码的都知道,少不了各类的分析工具助力标准研究和算法开发,目前最出名的流媒体分析工具就是elecard系列,但基于一些原因可能大家用的都比较少。因此,找到合适的码流分析工具才是编解码研究的便捷途径,最近发现了 HEVCESBrowser 这个工具,整体虽然不如elecard系列,但也是不错的HEVC码流分析工具了。
HEVC码流
HEVC(High Efficiency Video Coding,即H.265)是一种高效视频编码标准,其码流采用分层结构设计,主要由视频参数集(VPS)、序列参数集(SPS)、图像参数集(PPS)以及图像数据单元(如IDR帧、普通帧)组成。HEVC码流基于网络抽象层(NAL)封装,每个NAL单元(NALU)包含头部和负载数据,头部标识类型(如VPS、SPS、帧内/帧间编码数据等),负载承载编码后的语法元素和残差信息。
相较于H.264,HEVC通过四叉树结构的编码单元(CU)划分、灵活的预测单元(PU)和变换单元(TU)优化,显著提升了压缩效率。其码流支持随机访问点(CRA帧)和并行处理特性,适用于超高清视频传输。通过工具如Elecard HEVC Analyzer可解析码流中的CU/PU/TU划分、运动向量及残差信息,便于编码优化和故障诊断。
HEVCESBrowser 使用教程
HEVCESBrowser 应用程序用于显示 HEVC 原始码流的语法元素。HEVCESBrowser 的输入文件必须是未经过复用的原始码流(elementary stream)。如果需要分析包含在容器(例如 .ts 或 .mp4 文件)中的视频,则必须先进行解复用(demuxing)。例如,你可以使用 ffmpeg 工具来完成此操作:
bash
ffmpeg -i your_file -vcodec copy -an video.h265
HEVCESBrowser 同时提供了图形界面(GUI)和命令行界面(CLI)两种应用程序。
GUI
-
已为 Windows 系统提供了预编译的二进制文件:最新版
-
下载后的文件:
-
GUI界面:点击"File"就可以选择相应的HEVC流。
-
HEVC流显示示例:
CLI
- 安装依赖:
bash
- boost (for testing only)
- qt5
brew: brew install qt5
- 构建:
bash
cd hevcesbrowser
git submodule init && git submodule update
mkdir project
cd project
cmake ../
make
cd ../utils/hevc_es_browser_gui/
qmake hevc_es_browser_gui.pro
make gitinfo
make
备注
- 因为该项目是完全开源,大家可以根据个人需求进行源码的修改、定制化处理。