海康ehome协议分析(2):预览请求

海康ehome协议分析(2):预览请求实时点播 1 信令开始点播 Platfrom gt gt Device Device gt gt Platform 停止点播 Platfrom gt gt Device Device gt gt Platfrom 2 视频流技术交流 1 信令开始点播 Platfrom gt gt Device xmlversion 1 0 encoding GB2312 PPVSPMessage Version 2 5 Version PPVSPMessage

1.信令

开始点播

Platfrom=>>Device:

<?xml version="1.0" encoding="GB2312" ?> <PPVSPMessage> <Version>2.5</Version> <Sequence>3566</Sequence> <CommandType>REQUEST</CommandType> <Method>MEDIA</Method> <Command>INVITESTREAM</Command> <Params> <!-- 请求设备通道号--> <Channel>1</Channel> <!-- 请求设备码流类型:MAIN:主码流,SUB:子码流,THIRD:三码流--> <ChannelType>MAIN</ChannelType> <SinkIP>192.168.1.133</SinkIP> <SinkPort>8000</SinkPort> </Params> </PPVSPMessage> 

Device=>>Platform:

<?xml version="1.0" encoding="GB2312"?> <PPVSPMessage> <Version>2.0</Version> <Sequence>3566</Sequence> <CommandType>RESPONSE</CommandType> <WhichCommand>INVITESTREAM</WhichCommand> <!-- 当前请求流后状态码,200标示成功,其他见错误码--> <Status>200</Status> <Description>OK</Description> <Params> <!-- 当前请求流位置标示,类似ssrc--> <Session></Session> </Params> </PPVSPMessage> 

停止点播

Platfrom=>>Device:

<?xml version="1.0" encoding="GB2312" ?> <PPVSPMessage> <Version>2.5</Version> <Sequence>8068</Sequence> <CommandType>REQUEST</CommandType> <Method>MEDIA</Method> <Command>BYESTREAM</Command> <Params> <!--与开始点播的Session一致 --> <Session></Session> </Params> 

Device=>>Platfrom:

<?xml version="1.0" encoding="GB2312"?> <PPVSPMessage> <Version>2.0</Version> <Sequence>8068</Sequence> <CommandType>RESPONSE</CommandType> <WhichCommand>BYESTREAM</WhichCommand> <Status>200</Status> <Description>OK</Description> <Params> <!--与开始点播的Session一致 --> <Session></Session> </Params> </PPVSPMessage> 

2.视频流

通过海康ehome协议通过TCP点播海康的摄像头,摄像头推送的流并非标准的PS流。
格式如下:
00000000000000a689ebc0d000001ba5e269c2eef63feffff007de000128ca70bb9fffffffc0000000e0001a8c0005fffffffffc0000000e0000e000da8c0004fffffffe11cf3802cf81b0be0668c371e18a3614cf05a24bcf006d9a6ad1ffc3efc7917c8cce99343b4efefd8f32361abfbc90eb51586ad45d445f11ec996ea36aeaba9fa42463ed140d38b91d4c0dbebb8d3cc61e8092cd7124f6dd41c30f87771ecd633c0dfb6fcab16d472cee859f7eabce0cca0eabdaaec2422ac14929c000f0c0b7ed51d0ef09988ca4fcdfdbc0

可以看到000001ba是PS流的头,而PS是荷载在RTP包中,那么我们来分析下PS头前面的字节:

24 00 01 39 80 60 00 00 00 00 00 00 0a 68 9e bc 0d

  • 24 00 前两个字节是‘$’,有点像tcp传输的rtsp协议;
  • 01 39 为RTP包的长度,这里为313;
  • 80 60 00 00 00 00 00 00 0a 68 9e bc为标准12位的RTP头,其中第3,4个字节是sequence号,这里是00 00 ,0a 68 9e bc为ssrc;
  • 0d,这里认为是RTP头与PS包的分隔符。

技术交流


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233445.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CBoard框架使用总结一[通俗易懂]

    CBoard框架使用总结一[通俗易懂]文章内容1.功能介绍2.源码结构分析3.总结1.功能介绍1.1.整体界面(CBoard支持中英文版本)左侧功能依次为:已创建的数据面板:包含已经创建的DashBoard配置功能:DashBoard配置功能集管理:主要是用户管理(Spring-Security)1.2.DashBoard配置功能主要包括:数据源定义:支持Elasticsearch、saiku、TextF

    2025年7月24日
    3
  • 秒懂百科视频下载(秒懂百科全集)

    秒懂百科视频下载相信很多小伙伴都有想要下载秒懂百科的视频,可是bd就是不让下载,怎么办呢,这里有一个小方法提供给大家。。。。1.首先,要下载M3U8_Downloader下载器,地址:https://pan.baidu.com/s/1kVK8FQ32.在百度百科里输入你要下载视频的词条,如图所示:请点击输入图片描述3.按键盘上的f12,打开网页的源码界面,选择network选项后,点击f5刷新后再点击你需要播放的视频,在源码界面找到.m3u8为后缀的文件,如图所示:请点击输入图片描述4.

    2022年4月17日
    197
  • 三极管开关电路[通俗易懂]

    三极管开关电路[通俗易懂]模拟电路三极管不仅可以对模拟信号放大,也可作为控制开关使用,作为开关使用的三极管处于截止与饱和状态,其基本电路如下图所示:其中,集电极电阻R1为上拉电阻,当三极管Q1截止时将输出电压上拉至电源VCC(高电平),可以理解为开集(OC)输出结构的上拉电阻,具体可参考文章《电阻(4)之上/下拉电阻》,基极串联电阻R2为限流电阻,防止输入电压Vi幅值过高导致基极电流超额而损坏三极管,下拉电阻R…

    2022年9月21日
    4
  • 阿里云服务器开放80端口「建议收藏」

    阿里云服务器开放80端口「建议收藏」阿里云服务器开放80端口1.先登录阿里云官网https://www.aliyun.com/2.点击控制台3.点击左边的三条杆4.点击进去之后,找到云服务器ECS5.点击蓝色字体的服务器名称6.找到安全组,安全组列表,加入安全组,配置规则7.点击入方向里的手动添加8.设置如下图所示的参数,最后记得保存哦9.至此,80端口就设置好了。因为我这里设置了Nginx,所以80端口会被占用10.我们在浏览器上访问,也可以验证成功…

    2022年10月2日
    2
  • 简述controller,service,repository注解的用法(谈谈application.properties的作用)

    Spring2.5中除了提供@Component注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service和@Controller。在目前的Spring版本中,这3个注释和@Component是等效的,但是从注释类的命名上,很容易看出这3个注释分别和持久层、业务层和控制层(Web层)相对应。1、@Component@Comp…

    2022年4月14日
    74
  • 1、排序二叉树「建议收藏」

    1、排序二叉树「建议收藏」2.建立并中序遍历一个排序二叉树排序二叉树是指左子树的所有节点的值均小于它根节点的值,右子树的所有节点的值均大于它根节点的值,如下图是一棵排序二叉树输入:输入有一行,表示若干个要排序的数,输入0时停止输出二叉树的凹入表示和二叉树的中序遍历序列sample:input:567834891235677722570output:     12 …

    2022年7月25日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号