媒体流基础知识 - HTTP与RTMP

时间:2011-04-30 15:36:27

标签: streaming red5 rtmp xuggle

我对媒体流非常陌生,我有一些基本的疑问需要明确:

  1. 据我所知,HTTP流(通过Apache)和RTMP流(通过Red5)之间的区别在于流媒体服务器提供缓冲和提前控制,如搜索等。我是对的吗? / p>

  2. 我是否可以只传输来自RT5服务器(如Red5)的Flash视频?如果我必须传输不同格式的文件,我是否必须使用HTTP流?我可以使用像xuggler这样的工具来动态转码文件并根据Red5服务器的请求发送吗?

  3. 我构成了所有这些疑虑,因为我必须为所有移动客户端提供流媒体 - iPhone,黑莓,Android - iPhone不支持闪存,所以去Red5是个好主意吗?

1 个答案:

答案 0 :(得分:22)

让我有点清楚细节。

1)什么是“流媒体”。通常在视频流的世界中是根据实时传送帧。如果您有30分钟的视频,它将在30分钟内发送给用户。

专门用于流媒体的特殊协议:RTSP(可能是今天的古代),RTMP,MJPEG,基于http的协议系列(apple,abobe,microsoft)和其他一些封闭的供应商协议。

2)什么是“http-streaming”或“伪流”。如果您只是将文件放在HTTP服务器上,用户可以下载并观看。如果他下载完整的视频,他甚至可以在其中搜索。但是,如果用户想要在不下载第一部分的情况下寻求电影的中间,会发生什么? 它应该以某种方式告诉服务器:打开文件容器,寻找这一刻并打包文件。因此,HTTP服务器必须知道文件容器的结构,以便向客户端提供搜索功能。

nginx和apache可以用于flv和mp4容器,这对于100%的视频是可以的,可以通过Flash Player播放。

3)什么是http流媒体搞乱了如今。 Apple,Adobe和Microsoft已经在HTTP上设计和实现了流媒体。这意味着客户端下载10秒段,仍然保持适当的帧速率。 30分钟仍然可以下载30分钟的电影,但片段下载之间存在很大的延迟。 可以以这种“格式”寻找,以切换比特率等。

4)RT5流媒体服务器如Red5或erlyvideo可以传输H.264,H.263,VP6和屏幕视频。不支持MPEG-4(Xvid / DivX)或MPEG-2。