媒体流基础知识 - HTTP与RTMP

Win*_*Win 13 streaming red5 rtmp xuggle

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

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

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

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

Max*_*hin 21

让我有点冗长清楚细节.

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)RTMP流媒体服务器如Red5或erlyvideo可以传输H.264,H.263,VP6和屏幕视频.不支持MPEG-4(Xvid/DivX)或MPEG-2.