Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)最近研究了一下流媒体技术,也试着用免费开源的Red5搭建了流服务器,实现了直播,视频播放,远程视频会议等功能,下面是近期实践的总结,一.先介绍一下流媒体技术:所谓流媒体技术,是指将连续的影像和声音信息经过压缩处理后放在网站服务器上,让用户能够一边下载一边观看、收听(即所谓的“在线欣赏”),而不需要等整个压缩文件下载到自己的机器上才可以欣赏的网络传输技术。一般来说,一个

大家好,又见面了,我是你们的朋友全栈君。

最近研究了一下流媒体技术,也试着用免费开源的Red5搭建了流服务器,实现了直播视频播放,远程视频会议等功能,下面是近期实践的总结,

一. 先介绍一下流媒体技术:

所谓流媒体技术,是指将连续的影像和声音信息经过压缩处理后放在网站服务器上,让用户能够一边下载一边观看、收听(即所谓的“在线欣赏”),而不需要等整个压缩文件下载到自己的机器上才可以欣赏的网络传输技术。

一般来说,一个完整的流媒体服务系统需要三个部分组成:编码器、流服务器和播放器。.

编码器通过对内容来源(如MP3文件或者麦克风输入)进行编码,并将编码过的内容发送到流服务器;流服务器再将它们发布到Internet,这样客户端的播放器只要连接到流服务器就可以进行在线播放了。

主流开源流媒体服务器有哪些?

流媒体解决方案 Live555(C++)

流媒体平台框架 EasyDarwin(C++)

实时流媒体播放服务器程序DarwinStreamingSrvr(C++)

流媒体实时传输开发包 jrtplib

多媒体处理工具 ffmpeg

多媒体编码工具包Libav

Flash流媒体服务器 Red5(Java)

流媒体服务器 Open Streaming Server (Java)

FMS流媒体服务器(Adobe,收费的)

Wowza流媒体服务器(Java)

开源流媒体平台FreeCast(Java)

商用系统

1.NTV Media Server G3

2.Flash Media Server5

3.Windows Media Server

二. Red5流服务器搭建
1. 安装并配置JDK(略)

2. 下载并安装Red5

下载地址:
http://www.red5.org/red5-server/

解压,如:D:/Red5

3. 配置并启动Red5

修改conf下的red5.properties可以修改IP和端口

HTTP是打开Red5的Demo页面用的,RTMP是用于在直播,视频播放等流服务时候使用的协议。


Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

配置完成后,双击Red5目录下的red5.bat即可启动Red5服务器。

启动完成后,输入http://192.168.7.96:5080,出现画面则表示成功。(如果不改配置文件,用http://localhost:5080即可)


Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

三. 视频直播

1. 下载Demo
上图首页的最下面第二行有个红色的Install,点击可进入Demo的安装页面。

Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

直播和流媒体播放都要用到”
oflaDemo“,选择后点击”Install”安装即可。

安装完成后,在webapps下面出现oflaDemo文件夹。


Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

2. 设置并发布直播
进入发布设置界面:http://192.168.7.96:5080/demos/publisher.html
Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

在有摄像头,话筒的情况下,点击Video,在Device中选择摄像头,并点击Start,出现视频画面。
声音同视频,在Audio中设置。
Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

回到Server画面,在Location中输入rtmp://192.168.7.96:1935/oflaDemo,地址与red5.properties中的rtmp协议的设置必须相同。
点击Connect,右侧出现NetConnection.Connect.Success ,说明连接服务器成功。
Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

点击Publish页面中的Publish按钮即可对外发布直播。
View页面就是观看的直播,稍微有点延迟。
修改Name可以改变发布的名称。(相当于房间名)
Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

3. 用自己的页面观看直播
在webapps/oflaDemo下面建一个jwPlayer.html
我使用了jwplayer来播放,下载地址:http://download.csdn.net/detail/sunroyi666/9668965
把jwplayer.js和player.swf放在同级目录下
Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

主要修改2个地方,streamer就是发布页面的rtmp的地址,file是发布页面中的Name。
Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

输入地址观看直播:
Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)
四. 流媒体播放
直播搞定以后,流媒体的视频播放就简单多了。
在oflaDemo下面的streams文件夹下,把需要的视频文件放进去。(上传功能可以自己做)

Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

在jwPlayer.html中,把file改为视频文件名即可观看。

用Red5流媒体播放还有一个优点在于,可以保证视频的安全性。
客户端无论是输入http://192.168.7.96:5080/oflaDemo/(streams)/Avengers2.mp4
还是rtmp://192.168.7.96:1935/oflaDemo/(streams)/Avengers2.mp4
都无法直接下载视频的源文件哦~

五. OpenMeetings远程视频会议

OpenMeetings的运行依赖于Red5,是基于Flash的视频会议解决方案。亮点是能够在会议过程中做PPT演示。


1. 下载并启动OpenMeetings

下载地址:
http://openmeetings.apache.org/downloads.html
解压后看到里面实际上自带了Red5

与Red5一样,配置完IP以后启动red5.bat即可。

重要:
如果要修改rtmp端口的话,还需要修改这个文件
D:\apache-openmeetings\webapps\openmeetings\public\config.xml

里面的<rtmpport>1935</rtmpport>
还有,防火墙端口别忘了开放。
这个东西我调查了半天哭

2.安装数据库

启动过程中,如果没有配置相应的数据库,会报错,根据自己的数据库类型,在下面的路径中找到xml,改名为persistence.xml后修改配置。

默认需要名为openmeetings的数据库,不需要建表。


Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)


2. 配置OpenMeetings

输入
http://192.168.7.96:5080/openmeetings/install

会提示用户下载各种工具如ImageMagic, SWFTools, GhostScript, FFMpeg, SoX等,这些工具可以在视频会议的过程中,共享图片等。

比如A在图上写字B也能看到。

有需要的话可以根据提示下载,安装配置。

网上说明的文章也很多,这里就不介绍了。

反正不装也不影响使用。

旧版本有“Continue with STEP1”,点击进入账户设置页面。

我下载的新版本在画面上找了半天都没有这个Link
疑问,后来总算把画面拖到最下面看到了“>”按钮
哭,点击后进入账户设置。

输入用户名,密码,邮箱后,一步步设置到最后即可。

3. 登录并使用
输入用户名,密码,点击Sign in 登录


Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

点击右下方的“开始”按钮进入房间选择


Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

选择房间并点击“Enter”后,即可开始会议。


Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

六. 其他

1. 需要将Red5整合到Tomcat的话,可以参照下面的文章:


http://sakef.jp/blog/2010/06/red5_sample01/


http://blog.csdn.net/g1512161790/article/details/38766591

2. 需要进一步用Java控制直播的话,可以参照下面的文章:

http://blog.csdn.net/supercrsky/article/details/47611365

3. OpenMeetings的具体安装配置,可以参照下面的文章:
http://blog.csdn.net/saloon_yuan/article/details/8964045

http://wenku.baidu.com/link?url=Wl9d4RjHG6RvBrRbtdg_jzFLqQU1YJTuIIrmehv4VM6PHyz63EHY-blQFhFGwGYLnSgC0Tsmcc46Q1FvRwSmsfUqB2EOSftcbRFM6fW8iJa
http://hgr.blog.163.com/blog/static/61659001201211634228760/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135315.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue的双向绑定原理_数据双向绑定原理

    vue的双向绑定原理_数据双向绑定原理Vue双向绑定原理入门双向绑定概念数据可观测依赖收集完整示例总结从开始学习前端到现在走在进入中高级前端开发的路上,觉得上手容易又简单的就是Vue框架,包含其相关的生态系统。一直只是简单了解双向绑定的原理,并没有手动去实现或者去拜读过源码。而vue双向绑定基本是面试必考项,通过这段时间的学习,输出以下双向绑定的简单实现示例。参考文章:通俗易懂了解Vue双向绑定原理及实现双向绑定概念概念:…

    2022年10月7日
    3
  • docker 镜像启动命令_宿主机ping不通docker

    docker 镜像启动命令_宿主机ping不通dockerdockerrun:创建一个新的容器并运行一个命令语法dockerrun[OPTIONS]IMAGE[COMMAND][ARG…]OPTIONS说明: -astdin:指定标准输入输出内容类型,可选STDIN/STDOUT/STDERR三项; -d:后台运行容器,并返回容器ID; -i:以交互模式运行容器,通常与-t同时使用; -P:随机端口映射,容器内部端口随机映射到主机的端口 -p:指定端口映射,格式为:主…

    2022年9月23日
    5
  • 移位指令实现乘法

    移位指令实现乘法includeirvine32.inc;.dataidword0;sumqword0;str1byte”请输入16进制的(32位整数)乘数和被乘数”,0str2byte”乘积为:”,0;jdword0;.codemainprocL1:movedx,offsetstr1;callwritestring;movj,0;moveax,0;eax为…

    2022年6月3日
    50
  • 运行怎么进入文件路径_cmd命令怎么进入某个文件夹

    运行怎么进入文件路径_cmd命令怎么进入某个文件夹1.通过Windows+R进入命令调出运行2.输入cmd进入命令窗口(默认的一般是c:\Users下的某个文件夹,例如我的是c:\Users\LML)3.若想进入c盘的其他文件路径下,可以通过在目录下输入cd..进入上一层目录,直到进入c盘根目录;通过命令行输入c:\cd+文件或文件夹路径 进入目标文件夹4.若想进入其他盘下的文件路径,通过在命令行默认路径后输入想进入的盘名加上冒号,例如:c:…

    2022年10月15日
    4
  • bool 函数用法「建议收藏」

    bool 函数用法「建议收藏」 BOOL是布尔型变量,也就是逻辑型变量的定义符,类似于float、double等,只不过float定义浮点型,double定义双精度浮点型。在objective-c中提供了相似的类型BOOL,它具有YES值和NO值。布尔型变量的值只有真(true)和假(false),可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算,逻辑表达式运算结果为真或为假。(百科) …

    2022年4月28日
    112
  • Map集合转换成实体类对象,实体类对象转换为map集合,互转工具类「建议收藏」

    Map集合转换成实体类对象,实体类对象转换为map集合,互转工具类「建议收藏」注:2019-06-16日增加第六节map与实体互转工具类,直接看第6节;1.调用这个方法BeanMapUtils.mapToBean(),实现map集合转实体类对象;注意:这个方法转换时我这边老是报类型转换错误,引用这段代码没有报错的小伙伴可继续使用,此方法扩展性好,报错的小伙伴请看最下面的一个map转实体类对象方法;//1.通过map构造permiss…

    2022年5月30日
    133

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号