Centos7 Red5 OBS推流 VLC拉流
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7 Red5 OBS推流 VLC拉流相关的知识,希望对你有一定的参考价值。
一、Red5、OBS、VLC简介
Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。它由Java语言编写,使用RTMP作为流媒体传输协议,这与FMS完全兼容。它具有流化FLV、MP3文件,实时录制客户端流为FLV文件,共享对象,实时视频播放、Remoting等功能。用Red5替换FMS后,客户端不用更改可正常运行。
OBS免费开源软件,用于视频录制和直播,功能特点:
- 直播 RTMP 流媒体,兼容各大直播平台
- 支持OBS直播相关插件
- 性能稳定
- 编码使用H264(X264)和AAC
- 无限数量的场景和来源
- 基于GPU的高性能游戏流媒体游戏捕获
- 支持DirectShow捕获设备(摄像头、采集卡、等)
- MP4或者FLV文件输出
VLC多媒体播放器(最初命名为VideoLAN客户端)是VideoLAN计划的多媒体播放器。它支持众多音频与视频×××及文件格式,并支持DVD影音光盘,VCD影音光盘及各类流式协议。它也能作为unicast或 multicast的流式服务器在IPv4或 IPv6的高速网络连接下使用。它融合了FFmpeg计划的×××与libdvdcss程序库使其有播放多媒体文件及加密DVD影碟的功能。
二、背景
因工作需要,进一步了解直播推流的过程,研究流媒体服务器的相关技术。本文是基于CentOS7搭建Red5流媒体服务器,利用OBS推流工具、VLC播放器工具实现的简单的直播、观看功能。
三、直播的流程
录制——编码——网络传输——解码——播放
好了,了解这么多下来我们就来实际的操作。
四、下载
官网下载red5-server-1.0.6-RELEASE,可以在centos里面wget下载,也可以windows下下载上传到linux,此处不再赘述,本文以上传的方式安装。https://github.com/Red5/red5-server/releases
五、安装
前面已经说过Red5是基于Java的,首先先看系统是否安装Java
[[email protected] tmp]#rpm -qa | grep java
查看java的版本
[[email protected] tmp]# java -version
无输出则没有安装,需要先手动安装
[[email protected] tmp]# yum install java-1.7.0-openjdk
[[email protected] tmp]# java -version
java version "1.7.0_191"
OpenJDK Runtime Environment (rhel-2.6.15.4.el7_5-x86_64 u191-b01)
OpenJDK 64-Bit Server VM (build 24.191-b01, mixed mode)
将Red5上传至/usr/local/下解压缩
[[email protected] local]# tar -zxvf red5-server-1.0.6-RELEASE-server.tar.gz
进入到 red5-server-1.0.6-RELEASE/目录,编辑配置目录conf下的red5.properties文件
vi red5-server-1.0.6-RELEASE//conf/red5.properties
将图片红色标记的ip地址改为本地实际的服务器地址,修改完成之后保存退出。
修改完成之后我们可以直接通过 red5-server-1.0.6-RELEASE/下的shell脚本启动red5服务。
[[email protected] red5-server-1.0.6-RELEASE]# ./red5.sh
......前面省略
[INFO] [Launcher:/installer] org.red5.server.Server - Add mapping global: default host: localhost:5080 context: installer
[INFO] [Launcher:/installer] org.red5.server.scope.WebScope - Webscope already registered
[INFO] [Launcher:/installer] org.red5.server.service.Installer - Installer service created
[INFO] [Launcher:] org.red5.server.Context - Setting parent bean factory as core
[INFO] [Launcher:] org.red5.server.scope.WebScope - Set server [[email protected][‘/chat‘ -> ‘default‘, ‘/vod‘ -> ‘default‘, ‘localhost:5080/installer‘ -> ‘default‘, ‘localhost/installer‘ -> ‘default‘, ‘/live‘ -> ‘default‘]]
[INFO] [Launcher:] org.red5.server.scope.Scope - Scope null name reset to: disallowed
[INFO] [Launcher:] org.red5.server.Server - Add mapping global: default host: context: null
[INFO] [Launcher:] org.red5.server.scope.Scope - Invalid scope name, null is not allowed
[WARN] [Launcher:] org.red5.server.scope.Scope - Invalid scope rejected: Scope [name=null, path=/default, type=APPLICATION, autoStart=true, creationTime=1538117994743, depth=1, enabled=true, running=false]
[WARN] [Launcher:] org.red5.server.scope.Scope - Scope not added to parent
[INFO] [Launcher:] org.red5.server.scope.WebScope - Webscope already registered
[INFO] [Launcher:/chat] org.red5.server.scope.WebScope - Webscope already registered
等Red5启动完毕,打印的信息为启动的日志。
使用netstart命令找到java启动的端口1935,5080,在防火墙中放行对应的端口,或者直接关掉防火墙。
CentOS7中使用的防火墙为firewalld
查看firewalld的状态
[[email protected] ~]# firewall-cmd --state
running
启动和关闭防火墙
[[email protected] ~]# service firewalld start|stop|restart
查看防火墙的规则
[[email protected] ~]# firewall-cmd --list-all
插线端口是否开放
firewall-cmd --query-port=8080/tcp
开放1935,5080端口
firewall-cmd --permanent --add-port=5080/tcp
firewall-cmd --permanent --add-port=1935/tcp
移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
参数解释:
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;
OK,这样流媒体服务器就搭建好了,可以直接在浏览器输入:http://192.168.89.132:5080访问了
下来我们来用OBS推个流验证下服务器,流这块的URL就是播放留地址:rtmp://192.168.89.132/live/自定义的名字
设置好之后,添加场景和来源点击开始推流
点击开始推流,看右下角标记的绿色变动,说明推流正常
下来使用VLC拉流,访问流地址rtmp://192.168.89.132/live/123
可以播放,OK没问题,拉流成功。
以上是关于Centos7 Red5 OBS推流 VLC拉流的主要内容,如果未能解决你的问题,请参考以下文章