zoukankan      html  css  js  c++  java
  • Windows/Android/iOS平台H265编码视频播放器EasyPlayerRTSP中socket选项之keepalive设置介绍

    TSINGSEE青犀视频云边端架构视频平台中有很多可以供二次开发调用的接口,使用频率比较高的其中一个就是视频流保活接口,保活就是通过应用层的机制,实现流媒体的不停输出视频流(保活接口是什么?如何通过保活让RTSP、RTMP、GB28181协议视频平台持续输出视频流)。

    当然也有很多用户使用EasyPlayer RTSP播放器控件进行自己平台的集成,在这种集成下,怎么配置播放器发送keep alive报文呢?本文我们就来分享一下。

    EasyPlayer RTSP播放器底层是基于EasyRTSPClient库封装起来的,在设计之初就已经考虑预留了相关接口参数,把openStream的heartbeatType参数值置1就可以,接口函数定义如下:

    /* 打开网络流 */
    EasyRTSP_OpenStream(Easy_Handle handle, int _channelid, char *_url, EASY_RTP_CONNECT_TYPE _connType, unsigned int _mediaType, char *_username, char *_password, void *userPtr, int _reconn, int outRtpPacket, int heartbeatType, int _verbosity);

    EasyRTSPClient是基于Live555改造起来的RTSP拉流客户端,能非常方便实现部分功能的定制,科普一下本文重点提到的OPTIONS发送的问题。

    当我们采用RTP over UDP/TCP方式在取流的过程中,RTSPClient(live555)可能长时间都在从RTSPServer(IPC/NVR)取流,但缺没有向RTSPServer发送保活报文,如果服务器端启动了Session保活检测机制(参看live555中RTSPServer中noteliveness实现),服务器端长时间没有收到客户端发送的数据包,就会认为客户端连接是假连接,主动断开与客户端的连接(不管客户端是否正在取流);大部分的RTSPClient客户端都会定时(例如30s)向RTSPServer发送OPTIONS(有的也有可能发送的是GET_PARAMETER)命令,类似于保活报文,这样服务器端就能正常地发送直播数据流了。

    TSINGSEE青犀视频云边端架构产品繁多,能够满足大部分行业以及应用场景中的安防监控平台搭建,包括视频智能分析平台以及视频流媒体播放器,当然也提供视频推流组件、同屏功能组件等辅助工具。如果大家有兴趣,欢迎联系我们了解。

  • 相关阅读:
    169. Majority Element
    283. Move Zeroes
    1331. Rank Transform of an Array
    566. Reshape the Matrix
    985. Sum of Even Numbers After Queries
    1185. Day of the Week
    867. Transpose Matrix
    1217. Play with Chips
    766. Toeplitz Matrix
    1413. Minimum Value to Get Positive Step by Step Sum
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14062342.html
Copyright © 2011-2022 走看看