h264 h265 nal type计算方式 关键帧判断

简介: h264 h265 nal type计算方式 关键帧判断

来自老陈的 media-server

h265

nal_type = (nalu[0] >> 1) & 0x3f;

判断一个h265 nal单元是否是I帧

// Rec. ITU-T H.265 v4 (12/2016) (p26)
// intra random access point (IRAP) picture: 
//   A coded picture for which each VCL NAL unit has nal_unit_type 
//   in the range of BLA_W_LP to RSV_IRAP_VCL23, inclusive.
static int mpeg_h265_find_keyframe(const uint8_t* p, size_t bytes)
{
  size_t i;
  uint8_t type;
  for (i = 2; i + 1 < bytes; i++)
  {
    if (0x01 == p[i] && 0x00 == p[i - 1] && 0x00 == p[i - 2])
    {
      type = (p[i + 1] >> 1) & 0x3f;
      if (type < 32)
        return (16 <= type && type <= 23) ? 1 : 0;
    }
  }
  return 0;
}
目录
相关文章
|
Web App开发 编解码 安全
【WebRTC 入门教程】全面解析WebRTC:从底层原理到Qt和FFmpeg的集成应用
【WebRTC 入门教程】全面解析WebRTC:从底层原理到Qt和FFmpeg的集成应用
6480 2
|
缓存 网络协议 Linux
解决github图片及网页加载不出来
解决github图片及网页加载不出来
642 3
|
8月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
843 29
|
数据可视化
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Date/Time Edit的使用及说明
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Date/Time Edit的使用及说明
1525 2
SeLinux 权限配置技巧
SeLinux 权限配置技巧
414 2
|
XML JSON JavaScript
推荐一个比较好用的c++版本http协议库-cpp-httplib
推荐一个比较好用的c++版本http协议库-cpp-httplib
1394 1
|
安全 搜索推荐 开发工具
“大厂”角力移动办公系统市场,钉钉和企微向左、WorkPlus向右
随着互联网行业的发展,移动办公软件市场在中国迅速崛起,2021年市场规模达264.2亿元,预计2023年将增长至330.1亿元。钉钉和企业微信成为市场领导者,凭借其内部管理与协同功能吸引大量用户。两者虽有相似之处,但各有特色,钉钉侧重内部管理,企业微信注重内外部连接。然而,SaaS模式的数据安全性和定制化能力成为挑战,部分企业转向私有化部署,如WorkPlus,它提供全私有化、个性化定制和系统集成解决方案。政策推动数字化发展,移动办公行业迎来机遇,不同厂商可根据客户需求提供SaaS或私有化部署服务。
393 1
|
存储 编解码 缓存
libfdk_aac音频采样数和编码字节数注意
libfdk_aac音频采样数和编码字节数注意
508 0
|
编解码 网络协议 网络性能优化
RTP/RTCP 协议讲解
RTP/RTCP 协议讲解
2496 0
|
编解码 C++
国标GB28181协议客户端开发(四)实时视频数据传输
国标GB28181协议客户端开发(四)实时视频数据传输
873 0