java - h.264解析训练

标签 java c++ c h.264

我试图理解解析 h.264 NAL 单元的过程(以提取有关切片、宏 block 等的信息),所以我正在为 h.264 编写简单的比特流解析器 是否有任何示例(训练)文件,例如,包含单个 NAL 单元或单个切片? 有谁知道我在哪里可以获得这样的训练数据? 谢谢

最佳答案

如果需要训练数据,可以从http://iphome.hhi.de/suehring/tml/download/下载H.264引用软件.请注意,此引用软件是用 C++ 编写的。不过,您不需要精通 C++,您需要能够构建编码器,然后就可以将其用作生成 .264 数据的工具。

bin 目录包含 .yuv 文件(未压缩的原始文件),然后使用配置文件可以生成 .264 文件。如果您想要指定的单个 NAL 单元,您可以通过配置文件将编码器配置为仅使用 FramesToBeEncoded 参数对单个视频帧进行编码。如果您使用十六进制编辑器打开生成的 .264,您可以通过它们的起始代码识别 NAL 单元。通过调整配置文件,您应该能够生成所需的测试数据。

请注意,即使您只生成一帧,.264 文件中也可能有多个 NAL 单元,因为序列和图片参数集已添加到 IDR 帧之前。您可以通过搜索起始代码轻松地隔离和分离,例如在 C++ 中。

关于java - h.264解析训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5595390/

相关文章:

c++ - 如何在 C++ 中使用 std::vector 作为 std::unordered_map 的键类型?

c - 关于 float 和舍入的问题

java - Ubuntu 上的 Eclipse : Web Deployment Assembly only copy folders without content

java - 使现有的 Java 接口(interface)发挥作用是否存在危险?

c++ - 运算符重载 C++

c++ - error_code 的格式说明符是什么?

java - 限制从 bean 定义注入(inject),而不是从 Autowiring 端注入(inject)(bean 不可隐式注入(inject))

BigDecimal 类中的 Java 运行时错误 "Non-terminating decimal expansion; no exact representable decimal result"

c - 即使您的网络连接断开,套接字是否仍然可写?

c - typedef name *aliasname 的目的是什么