搭建流媒体服务器

需求:现在需要搭建一台流媒体服务器,为了将主讲人的电脑桌面屏幕和声音直播给远端的人接收实时观看,要求延迟在5秒左右。理论上RTSP、RTMP、HTTP都可以做直播和点播,但是一般做直播都是用RTSP和RTMP,做点播用HTTP。做视频会议的时候原来使用的是SIP协议,现在基本上被RTMP协议取代了。
两种方案如下:
1)rtsp目前用的比较流行的是live555、vlc、DarwinStreamingSrvr5.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作为服务端。
关于vlc和obs两个工具的使用感受:
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环境运行一些其它的服务。
点击(此处)折叠或打开
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-get update && sudo apt-get install obs-studio
3、安装nginx和rtmp模块
点击(此处)折叠或打开
wget http://nginx.org/nginx-1.11.8.tar.gz
unzip nginx-rtmp-module-master.zip(这个模块去网上搜索下载)
tar zxvf nginx-1.11.8.tar.gz
cd nginx-1.11.8
./configure --prefix=/usr/local/nginx --add-module=/root/nginx-rtmp-module-master
make
make install
修改nginx.conf文件,在server段上面添加如下内容:
点击(此处)折叠或打开
rtmp {
server {
listen 1935;
application live {
live on;
record off;
}
}
}
注意里面的application可以加多个,live相当于频道的含义。只不过直播端推流的时候要设置为和接收端一样的地址就行。
启动nginx服务,如果正常应该监听了80和1935端口。保证直播端和接收端能访问服务端的这两个端口。
以下红色字体可以完全忽略
简单测试点播(注意下面是在centos7.2系统操作的):
先找一个flv文件吧!这,需要安装一个ffmpeg软件来模拟推流操作
点击(此处)折叠或打开
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
yum –y install ffmpeg
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,点击媒体—打开网络串流,输入你的服务端的地址,点击播放按钮就可以实时接收直播的数据流了。

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 搭建流媒体服务器需要以下步骤: 1. 安装Linux操作系统,建议使用Ubuntu或CentOS等常见的Linux发行版。 2. 安装流媒体服务器软件,常用的有Nginx-rtmp、Wowza、Red5等。其中,Nginx-rtmp是一个轻量级的流媒体服务器,安装简单,配置灵活,适合小型的流媒体应用;Wowza和Red5则是功能更为强大的流媒体服务器,支持更多的协议和功能。 3. 配置流媒体服务器,包括设置端口、协议、编码格式、流媒体文件存储路径等。 4. 配置流媒体客户端,如VLC、FFmpeg等,以便能够与流媒体服务器进行通信。 5. 测试流媒体服务器,可以使用本地文件或网络摄像头等设备进行测试,确保流媒体服务器正常工作。 总之,搭建流媒体服务器需要一定的技术水平和经验,建议在实践前先学习相关的知识和技术。 ### 回答2: 流媒体服务器是指一个服务器能够接收、编码、存储、和分发流媒体内容的服务器。Linux系统在搭建流媒体服务器上拥有很大优势,因为它拥有从Linux社区和开源社区获得的强大工具箱。在本文中,我们将探讨如何在Linux上搭建流媒体服务器。 第一步:安装Linux操作系统 在搭建流媒体服务器之前,我们需要先选择一个Linux操作系统。我们可以选择稳定,经过良好测试的Debian或者Ubuntu操作系统,也可以选择其他的开源操作系统。然后,我们需要执行以下步骤: 1.安装操作系统。你可以通过官方网站下载需要的系统镜像。 2.在安装过程中设置管理员的用户名和密码。 3.在安装过程中选择安装需要的软件和服务。 第二步:安装LAMP 拥有一个互联网流媒体服务器需要安装一个完整的LAMP(Linux操作系统,Apache HTTP服务,MySQL数据库,以及PHP编程语言)服务集合。在此我们将重点介绍如何搭建Apache服务以及与之相关的一些服务。 1.安装Apache服务器。你可以使用包管理工具apt或dnf来安装。 2.安装MySQL组件。MySQL允许我们在Linux操作系统上运行和存储数据库。 3.安装PHP组件。PHP是用于Web开发的编程语言,在架设流媒体服务器上有很大的用处。 第三步:安装流媒体软件 完成了第二步之后,我们现在需要安装一些流媒体服务软件。这些软件可以帮助我们在Linux操作系统上运行一个实时流媒体服务器。 1.安装Icecast。Icecast是一个开源项目,用于流媒体服务器的基础服务。 2.安装DarkIce。这是一个广泛被流媒体服务器系统使用的基础编码器。 第四步:配置流媒体软件 在安装完所需组件之后,我们需要对它们进行配置,以便流媒体服务器能够顺利的工作。下一步我们将讲述这个操作示例。 1.配置icecast。Icecast的配置文件在”/etc/icecast.xml”目录下,需要在此修改后进行保存。 2.配置DarkIce。配置DarkIce的方法可以参考相关文档等。 第五步:故障排除和调试 最后,我们需要对流媒体服务器进行故障排除和调试。如果你遇到了问题或问题无法解决,可以通过查询问题的错误日志来查出问题所在。这些错误日志可以在”/var/log或/srv/jellies目录下找到。 总结: 以上就是用Linux安装搭建流媒体服务器的大致流程。这个流程包括安装操作系统、安装LAMP、安装流媒体软件、配置流媒体软件以及故障排查等工作。需要注意的是,这些过程可能因系统版本、软件版本等影响而有所不同。因此,请仔细查阅官方文档以及相关技术博客。最后,总结一下,Linux作为开源操作系统在流媒体服务器架设上有着良好的使用体验,它对于高可靠性、高安全性处理有着卓越的表现,值得我们进一步挖掘和使用。 ### 回答3: Linux是一个开放源代码的内核,它可以为用户提供自由、强大和高度安全的操作系统。通过Linux,我们可以轻松地搭建一个高效的流媒体服务器,用于实时广播音频和视频内容。 搭建流媒体服务器的第一步是安装Linux操作系统。现在市场上有很多不同的发行版可以选择,比如Ubuntu、CentOS、Debian等等。在选择系统的同时,我们还需要确保网络配置以及系统更新等步骤完成。 接下来,我们需要安装流媒体服务器软件。我们可以选择一些流行的免费软件,比如FFmpeg、VLC或者Nginx。在这里我们以Nginx作为例子进行讲解。 Nginx是一款非常流行的服务器软件,它可以用来处理HTTP和其他网络协议。在流媒体方面,Nginx的优势在于可以快速地向多个客户端播放视频和音频。 安装Nginx非常简单,首先要做的就是打开终端,输入以下命令: sudo apt-get install nginx 安装完成后,我们需要配置Nginx的流媒体服务。 第一步是创建一个RTMP块,在这里我们将定义一些RTMP流媒体的设置。打开配置文件并添加以下内容: rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; } } } 其中,listen指定RTMP服务器监听的端口号,chunk_size定义信息块的大小,live表示开启直播功能,record表示关闭录制功能。 接下来,我们需要设置Nginx服务来支持MP4格式的视频流。在server块中添加以下内容: location /videos { mp4; mp4_buffer_size 1m; mp4_max_buffer_size 5m; alias /var/www/html/videos/; } 其中,mp4表明本段服务支持MP4格式的视频,mp4_buffer_size和mp4_max_buffer_size用来设置视频缓冲区的大小,alias用来设置文件夹路径,即视频文件夹的路径。 完成以上配置后,我们需要重新加载Nginx服务以应用新的设置。在终端输入以下命令: sudo service nginx reload 这样就完成了一个流媒体服务器搭建。现在,我们只需要将我们的音频或视频内容上传到/var/www/html/videos/文件夹中,即可通过RTMP块和MP4服务向多个用户提供实时流媒体内容。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值