live555 优化

live555 优化

MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client’s buffer size (250000). 28536 bytes of trailing data will be dropped

优化 1
1)在“live/liveMedia/StreamParser.cpp”中扩展帧解析buffer大小,即BANK_SIZE,默认值为150k,根据传输的H264数据帧大小,至少设置为300k。否则超出大小,可能会被Live555抛弃。

2)在“live/liveMedia/MediaSink.cpp”中增加OutPacketBuffer::maxSize大小,同样为了容纳超大帧数据,否则可能会导致数据丢失,设置为 600000。

3)在“live/liveMedia/MultiFramedRTPsource.cpp”中--129行,增加socket发送缓冲区大小,即increaseSendBufferTo函数的参数值--increaseRecieveBufferTo(env, RTPgs-> socketNUm(), 2000000)”
优化 2

在调度方面的优化:MultiFramedRTPSink::sendPacketIfNecessary–402行

#if 0
    // We have more frames left to send.  Figure out when the next frame
    // is due to start playing, then make sure that we wait this long before
    // sending the next packet.
    struct timeval timeNow;
    gettimeofday(&timeNow, NULL);
    int secsDiff = fNextSendTime.tv_sec - timeNow.tv_sec;
    int64_t uSecondsToGo = secsDiff*1000000 + (fNextSendTime.tv_usec - timeNow.tv_usec);
    if (uSecondsToGo < 0 || secsDiff < 0) { // sanity check: Make sure that the time-to-delay is non-negative:
      uSecondsToGo = 0;
    }

    // Delay this amount of time:
    nextTask() = envir().taskScheduler().scheduleDelayedTask(uSecondsToGo, (TaskFunc*)sendNext, this);
#else
      sendNext(this);
#endif

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: live555是一个用于流媒体服务器和客户端的开源软件库,支持RTSP(Real-Time Streaming Protocol)协议,以及RTCP(RTP Control Protocol)协议。RTCP是RTP协议的一个补充协议,用于提供对RTP会话的监控和控制。 RTCP协议的主要功能包括流媒体会话中的参与者间的同步和同步源的识别,网络传输质量的监测和反馈,以及流控制和会议控制等。通过RTCP协议,流媒体服务器和客户端可以实时监控网络传输质量,根据实时情况进行自适应调整,以提供更好的用户体验。 在live555中,RTCP的功能由rtcp类来实现,该类提供了与RTCP协议相关的功能和接口。通过使用rtcp类,开发人员可以轻松地在流媒体服务器和客户端中添加对RTCP协议的支持。 对于流媒体服务器来说,rtcp类可以用于收集和汇报传输会话的统计信息,例如每个参与者的接收和发送信息、丢包情况、网络延迟等。服务器可以根据这些统计信息来动态调整传输策略,以优化流媒体的传输质量。 对于流媒体客户端来说,rtcp类可以用于定期发送RTCP包,向服务器汇报接收情况和请求更多数据。服务器可以根据接收情况和请求来动态调整传输内容,以最大程度地满足客户端的需求。 总之,live555中的rtcp类为流媒体服务器和客户端提供了对RTCP协议的支持,使得它们可以进行实时的流媒体传输质量监控和控制。通过RTCP协议,流媒体系统可以提供更好的用户体验,并优化网络传输效果。 ### 回答2: live555是一个开源的多媒体开发工具包,用于实现实时传输控制协议(RTCP)。RTCP是一种与实时传输协议(RTP)配套使用的协议,用于传输多媒体流时的控制信息。 RTCP的主要功能是帮助参与多媒体流传输的各个端点相互了解彼此和网络状态。它通过周期性发送控制报文,收集、汇总和分发相关信息,从而实现流控制和质量监测等功能。RTCP包括一些重要信息,如参与者的身份、流传输的统计数据和质量反馈等。 live555作为一个实现了RTCP的开源工具包,提供了一些API和函数,使得开发者能够方便地利用RTCP协议进行多媒体传输的控制和监测。开发者可以使用live555提供的接口,根据需要发送和接收RTCP控制报文,以实现流媒体传输过程中的流量控制、时序同步和质量监测等功能。 通过live555 rtcp,开发者可以建立一个多媒体传输的会话,实现音视频的传输、控制和同步等功能。同时,它也提供了一些功能强大的工具,如媒体服务器和客户端等,方便开发者快速构建用于多媒体传输的应用程序。 总之,live555 rtcp是一个能够帮助开发者实现实时传输控制和监测的开源工具包,为多媒体传输提供了方便和灵活的开发接口。它的存在和应用可以提升多媒体传输的效率和质量,为开发者提供一种快速和方便的开发方式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值