基于开源Red5搭建的视频直播平台

开始以前,为了便于你们了解Red5,此处引用网络文字,非原创

 

引言

流媒体文件是目前很是流行的网络媒体格式之一,这种文件容许用户一边下载一边播放,从而大大减小了用户等待播放的时间。另外经过网络播放流媒体文件时,文件自己不会在本地磁盘中存储,这样就节省了大量的磁盘空间开销。正是这些优势,使得流媒体文件被普遍应用于网络播放。git

流媒体服务器是经过创建发布点来发布流媒体内容和管理用户链接的。流媒体服务器可以发布从视频采集卡或摄像机等设备中传来的实况流,也能够发布事先存储的流媒体文件,而且发布实况流和流媒体文件的结合体。一个媒体流能够由一个媒体文件构成,也能够由多个媒体文件组合而成,还能够由一个媒体文件目录组成。github

Flash Media Server,简称 FMS,是 Flash 你们庭里的一员,被称为是目前开发 Web 音视频应用程序(好比,视频聊天室、视频会议系统、播客系统、音视频留言等等)的最方便最快捷的解决方案。也在 web 应用程序开发上有着愈来愈普遍的应用。固然 FMS 这种优良功能并非免费提供给广大用户的,几千美金每一个点的价格让不少开发人员望而却步。因而,你们开始尝试寻找一种更合适的解决方案,开源的 Red5 便成为了人们的新宠。web

Red5 是一个采用 Java 开发的开源的 Flash 流媒体服务器,功能上与 FMS 相似。它支持:把音频(MP3)和视频(FLV)转换成播放流;录制客户端播放流(只支持 FLV);共享对象;现场直播流发布;远程调用。Red5 使用 RSTP 做为流媒体传输协议,包括在线录制,Flash 流媒体播放,在线聊天,视频会议等一些基本功能。国内外基于 Red5 的流媒体应用产品也在不断推广,例如在线视频会议 Openmeeting,大型 Flash 网游功夫之王 2。浏览器

流媒体简介

随着 Internet 发展,单纯的文字和图形已经远远不能知足需求,而是逐渐向声音和视频等多媒体方向过渡。目前在网络上传输音频/视频等多媒体文件时,通常有下载和流式传输两种选择。因为音频/视频包含大量的数据,因此他们占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,因此这种处理方法的延迟很大。若是换用流式传输的话,声音、影像、动画等多媒体文件将由专门的流媒体服务器负责向用户连续、实时地发送,这样用户能够没必要等到整个文件所有下载完毕,而只须要通过几秒钟的启动延时就能够了,当这些多媒体数据在客户机上播放时,文件的剩余部分将继续从流媒体服务器下载。tomcat

流(Streaming)是近年在 Internet 上出现的新概念,其定义很是普遍,主要是指经过网络传输多媒体数据的技术总称。流媒体包含广义和狭义两种内涵:广义上的流媒体指的是使音频和视频造成稳定和连续的传输流和回放流的一系列技术、方法和协议的总称,即流媒体技术;狭义上的流媒体是相对于传统的下载-回放方式而言的,指的是一种从 Internet 上获取音频和视频等多媒体数据的新方法,它可以支持多媒体数据流的实时传输和实时播放。经过运用流媒体技术,服务器可以向客户机发送稳定和连续的多媒体数据流,客户机在接收数据的同时以一个稳定的速率回放,而不用等数据所有下载完以后再进行回放。服务器

因为受网络带宽、计算机处理能力和协议规范等方面的限制,要想从 Internet 上下载大量的音频和视频数据,不管从下载时间和存储空间上来说都是不太现实的,而流媒体技术的出现则很好地解决了这一难题。目前实现流媒体传输主要有两种方法:顺序流(progressive streaming)传输和实时流(realtime streaming)传输,它们分别适合于不一样的应用场合。网络

顺序流传输

顺序流传输采用顺序下载的方式进行传输,在下载的同时用户能够在线回放多媒体数据,但给定时刻只能观看已经下载的部分,不能跳到还没有下载的部分,也不能在传输期间根据网络情况对下载速度进行调整。因为标准的 HTTP 服务器就能够发送这种形式的流媒体,而不须要其余特殊协议的支持,所以也经常被称做 HTTP 流式传输。顺序流式传输比较适合于高质量的多媒体片断,如片头、片尾或者广告等。并发

实时流传输

实时流式传输保证媒体信号带宽可以与当前网络情况相匹配,从而使得流媒体数据老是被实时地传送,所以特别适合于现场事件。实时流传输支持随机访问,即用户能够经过快进或者后退操做来观看前面或者后面的内容。从理论上讲,实时流媒体一经播放就不会停顿,但事实上仍有可能发生周期性的暂停现象,尤为是在网络情况恶化时更是如此。与顺序流传输不一样的是,实时流传输须要用到特定的流媒体服务器,并且还须要特定网络协议的支持。性能

Red5 概述

Red5 是一个采用 Java 开发开源的 Flash 流媒体服务器。免费开源使软件更加容易扩展,下载后你能够对源代码进行修改;更加经济,比起 FMS 高昂的费用,Red5 能为通常的应用节约大笔费用;同时服务器端的 Java 面向对象语言比起 FMS 服务器端的 ActionScript2 语言更加成熟。鉴于 Red5 的种种优点,推出不久便被广大用户所接受。测试

Red 5 支持:

1. 把音频(MP3)和视频(FLV, F4V, MP4, 3GP)转换成播放流;

2. 录制客户端播放流, 把摄像头,麦克风等传入的音频视频录制保存到服务器;

3. 共享对象;

4. 现场直播流发布;

5. 远程调用;

6. 协议:RTMP, RTMPT, RTMPS, and RTMPE。

 

====================================================================================================

如下内容为原创

没有服务器,使用我的笔记本搭建,操做系统:win7 64位 旗舰版

一、安装jdk1.8,涉及环境变量的配置,请自行百度;

二、下载Red5 Server,下载地址:https://github.com/Red5/red5-server,我下载的是最新的1.0.10版本;

三、直接解压,文件目录以下:

四、双击运行red5.bat,基于tomcat运行的小窗口能够先不用管,打开浏览器,访问:http://localhost:5080,若是出现此页面,则red5 server正常启动;

五、由于Red5也是基于Flash的,记得将浏览器设置为容许Flash运行;

六、点击页面上的Launch a demo,并找到Publisher;

七、链接到推流服务器;

八、切换到publish标签,选择本身电脑的摄像头,模拟视频直播源;

九、选择好Device以后,点击Start,会有一个设置的提示框,点击容许;

十、这个时候咱们在预览窗口中其实已经能够看到服务器端的视频画面,点击publish按钮,就开启直播了;

 

十一、那如何从客户端观看呢?有不少方式,这里我借用VLC播放器来拉取视频流进行实时播放,取流地址以下:

这里的stream1520409915970,能够理解为直播的房间号。必须和server端配置的一致。播放效果就是:

十二、经测试,直播存在必定的延迟,且客户端视频流的画面质量有必定程度的损失。固然这只是我的初步测试结果,真正商用的话,应该还有优化的余地。

1三、能够在其余电脑上同步取流实时播放,并发数、服务器性能等未作进一步测试,感兴趣的朋友能够自行测试。

1四、另外推荐你们研究一下Red5 Pro,针对移动端也有解决方案,不过并非免费的。

相关文章
相关标签/搜索