兴發国际娱乐手机登录Linux下视频流媒体服务器搭建详解,视频直播协议汇总

目标用于搭建内网流媒体服务器支持视频的点播。

流媒体协议:(RTP、RTCP、RTSP、MMS、HLS、HTTP progressive streaming)

1 实时传输协议RTP与RTCP
RTP(Real-time Transport
Protocol)是用于Internet上针对多媒体数据流的一种传输协议。RTP由两个紧密链接部分组成:RTP—-传送具有实时属性的数据;RTP控制协议(RTCP)—-监控服务质量并传送正在进行的会话参与者的相关信息。

背景

用于支持培训网站中视频点拨功能,在培训网站总体方案中需要加入流媒体服务器,用于存储和传输视频资源。

当前在internet上传送音频和视频等信息主要有两种方式:

RTP协议是建立在UDP协议上的。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议)、视频会议和视频电话系统(配合H.263或SIP)。

相关概念

  • 流媒体
    流媒体(Streaming
    Media)是一种新兴的网络传输技术,在互联网上实时顺序地传输和播放视/音频等多媒体内容的连续时基数据流。

流媒体技术包括流媒体数据采集、视/音频编解码、存储、传输、播放等领域。

  • 流媒体系统组成
    包括编码工具、流媒体数据、服务器、网络和播放器。

  • 流媒体传输过程
    如下图所示:

  • 传输协议
    RSVP: 资源预留协议
    RTP: 实时传输协议
    RTCP: 实时传输控制协议
    MMS: 微软流媒体服务协议
    RTSP: 实时流协议
    RTMP: 实时消息传输协议
    MIME: 多目因特网电子邮件扩展协议
  1. 下载,完整下载一个视频,再去播放
  2. 流式传输,如优酷、爱奇艺等视频网址(土豆,优酷网的视频传输方法)

RTP本身并没有提供按时发送机制或其他服务质量(QoS)保证,它依赖于底层服务去实现这一过程。RTP并不保证传送或防止无序传送,也不确定底层网络的可靠性。RTP实行有序传送,RTP中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,例如:在视频解码中,就不需要顺序解码。

解决方案

下面介绍的这些协议,都是流式传输

实时传输控制协议(Real-time Transport Control
Protocol,RTCP)是实时传输协议(RTP)的一个姐妹协议。RTCP为RTP媒体流提供信道外控制。RTCP定期在流多媒体会话参加者之间传输控制数据。RTCP的主要功能是为RTP所提供的服务质量提供反馈。RTCP收集相关媒体连接的统计信息,例如:传输字节数,传输分组数,丢失分组数,时延抖动,单向和双向网络延迟等等。网络应用程序可以利用RTCP所提供的信息试图提高服务质量,比如限制信息流量或改用压缩比较小的编解码器。RTCP本身不提供数据加密或身份认证,其伴生协议SRTCP(安全实时传输控制协议)则可用于此类用途。

商业方案

  • Real Network的Real System

    服务端软件:Helix Server
    平台:Windows or Linux
    文件格式:RealAudio, Realvideo, RealFlash
    
  • 微软的Windows Media Services

    服务端软件:Windows Media Server
    平台:Windows
    文件格式:ASF, WMV
    
  • 苹果公司的Quick Time系列

    服务端软件:QuickTime Streaming Server (开源版本为Darwin Streaming Server)
    平台:MacOS X, Linux, Windows
    文件格式:MOV, MP4
    

在这三家公司的流媒体产品中,RealNetworks公司的免费服务端Helix Server
Basic最大提供个流的并发,仅支持其专有编码RealAudio和RealVideo,基本上只能算是体验性的产品;微软公司的流媒体服务端Windows
Media Server附带于其服务器产品Windows Server中,但只有最高版本的Windows
Server
Enterprice才具有完整的包括组播在内的所有流媒体服务器功能;苹果公司的Darwin
Streaming Server(简称DSS)完全免费,没有任何功能限制,且符合国际标准。

RTP

实时传输协议(Real-time
Transport Protocol或简写RTP)是一个网络传输协议

RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。 
它一开始被设计为一个多播协议,但后来被用在很多单播应用中。 
RTP协议常用于流媒体系统(配合RTSP协议),视频会议和一键通(Push to
Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。

RTP为Internet上端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP来提供。

2 实时流协议RTSP
RTSP协议定义了一对多应用程序如何有效通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP请求由客户机发出,服务器做出响应;RTSP可以是双向的,即客户机和服务器都可以发出请求。

开源/免费解决方案

  • ffmpeg

    全平台视频转换
    开源
    
  • RED5

    Red5是一个采用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流; 录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。Red5使用RSTP作为流媒体传输协议,在其自带的一些示例中演示了在线录制,flash流媒体播放,在线聊天,视频会议等一些基本功能。
    开源地址:[](https://github.com/Red5/red5-server)
    
  • Darwin Streaming Server

    为苹果公司视频流解决方案的开源版本。
    
  • easyDarwin

    国内基于Darwin Streaming Server二次开发的流媒体服务器,有中文支持网站。
    

传输层:

RTP协议和RTCP(RTP控制协议)一起使用,而且它是创建在UDP协议上的。

RTSP与RTP最大的区别在于:RTSP是一种双向实时数据传输协议,它允许客户端向服务器端发送请求,如回放、快进、倒退等操作。当然RTSP可基于RTP来传送数据,还可以选择TCP、UDP、组播UDP等通道来发送数据,具有很好的扩展性。它是一种类似于HTTP协议的网络应用协议。

安装配置

RTCP

实时传输控制协议(Real-time
Transport Control Protocol或RTP Control
Protocol或简写RTCP)是实时传输协议(RTP)的一个姐妹协议。

RTCP为RTP媒体流提供信道外(out-of-band)控制。RTCP本身并不传输数据,但和RTP一起协作将多媒体数据打包和发送。RTCP定期在多媒体流会话参加者之间传输控制数据。

RTCP的主要功能是为RTP所提供的服务质量(Quality of Service)提供反馈。

RTCP收集相关媒体连接的统计信息,例如:传输字节数,传输分组数,丢失分组数,jitter,单向和双向网络延迟等等,网络应用程序即可利用RTCP的统计信息来控制传输的品质,比如当网络带宽高负载时限制信息流量或改用压缩比较小的编解码器。

开源实现live555

RED5

传输层:

RTP 使用一个 偶数 UDP port ;而RTCP 则使用 RTP 的下一个
port,也就是一个奇数 port。

3 实时消息传输协议RTMP
RTMP(Real Time Messaging Protocol)是Adobe
Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。它有三种变种:

使用HTTP协议播放

  1. 首先从github下载已编译版本,因为在Linux上安装使用,直接下载
    red5-server-1.0.7-RELEASE.tar.gz文件即可。
  2. Java程序,在服务器上安装jre1.7版本后即可解压运行。测试阶段可以使用./red5-debug.sh启动red5服务器。在浏览器上输入
  3. 在red5安装目录下的webapp/vod目录下的视频文件可以在本地VLC播放器上连接

RTSP

即时串流协定(Real
Time Streaming
Protocol,RTSP)是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制

允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,更进而支持多方视讯会议(Video
Conference)。 
因为与HTTP1.1的运作方式相似,所以代理服务器(Proxy)的缓冲功能(Cache)也同样适用于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。

(1)工作在TCP之上的明文协议,使用端口1935;

Darwin Streaming Server

功能同easyDarwin,在Linux上安装比较繁琐,所以暂时只试用easyDarwin。

传输层:

传输时所用的网络通讯协定并不在其定义的范围内,服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP
1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。

(2)RTMPT封装在HTTP请求之中,可穿越防火墙;

发表评论

电子邮件地址不会被公开。 必填项已用*标注