live555断流

最近在弄live555服务器的库,出现了断流的现象。我这边总结一下与大家一同分享。

现象描述:

布好Live555服务器后,在pc上用vlc播放视频OK,长时间不会断流。但是在嵌入式设备上播放却只能接收几秒钟的视频数据,然后就不再向客户端发送数据,直到超时断开。

问题原因:

在live555库中,RTPInterface::sendDataOverTCP函数中,当socket发送数据失败后会将socket移除。

执行removeStreamSocket(socketNum, 0xFF);

这边需要分情况,在windows下面,send返回-1可能是缓冲器满了,可以用(WSAGetLastError() != WSAEWOULDBLOCK)代码判断一下,在linux请自己查阅(我不熟)。

断流现象解决了,但又出现了新问题。

问题描述:

在嵌入式设备中数据能够一直接收到,但每隔一段时间才能出来一张完整的图片。

问题原因:

在上次的修改中没有强制将I帧发送出去,在这边不知道那个是I帧。该问题的解决办法很简单,只要增加socket的缓存即可。

执行代码increaseSendBufferTo,将缓存变成200*1024即可。用全局搜索的方法查找那些地方调用了该函数,然后修改即可。

如有其它问题,请联系[email protected]

时间: 2024-11-01 12:41:30

live555断流的相关文章

except rtsp 中途莫名的断流

在解码中,接了浙江宇视的ipc相机,解码一般就挂了,vlc 也是中途断流.费解? vlc异常信息如下: packetizer_h264 warning: waiting for SPS/PPS packetizer_h264 warning: waiting for SPS/PPS packetizer_h264 warning: waiting for SPS/PPS packetizer_h264 warning: waiting for SPS/PPS packetizer_h264 wa

live555笔记_hi3516A

1.简介 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现了对多种音视频编码格式的音视频数据的流化.接收和处理等支持,包括MPEG.H.263+.DV.JPEG视频和多种音频编码.同时由于良好的设计,Live555非常容易扩展对其他格式的支持.目前,Live555已经被用于多款播放器的流媒体播放功能的实现,如VLC(Video

live555 client 接收rtp数据

2014-03-08  22:05:58   描述live555 client即openRTSP的流程,简单点说,playCommon.cpp,流为h264和g726.在实际项目中已成功应用. 以下为我所见所得,有错误之处请指正,谢谢! 1.live555的三种任务 socket handler,event handler,delay task. 这三种任务的特点是,前两个加入执行队列后会一直存在,而delay task在执行完一次后会立即弃掉. 1 2 3 4 5 6 7 8 9 10 11

DM8168移植wis-streamer(Live555交叉编译)

live555移植 转载请注明http://blog.csdn.net/guo8113/article/details/46433227 Live555开源代码可以到官网上下载,它可以移植到很多不同的平台,包括linux.armlinux.windows.os等,移植到DM8168板卡上的步骤如下: a.解压软件包.在终端输入tar zxvf live555-latest.tar.gz,出现live文件夹. b.修改配置文件.进入live文件夹,找到并打开config.armlinux文件,将

Live555中RTP包的打包与发送过程分析

这里主要分析一下,live555中关于RTP打包发送的部分.在处理完PLAY命令之后,就开始发送RTP数据包了(其实在发送PLAY命令的response包之前,就会发送一个RTP包,这里传输就已经开始了) 先介绍下主要的流程:RTP包的发送是从MediaSink::startPlaying函数调用开始的,在StartPlaying函数的最后会调用函数continuePlaying. continuePlaying函数是定义在MediaSink类中的纯虚函数,需要到特定媒体的sink子类中实现,对

Live555学习之(一)-------Live555的基本介绍

前一阵子,因为项目需要,研究了一下Live555开源框架,研究的不是很深入,基本上把Live555当做API用了一下,但是毕竟也是本人看的第一个开源框架,在此记录总结一下. Live555是一个实现了RTSP协议的开源流媒体框架,Live555包含RTSP服务器端的实现以及RTSP客户端的实现.Live555可以将若干种格式的视频文件或者音频文件转换成视频流或者音频流在网络中通过RTSP协议分发传播,这便是流媒体服务器最核心的功能.Live555支持以下几种文件格式的流化: A MPEG Tra

(转)基于live555的流媒体代理转发服务器

对于并发量并不大而且对性能要求不是很高的流媒体传输模块,live555还是很好的选择,下面说一下我所实现的流媒体代理服务器(目前只能实现对H264单视频的转发)代理转发主要 对于并发量并不大而且对性能要求不是很高的流媒体传输模块,live555还是很好的选择,下面说一下我所实现的流媒体代理服务器(目前只能实现对H264单视频的转发) 代理转发主要分为对RTSP的转发与对RTP的转发(没有实现对rtcp的转发),尽量做到不破坏原有程序框架,所以还是要将整个代理过程融合于ServerMediaSub

ubuntu12.04上live555+v4l2+ffmpeg+x264开发环境的搭建

我把可能会用到的主要资源上传到度盘: http://pan.baidu.com/s/1i38AleP ubuntu上安装主要步骤就是解压.configure.make.sudo make install live555的安装可以看这里: http://www.live555.com/liveMedia/#config-unix libx264的安装则是直接解压.然后configure.make和sudo make install,configure命令如下 ./configure --disab

live555 基本命令处理流程

live555源码分析----DESCRIBE命令处理 live555源码分析----SETUP命令处理流程 live555源码分析----PLAY命令的处理 live555源码分析----RTP的打包与发送 实现RTP协议的H.264视频传输系统 live555源码分析----H264的数据处理 live555源码分析----mpg文件的处理