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免费开源软件,用于视频录制和直播,功能特点:

  1. 直播 RTMP 流媒体,兼容各大直播平台
  2. 支持OBS直播相关插件
  3. 性能稳定
  4. 编码使用H264(X264)和AAC
  5. 无限数量的场景和来源
  6. 基于GPU的高性能游戏流媒体游戏捕获
  7. 支持DirectShow捕获设备(摄像头、采集卡、等)
  8. 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拉流的主要内容,如果未能解决你的问题,请参考以下文章

VLC 播放器的推流和拉流方法

VLC 播放器的推流和拉流方法

常见推拉流客户端使用方式

C# FFmpeg推流Vlc.DotNet拉流优化参数

用vlc串流推流?

CentOS7下安装配置流媒体服务器Red5