live555 直播

摄像头采集,264编码,live555直播(1)

http://www.cnblogs.com/mlj318/archive/2013/01/23/2872932.html


重载FrameSource,写一个服务类,可以从FrameSource的派生类读取帧数据,转发给live555.就可以了。


live555的性能不给力,该怎么处理

可参考 基于Linux的Socket网络编程的性能优化。 我以前就对live555的接收模块做了优化,CPU占用小30%。


http://www.cnblogs.com/dyllove98/archive/2013/06/08/3127533.html

live555 将事件与事务放在一线程中进行处理,事件模型又是基于古老的select 模型,而事务基本都是有IO的,因此当并发量达到一定程度,服务器就全在跑IO了。

实际上这样的业务需要和事件分隔开,否则就成了“红管子”。

不过live555的确可以完成RTSP协议,这一点是无可厚非的。

我的流媒体服务器要从性能上超越live555是完全可能的,由于是基于新的高效事件模型epoll,又是基于多线程的架构,目前市面上还缺这样的产品。

拿live555来看,它是一个用C++开发的基于select 模型的RTSP游戏流媒体服务器。

说实话,代码的可读性和代码风格不能推崇


迅雷的流媒体服务器有基于RTMP/HLS的,能够适应各个网络环境。但是现在这个应用场景是P-S模式,用RTSP也就够

HLS
      HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS 系统,为iOS设备(如iPhone、iPad)提供音视频直播和点播方案。HLS点播,基本上就是常见的分段HTTP点播,不同在于,它的分段非常小。
       相对于常见的流媒体直播协议,例如RTMP协议、RTSP协议、MMS协议等,HLS直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器端总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。由此可见,基本上可以认为,HLS是以点播的技术方式来实现直播。由于数据通过HTTP协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。不过HLS的这种技术特点,决定了它的延迟一般总是会高于普通的流媒体直播协议。 

你可能感兴趣的:(live555 直播)