背景

我们的项目是基于sip的IMS系统,需要添加对海康28181摄像头的支持,所以分为以下几步:

  1. 向海康摄像头发起点播请求,基于sip.
  2. PS流过来后,剥出h264流.
  3. 对h264流进行解码.

一.发起sip请求

按照GB28181的规范,sip头域必须携带subject字段,to字段必须是摄像头的视频编码通道ID,sdp中s行固定为play,需添加一个a行描述为PS流,sdp中不可携带audio信息,详细可见这里的描述:28181摄像头sip格式

二.分析PS流结构

由于之前没有接触过ps流的格式,所以在网上看了下mpeg-2 ps流的介绍,感觉还是模棱两可。突然想起live555是支持mpg文件,所以直接看live555的源码,发现live555中就支持对mpeg-2的解析,同sip终端将拉过来的海康摄像头PS流存文件,用live555进行调试,发现live555解析失败,通过打开日志查看,原来live555中没有对ps system map进行解析,所以当出现这种类型的包时,其认为是video sequence slice包,所以会解析失败。

live555中有对整个解析过程都有日志打印,并且整个解析代码写的很清晰,通过对解析过程日志的分析,可以得出HK 28181摄像头 PS流的封包格式

PSheader| PS system header | PS system Map | PES header | h264 raw data

三.总结

虽然网上也有很多对海康PS流格式的描述,但是对从来没有接触过的人来说,光看文字描述还是过于抽象。在音视频开发领域,协议和格式是有限的,有很多优秀的开源项目供提供了广泛的支持,对陌生的格式或协议,通过借鉴开源项目,可以加深自己对格式或协议的理解。

对海康28181摄像头PS流解码的支持(一)相关推荐

  1. java ps h264_从海康28181的PS流解析H264的补充

    前文 <简单解析海康PS流获取H264> 针对海康摄像头的PS流解析做了简单处理,基本逻辑是正确的,但最近几个摄像头出现了一些奇怪的问题,需要针对相关现象进行查询. RTP传输层 项目中为 ...

  2. 海康28181摄像头接入的注意点

    对一个海康摄像头以28181协议接入(海康摄像头设备级的接入,非系统级别接入),分为两步: 通过sip invite将海康的ps流拉出来,由于是设备级的接入,所以直接对摄像头进行invite发起点播( ...

  3. 海康摄像头PS流格式解析(RTP/PS/H264)

    海康威视视频录像以PS格式打包,解析的过程按照PS包-->system header--->program stream map--->音视频PES包一路下来,海康在包中自定义了一些 ...

  4. JavaCV音视频开发宝典:使用JavaCV读取海康平台或海康网络摄像头sdk回调录像回放视频PS码流并解析预览图像

    <JavaCV音视频开发宝典>专栏目录导航 <JavaCV音视频开发宝典>专栏介绍和目录 ​ 前言 上一章中<JavaCV音视频开发宝典:使用JavaCV读取海康平台或海 ...

  5. 多路海康网络摄像头数据实时回调(采用软解码方式)

    由于项目中需要访问多路海康摄像头的原始图像进行相关处理,搜索了大量的博客,对于多路海康摄像头回调都没有写的很清楚明白,看到此博客的你,静下心来研读下面的内容,你将会很容易调取多路海康网络摄像头. (1 ...

  6. 海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP)

    海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP) 问题分析 转码推rtmp PS流转封装 码云(Gitee)主页:https://gitee.com/banmaj ...

  7. 海康网络摄像头实时视频预览(流媒体转码推流 red5,nginx-rtmp,ffmpeg)

    海康网络摄像头实时视频预览(流媒体转码推流 red5,nginx-rtmp,ffmpeg) 实现思路 获取摄像头rtsp流→流媒体拉流转码推流成rtmp流(网页具备flash可播放)→根据rtmp流地 ...

  8. [Rtsp]海康网络摄像头基于RTSP协议的windows平台监控

    [Rtsp]海康网络摄像头基于RTSP协议的windows平台监控 基于RTSP协议的windows平台监控. 1.  基于RTSP协议的windows平台监控. 1.1 选取海康网络摄像头(支持RT ...

  9. 海康将摄像头传输过来的rtsp协议转换成rtmp

    本文转自:海康将摄像头传输过来的rtsp协议转换成rtmp 如何将rtsp协议转换成rtmp协议在线直播,其实没有方案.至少目前我还不知道有哪种方案可以实现,但是EasyDrawin这个开源的流媒体服 ...

最新文章

  1. hbase异步客户端连接-非阻塞并发模式实验记录(还没弄完)
  2. solr java 全量,Solr实时创建增量或全量索引
  3. vue 限制输入字符长度
  4. 转:canvas--放大镜效果
  5. P3157 动态逆序对 ,树状数组套动态开点线段树
  6. csrf攻击ajax,如何在使用ajax post时处理CSRF攻击?
  7. Shell:dos新建sh脚本在linux下执行报错“/bin/sh^M”
  8. matlab 状态空间的波特图,MATLAB:对于状态空间方程的系统辨识
  9. 学习项目管理PRINCE2有什么用??
  10. C++ error C3867 请使用 ““ 来创建指向成员的指针
  11. Python学习--识别“字符串字典列表元组“
  12. 19.04.13--指针笔记
  13. VB查询ACCESS数据库内容
  14. 微机原理课程设计-接口芯片编程记录
  15. 传统优化算法VS智能优化算法
  16. CDSP认证是什么?数据安全认证专家含金量大吗?
  17. TabLayout的Indicator自定义宽度
  18. 深入理解 OpenStack Neutron:VXLAN
  19. 计算机常用的网络安全技术有哪些,简述计算机的网络安全技术有哪些常用技术?...
  20. 常用的前端在线引用JS

热门文章

  1. 第四章降魔有道,道法无边
  2. 个性定制礼品将取代原有礼品市场成主流
  3. 《读九章算术学Python》如何用Python编程实现开立方术?附图解分析、代码实现和习题解答
  4. 【3】KVM虚拟化存储 | 虚拟机磁盘挂载
  5. linux系统网络优先级,Linux系统进程优先级
  6. Javascript中的数组方法总结
  7. office 2013下载及安装方案
  8. MySQL||默认值约束(Default)
  9. lammps教程:聚合物压缩,避免“bond atoms missing”
  10. AXI4 STREAM DATA FIFO