搭建流媒体服务器

简介: 需求:现在需要搭建一台流媒体服务器,为了将主讲人的电脑桌面屏幕和声音直播给远端的人接收实时观看,要求延迟在5秒左右。理论上RTSP、RTMP、HTTP都可以做直播和点播,但是一般做直播都是用RTSP和RTMP,做点播用HTTP。

需求:现在需要搭建一台流媒体服务器,为了将主讲人的电脑桌面屏幕和声音直播给远端的人接收实时观看,要求延迟在5秒左右。理论上RTSPRTMPHTTP都可以做直播和点播,但是一般做直播都是用RTSPRTMP,做点播用HTTP。做视频会议的时候原来使用的是SIP协议,现在基本上被RTMP协议取代了。

两种方案如下:

1)rtsp目前用的比较流行的是live555vlcDarwinStreamingSrvr5.5.5等开源软件。

2)rtmp只能用nginx加载rtmp模块来搭建服务端。

首先值得我们需要思考的几个问题:

1、直播端的数据流是拉取还是推送?

2、是服务端主动拉取?还是直播端安装推流软件基于工具来推流?

3、服务端能接收推流吗?如何测试推流成功?

4、接收端用什么接收测试?工具还是浏览器?

需要的环境及工具:

1、笔记本一台(这里作为服务端也是直播端,最好能上公网且是ubuntu系统)

2、Flv视频文件一个(测试点播文件)

3、vlc客户端一个(接收端使用)或者能上网的电脑一台

4、obs客户端一个(直播端

方案一、

先尝试第一种解决方案rtsp,网上搜索的方案大多数只有三种:

1、live555作为服务端(网上一堆方法,部署也很简单)

结果:只实现了点播的效果,用obs推流报不知道的协议,网上查询实现直播需要修改源码,弃之。

2、vlc作为服务端(网上一堆方法,部署也很简单)

结果:实施过程相当简单,但是只能实现mp3音频文件的串流,试过桌面串流好像不行。而且高并发的也不确定有没有性能上的问题。也弃之。

3、DarwinStreamingSrvr5.5.5作为服务端(网上一堆方法,部署也很简单)

结果:点播都不行,更别说是直播了,当然这里我不否定是不是部署有问题,最后果断弃之。

实验后的结论:

RTSP果断放弃吧!虽然说是延迟很低、实时性高,但是部署都失败了。所以我这里准备采用RTMP作为服务端。

关于vlcobs两个工具的使用感受:

vlc只能作为服务端和接收端,不能作为直播端推送数据流到服务端。

obs只能作为直播端推送数据流到服务端,不能作为服务端和接收端。

综上所述解答上面提出的几个问题:

1、直播端的数据流是拉取还是推送?

答:推送

2、是服务端主动拉取?还是直播端安装推流软件基于工具来推流?

答:是直播端用obs软件推流

3、服务端能接收推流吗?如何测试推流成功?

答:服务端可以接受推流,服务端可以用盘古直播服务器,在盘古直播注册一个账号,然后记住流媒体服务器的url和流密钥,在obs软件设置里面填上这个参数就可以测试推流成功了。

4、接收端用什么接收测试?工具还是浏览器?

答:接收端用vlc可以接收测试,但是我个人建议还是使用浏览器里面带的播放器测试,延迟更低,但是必须要能上公网,地址如下:

http://www.ossrs.net/players/srs_player.html,在URL里面输入你流媒体服务器的地址即可!

截图如下:


方案二、

一、服务端操作:

1、笔记本安装ubuntu系统(步骤略)

2、安装obs软件,注意obs官网linux版本只支持ubuntu安装,所以现在知道为什么上面说明需要ubuntu系统了吧!当然windows也可以,因为我这里还 需要一些php环境运行一些其它的服务。

点击(此处)折叠或打开

  1. sudo add-apt-repository ppa:obsproject/obs-studio
  2. sudo apt-get update && sudo apt-get install obs-studio

3、安装nginxrtmp模块

点击(此处)折叠或打开

  1. wget http://nginx.org/nginx-1.11.8.tar.gz
  2. unzip nginx-rtmp-module-master.zip(这个模块去网上搜索下载)
  3. tar zxvf nginx-1.11.8.tar.gz
  4. cd nginx-1.11.8
  5. ./configure --prefix=/usr/local/nginx --add-module=/root/nginx-rtmp-module-master
  6. make
  7. make install

修改nginx.conf文件,在server段上面添加如下内容:

点击(此处)折叠或打开

  1. rtmp {
  2.     server {
  3.         listen 1935;
  4.         application live {
  5.         live on;
  6.         record off;
  7.     }
  8. }
  9. }

注意里面的application可以加多个,live相当于频道的含义。只不过直播端推流的时候要设置为和接收端一样的地址就行。

启动nginx服务,如果正常应该监听了801935端口。保证直播端和接收端能访问服务端的这两个端口。

以下红色字体可以完全忽略

简单测试点播(注意下面是在centos7.2系统操作的):

先找一个flv文件吧!这,需要安装一个ffmpeg软件来模拟推流操作

点击(此处)折叠或打开

  1. rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
  2. yum –y install ffmpeg
  3. ffmpeg -re -i test.flv -f flv rtmp://192.168.1.1/live
正常输出如下:

找一台能上网的window作为接收端,输入下面的url,然后输入rtmp://192.168.1.1/live,最后点击播放按钮,出现如下画面说明点播正常。其实这个测试点播的步骤完全可以省略,我这里是方便记录一下ffmpeg推流。


服务端接着操作:

1、打开终端直接输入obs命令,然后会弹出obs的界面,然后点击串流选择自定义流媒体服务器---URL填写rtmp://服务器IP/live—点击确定按钮


2、鼠标指针放到来源空白处,然后点击添加屏幕捕获

3、鼠标指针放到来源空白处,然后点击添加音频输入捕获

4、点击OK,在来源处应该会出现屏幕捕获和音频输入捕获了。

然后点击开始串流,最后点击是就OK了!如果下面有个时间开始计时走动了就说明数据流能正常推送到服务端了。

三、接收端操作

浏览器输入下面的url,然后输入rtmp://192.168.1.1/live/,最后点击播放按钮,出现ubuntu的桌面说明直播正常。经过测试一般延迟2秒左右,但是用vlc测试延迟4秒左右。所以如果你的接收端能上公网就用浏览器,如果不能上就用vlc。使用方法如下:

打开vlc,点击媒体打开网络串流,输入你的服务端的地址,点击播放按钮就可以实时接收直播的数据流了。






目录
相关文章
|
3月前
|
Ubuntu
SRS RTMP流媒体服务器搭建
SRS RTMP流媒体服务器搭建
140 0
|
Web App开发 应用服务中间件 Go
尝鲜:如何搭建一个简单的webrtc服务器
前几天我一朋友问我有关webrtc的事,简单了解了下相关知识,搭建了一个webrtc的服务,以及经历的各种踩坑事件,感觉踩坑主要是Python、Node、OpenSSL等版本问题和证书问题导致。本来以为很简单的搭建,但在搭建的过程中遇到各种阻碍,写一篇文章梳理一下。
7927 0
|
16天前
|
Go 开发工具 git
推荐一个开源流媒体服务器-livgo
推荐一个开源流媒体服务器-livgo
27 0
|
18天前
|
编解码 缓存 网络协议
EasyDarwin开源流媒体服务器
EasyDarwin开源流媒体服务器
39 0
|
应用服务中间件 视频直播 Linux
windows下使用Nginx搭建Rtmp流媒体服务器,实现视频直播功能
windows下使用Nginx搭建Rtmp流媒体服务器,实现视频直播功能
2566 0
windows下使用Nginx搭建Rtmp流媒体服务器,实现视频直播功能
|
Web App开发 索引
流媒体服务器SRS部署
github地址:https://github.com/ossrs/srs 1,srs下载 http://ossrs.net/srs.release/releases/index.html 选择正式发形版 2,安装 # unzip SRS-CentOS6-x86_64-1.
4127 0
|
8月前
|
Web App开发 应用服务中间件 API
srs搭建rtmp流媒体服务器
srs搭建rtmp流媒体服务器
826 0
srs搭建rtmp流媒体服务器
|
弹性计算 移动开发 Ubuntu
阿里云上搭建HLS直播服务器
通过将摄像头的rtmp视频流推送到服务器,转换成HLS(HTTP Live Streaming)格式,用户可以通过H5浏览器直接打开直播视频。
686 0
|
Web App开发 Docker ice
阿里云上搭建webRTC 服务器——Licode
阿里云上搭建webRTC 服务器——Licode 系统配置 阿里云服务器 Ubuntu 14.04.5 LTS Docker 环境搭建 在一台空的机器上搭建docker环境,先要安装docker,执行下面的命令即可: apt-get update apt-get install docker.
9320 0
|
编解码 Java 流计算
38款 流媒体服务器开源软件
http://www.oschina.net/project/tag/111/streaming?lang=0&os=0&sort=view&p=1 Flash流媒体服务器 Red5 Red5是一个采用Java开发开源的Flash流媒体服务器。
7254 0