最近正在研究http直播,目前了解到的协议有苹果的HLS,Adobe的HDS,微软的MMS和MPEG的HDFS都属于http的流媒体协议,不过他们都是基于叫做分片索引的机制。使用的是索引文件我为流标识进行点播。这种方案实现了一种伪直播。而且客户端这边需要在分片播放结束时使用http再次请求新的分片,并且这些协议具有码率控制,这样会产生上行的流量。
我用nginx+rtmp-module搭建了流媒体服务器和web服务器,使用ffmpeg推送数据流,再用vlc或者网页点播HLS流。
HDS的服务器我是使用FMS服务器搭建的,推送流也是使用ffmpeg,点播的话得用OSMF在网页中进行播放。
还有一种http直播方式就是类似渐进式,属于边下边播。这种方式在建立链接之后,服务器会一直使用http传输数据。
在建立链接的时候,客户端会发送GET,会获取到一个flv的文件头,包括了一个metadata和一个视频帧和音频帧的信息,格式就是按照flv的格式。