video-encoding - 如何识别 H 265 流中的 Iframe?

标签 video-encoding hevc video-codecs h.265

我正在开发一个 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/

相关文章:

ffmpeg avcodec lib 在 ff_hevc_sao_edge_filter_32_8_avx2() 上崩溃

video - 使用 ffmpeg 解码基本 HEVC 流

video - 查找编码比特流中的帧大小

3d - x264/ffmpeg 中的 h.264 MVC 3D 支持

android - Android 上的硬件加速 FFmpeg?

Android MediaCodec 更改分辨率

c++ - ffmpeg::avcodec_encode_video 设置 PTS h264

家庭视频的 FFMPEG 配置

visual-c++ - 视频文件编码和解码的主要区别

linux - 在 Windows、Linux 或 Mac 上以编程方式捕获单独程序的窗口