首页 > 其他分享 >live555开源流媒体服务器实现直播秒开的构思

live555开源流媒体服务器实现直播秒开的构思

时间:2023-09-08 18:36:51浏览次数:43  
标签:live555 调用 队列 音视频 直播 上层 服务器 EasyRTSPServer 客户端


live555开源流媒体服务器实现的是视频和音频的数据传输,在客户端请求音视频后,由上层调用程序将音视频数据推进队列, 待和客户端的RTSP交互完成后,再通过RTP将音视频数据发给客户端; 在客户端往往要2-3秒后才出视频画面;

需求分析:

我们封装实现的EasyRTSPServer是基于live555改造而来,在上层调用程序将音视频推给EasyRTSPServer时,实际上是拷贝到了内存队列, 而在EasyRTSPServer创建队列到上层调用程序推送到队列,这中间经过了较多的步骤. 音视频队列是在上层应用返回媒体信息时创建,即向客户端发送DESCRIBE返回信息时创建, 而发送数据是在向客户端发送完PLAY时才开始, 这中间的过程中,上层调用程序会一直将数据推给队列。

解决方案:

在向客户端发送完PLAY后,先获取音视频队列中的历史帧进行发送,而不是直接取当前帧进行发送;

此处为EasyRTSPServer中为优化的点,可加快客户端出画面的速度,另外还有一点,就是在上层调用程序上需要做缓存,即在EasyRTSPServer回调出EASY_CHANNEL_OPEN_STREAM时,上层调用程序向前端请求音视频流,在此时EasyRTSPServer和客户端的交互还没有完成,而前端的流已经过来了,此时就需要做一个缓存,在EasyRTSPServer和客户端交互完成后,将缓存中的帧全部送到EasyRTSPServer; 如此即可实现视频秒开(还有一点需要注意的是前端的GOP设置, 该设置也决定了出视频画面的速度);


标签:live555,调用,队列,音视频,直播,上层,服务器,EasyRTSPServer,客户端
From: https://blog.51cto.com/u_16247540/7412131

相关文章

  • 基于live555开源流媒体服务器开发的EasyRTSPServer实现主动关闭指定通道session的方法
    我们在基于live555研发音视频流媒体服务器时,在某些特定场景下,需要主动关闭某一通道对应的所有连接,即要立即close所有观看当前视频通道的所有session;解决方案1.主动关闭通道APIEasy_APIEasy_I32Easy_APICALLEasyRtspServer_ResetChannel(EASY_CHANNEL_HANDLEchannelHandle);......
  • 基于live555开源流媒体服务器开发的EasyRTSPServer实现自定义数据与音视频数据的同步
    基于live555开源流媒体服务器开发的EasyRTSPServer实现的是视频和音频的数据传输,而随着智能分析的应用越来越多,如何将分析结果传给客户端也势在必行了。分析问题EasyRTSPServer基于live555改造而来,通过分析代码可以知道,其实它已经自带了metadata的传输.我们要做的就是怎样将这个me......
  • 基于live555研发的EasyRTSPServer嵌入式流媒体服务器解决对接海康NVR时G726音频不能正
    我们在基于live555研发实现对接海康NVR时候,发现视频正常,但音频不能正常播放。基于live555研发的EasyRTSPServer在接入输出视频编码为H.264,音频编码格式为G726,当接入视频源都来自海康的摄像机时,摄像机直接接入海康NVR是可以正常播放的,但接入live555研发的EasyRTSPServer是有问题的......
  • live555流媒体服务器解决客户端异常掉线后导致服务端通道阻塞的问题
    live555在Linux环境下会因为客户端异常掉线后,偶现导致部分通道不能再被访问的问题,我们描述一下这个问题修复的过程。本来是分析服务端CLOSE_WAIT的问题,在调试的过程中,却又发现了阻塞,认真分析了live555的事件调用流程后,发现只要从客户端收到数据,就会执行GenericMediaServer::Clien......
  • live555最新版本修改对ipv6的支持
    在live555官方代码中只支持IPv4,现实环境中绝大多数项目也是IPv4,但是用支持IPv6的EasyRTSPClient去连接海康的相机,人家早就支持IPv6了。并且现工程投标中也有部分明确需要IPv6,所以在原IPv4基础上,动手改造支持IPv6。那么如何支持呢?方法如下:定义IPV4和IPV6live_ipv4_ipv6.htype......
  • live555作为RTSP流媒体服务器时Server端多track而客户端仅请求一个track,当客户端关闭
    当我们使用live555作为流媒体服务器时,某个通道对应的所有客户端断开后,不能正常回调关闭。某一通道同时支持视频和音频输出,即video和audio两个trackVLC和EasyPlayer播放库来中的RTSPClient则都会请求(所以不存在问题);而某些客户端则只请求了一个track,比如video;此时再关闭......
  • live555做流媒体服务器时解决rtp over udp模式下, 客户端没有发送teardown时直接关闭
    在我们使用live555作为RTSP服务器时,客户端在rtpoverudp模式下,rtsp客户端没有发送teardown而直接断开连接时需要等待65秒才回调关闭的问题。分析问题在RTSPClientConnection中没有保存相应的session值,所以在RTSPClientConnection断开时,并没有删除相应的RTSPClientSession;解......
  • live555作为RTSP客户端对接大华的某款球机RTSP流时不能预览问题的解决方案
    我们使用live555作为RTSP客户端拉取对接大华的球机RTSP直播流时,不能正常预览,球机在客户现场,型号未知。这种情况下,我们分析了,我们使用live555已接过N多种不同的摄像机,包括大华的相机之前也接过,没有出现过这种问题.而客户现场的电脑抓包软件也有问题,不能正常工作.只能加日志打印......
  • live555 RTSPClient客户端修正多网卡多ip情况下解码器不能解码显示问题
    问题海康NVR接入正常,但接入海康解码器出不来图像;分析海康解码器是以rtpoverudp的方式进行取流;如果运行streamingServer的PC,网络设置为以下两种情况,则都可以正常上墙显示:本机仅设置一个IP,且和解码器在同一网段;本机有两个IP,如192.168.xx.xx和190.168.xx.xx,解码器网......
  • 恒创科技:国内访问香港服务器选择什么路线?
    ​国内访问中国香港服务器可以选择多种路线。首先,我们了解下各个线路的速度延迟。一、CN2直连:解决了不同互联网服务提供商之间访问的难题,不需要绕到国际网络再从中国的三个网络入口进入。二、优化直连:全国平均延迟60ms,速度较快。三、国际线路:全国平均延迟180ms......