GB28181国检推流

     GB28181国检有一向内容是实时播放摄像机流,经过一番努力,搞定这个功能,现分享心得:

首先需要了解流程,说简答点就是视频流从哪里来到什么地方去,下图描述了视频流推流,转发的

基本过程:信令交互成功以后,摄像机(媒体流发送者)推送流到媒体服务器,媒体服务器在指定

的端口接收到视频流后,转发给流媒体接收者(例如某台PC的某个空闲端口)。

    讲了基本流程,我们来看下28181要求的视频流格式。GB28181要求传输的视频流格式为PS流,或者

H264裸流,又或者是MP4格式,其中PS流及H264裸流较常见。PS流是如何封装的这里不细述,可以查询

相关文档。如何区分是PS流还是H264裸流有个简答的方法:用wireshark抓包,数据包类型是rtp的是PS流

数据类型是udp是H264裸流。

   准备工作完毕,开始讲推流。推流的前提是信令交互已经成功。下面说下基于jpmedia推流的基本步骤。

  

                                                                 图1

 

1) static boolInitialize() 

      输入:无 输出:无 返回值:true 表示初始化成功,false 表示失败。

      初始化接口库,媒体服务器接收到 sip 服务器 invite请求后即执行该操作,如图 1 第 2 步。

 2) bool CreateRecvTransport(unsignedshortrecvPort) <br>  

      输入:端口号 输出:无 返回值:true表示创建接收端口成功,false表示失败。

     备注:媒体服务器收到invite请求后发送自身 sdp 信息,recvPort 需作为 sdp 指定 端口。

     媒体服务器收到sip 服务器 invite 请求后<br>    即执行该操作,如图 1 第2 步。

3)bool AttachMediaSender(conststring&mediasenderaddress,unsignedshortport)

     输入:媒体流发送者 IP, 端口 输出:无 返回值:true 表示关联媒体流发送者成功,false 表示失败。

     备注:关联媒体流发送者 IP 地址及端口,图 1 第 6 步执行该操作,sdp 信息包含了媒 体流发送者 IP 地址及端口号。<br>

4)bool CreateForwardTransport(unsignedshortsendport)const

     输入:本地转发端口 输出:无 返回值:true

     表示创建转发端口成功,false表示失败。 备注:自行指定未使用端口即可,图 1 第 8 步执行该操作。<br>

5)bool AttachMediaReceiver(conststring&mediareceiveraddress,unsignedshortport)const

    输入:流媒体接收者 IP 地址,端口 输出:无 返回值:true 表示关联媒体流接收者成功,false表示失败。

    备注:图 1 第 12 步执行该操作。

6)void DestroySendTransport()const

     输入:无 输出:无 返回值:无 备注:释放端口资源,图 1 第15 步执行该操作。<br>

7)void DestroyRecvTransport()const

    输入:无 输出:无 返回值:无 备注:释放端口资源,图 1 第17 步执行该操作。

 

    如果出现推流花屏可以用wireshark抓包保存成文件。播放保存下来的文件,如果视频正常,说明视频源

没有问题。如果抓包保存文件见下图。

                                                                                            图2

                                                                                   图3

如需交流请加 流媒体/Ffmpeg/音视频 127903734,库下载地址http://pan.baidu.com/s/1hsysYuo

转载于:https://my.oschina.net/u/3700450/blog/1545629

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值