2011-04-30 128 views
13

我是很新的媒体流,我有一些基本的疑惑清除:流媒体基础知识 - HTTP VS RTMP

  1. 至于我能理解,HTTP流之间的差异(通过Apache说)和RTMP流媒体(通过Red5)是流媒体服务器提供缓存和高级控制,如寻找等。我是对的吗?

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

我冒充这些怀疑,因为我必须提供串流到所有的移动客户端 - iPhone,黑莓,Android - iPhone不支持Flash,因此它是一个好主意,去的Red5?

回答

22

让我稍微详细一点以清楚细节。

1)什么是“流式传输”。通常在视频流的世界里是根据实时传送帧。如果你有30分钟的视频,它将在30分钟内发送给用户。有专门的流媒体专用协议:RTSP(也许是今天生活的古代),RTMP,MJPEG,基于http协议的家族(苹果,abobe,microsoft)以及其他一些封闭的供应商协议。

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

nginx和apache可以为flv和mp4容器做到这点,这对100%的视频来说是可以的,可以通过Flash Player播放。

3)什么是现在流行的HTTP流。 苹果,Adobe和微软已经在HTTP之上设计和实现了流媒体。这意味着客户端下载10秒段,仍然保持适当的帧率。 30分钟的电影仍在30分钟内下载,但分段下载之间存在很大的延迟。 可以在这种“格式”中查找,切换比特率等。

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

+0

这里HLS和HTTP渐进式下载之间的清晰和详细的解释:http://www.streamingmedia.com/Articles/Very/Featured-Articles/HTTP-Streaming-What-You-Need-to-Know-65749。 ASPX – Buzut 2015-02-18 20:23:49