对海康28181摄像头PS流解码的支持(一)
背景
我们的项目是基于sip的IMS系统,需要添加对海康28181摄像头的支持,所以分为以下几步:
- 向海康摄像头发起点播请求,基于sip.
- PS流过来后,剥出h264流.
- 对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流解码的支持(一)相关推荐
- java ps h264_从海康28181的PS流解析H264的补充
前文 <简单解析海康PS流获取H264> 针对海康摄像头的PS流解析做了简单处理,基本逻辑是正确的,但最近几个摄像头出现了一些奇怪的问题,需要针对相关现象进行查询. RTP传输层 项目中为 ...
- 海康28181摄像头接入的注意点
对一个海康摄像头以28181协议接入(海康摄像头设备级的接入,非系统级别接入),分为两步: 通过sip invite将海康的ps流拉出来,由于是设备级的接入,所以直接对摄像头进行invite发起点播( ...
- 海康摄像头PS流格式解析(RTP/PS/H264)
海康威视视频录像以PS格式打包,解析的过程按照PS包-->system header--->program stream map--->音视频PES包一路下来,海康在包中自定义了一些 ...
- JavaCV音视频开发宝典:使用JavaCV读取海康平台或海康网络摄像头sdk回调录像回放视频PS码流并解析预览图像
<JavaCV音视频开发宝典>专栏目录导航 <JavaCV音视频开发宝典>专栏介绍和目录 前言 上一章中<JavaCV音视频开发宝典:使用JavaCV读取海康平台或海 ...
- 多路海康网络摄像头数据实时回调(采用软解码方式)
由于项目中需要访问多路海康摄像头的原始图像进行相关处理,搜索了大量的博客,对于多路海康摄像头回调都没有写的很清楚明白,看到此博客的你,静下心来研读下面的内容,你将会很容易调取多路海康网络摄像头. (1 ...
- 海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP)
海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP) 问题分析 转码推rtmp PS流转封装 码云(Gitee)主页:https://gitee.com/banmaj ...
- 海康网络摄像头实时视频预览(流媒体转码推流 red5,nginx-rtmp,ffmpeg)
海康网络摄像头实时视频预览(流媒体转码推流 red5,nginx-rtmp,ffmpeg) 实现思路 获取摄像头rtsp流→流媒体拉流转码推流成rtmp流(网页具备flash可播放)→根据rtmp流地 ...
- [Rtsp]海康网络摄像头基于RTSP协议的windows平台监控
[Rtsp]海康网络摄像头基于RTSP协议的windows平台监控 基于RTSP协议的windows平台监控. 1. 基于RTSP协议的windows平台监控. 1.1 选取海康网络摄像头(支持RT ...
- 海康将摄像头传输过来的rtsp协议转换成rtmp
本文转自:海康将摄像头传输过来的rtsp协议转换成rtmp 如何将rtsp协议转换成rtmp协议在线直播,其实没有方案.至少目前我还不知道有哪种方案可以实现,但是EasyDrawin这个开源的流媒体服 ...
最新文章
- hbase异步客户端连接-非阻塞并发模式实验记录(还没弄完)
- solr java 全量,Solr实时创建增量或全量索引
- vue 限制输入字符长度
- 转:canvas--放大镜效果
- P3157 动态逆序对 ,树状数组套动态开点线段树
- csrf攻击ajax,如何在使用ajax post时处理CSRF攻击?
- Shell:dos新建sh脚本在linux下执行报错“/bin/sh^M”
- matlab 状态空间的波特图,MATLAB:对于状态空间方程的系统辨识
- 学习项目管理PRINCE2有什么用??
- C++ error C3867 请使用 ““ 来创建指向成员的指针
- Python学习--识别“字符串字典列表元组“
- 19.04.13--指针笔记
- VB查询ACCESS数据库内容
- 微机原理课程设计-接口芯片编程记录
- 传统优化算法VS智能优化算法
- CDSP认证是什么?数据安全认证专家含金量大吗?
- TabLayout的Indicator自定义宽度
- 深入理解 OpenStack Neutron:VXLAN
- 计算机常用的网络安全技术有哪些,简述计算机的网络安全技术有哪些常用技术?...
- 常用的前端在线引用JS