我正在开发一个 C++ 应用程序,其中我的应用程序从外部应用程序接收 H265 帧,并在需要时将其存储在磁盘上,但存储只需要从 I 帧开始,因为如果它从 P 帧开始,这些框架将毫无意义。 那么如何从中识别出I帧呢?
我是视频编码和解码的新手,我知道以下几点:
00 00 00 01
是 NAL 单元的开始- SPS 以 67 开头
- PPS 以 68 开头
最佳答案
以下是 H.265 的一些 NAL 单元类型:
- IDR = 19 或 20
- SPS = 33
- PPS = 34
所以你对 SPS、PPS 值的假设是不正确的。
NAL 单元结构:
“起始码”“字节”“有效负载”
要获取 NAL 单元类型,您必须执行 (Byte >> 1) & 0x3f
。
您需要查找 IDR 帧(即时解码器刷新;输入 19 或 20)。
关于video-encoding - 如何识别 H 265 流中的 Iframe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75808484/