视频直播技术(四):流媒体服务器搭建

一、前言

实时视频直播是这两年非常火的技术形态,已经渗透到教育、在线互娱等各种业务场景中。但要搭建一套实时视频直播系统,并非易事,下面针对直播系统的的搭建做一下说明:

1.1 通常的直播系统的技术模型图:

Sample

1.2 一个简易的直播系统,大致可以由三部分组成:

1.搭建一个rtmp媒体服务器;
2.推流端;
3.拉流端。

1.3 现在目标是快速搭建起来,所以当然是借助开源项目和一些软件:

1.rtmp媒体服务器:推荐使用srs和nginx;
2.推流端:这里使用obs;
3.拉流端:这里使用播放器vlc。

二、SRS 流媒体服务器的搭建

2.1 搭建过程

1.基于Mac操作系统,使用SRS作为流媒体服务器:https://github.com/ossrs/srs。

2.首先clone到本地,进入到trunk目录:

git clone [url=https://github.com/ossrs/srs.git]https://github.com/ossrs/srs.git[/url]  
cd srs/trunk

3.然后执行:

./configure —osx

注意: Centos6.x/Ubuntu12 32/64bits用户仅需要执行./configure。

4.最后执行:

make

5.执行成功后,就可以开启我们的服务了:

./etc/init.d/srs start

因为是mac系统,此时会失败,原因是srs.conf中max_connections太大,目录为srs/trunk/conf/srs.conf,可以修改为248(其他操作系统可能无此问题)。
再次回到trunk目录:

./etc/init.d/srs start

到此我们的srs服务器就搭建起来了。
补充说明:Centos、Ubuntu可以参考官网搭建,比较简单。

6.如果你启动过程中还遇到了其他错误,可以查看log信息:

srs/trunk/objs/srs.log

2.2 指令整理

开始 ./etc/init.d/srs start
停止 ./etc/init.d/srs stop  
重启 ./etc/init.d/srs restart

2.3 测试服务器

可以使用 rtmp://127.0.0.1/rh/mylive 地址进行直播测试,推流和拉流都可以使用。

2.4 流媒体服务器的并发方面的思考

在实现流媒体服务的时候,我们不仅要考虑到服务本身对并发的上限支持,还需要考虑服务器的带宽支持程度。一般的网卡支持几十到上百路的视频已经算是很不错了。一般在实际的生产环境,我们都会使用到CDN服务。

对于CDN的服务,这里就不展开了,感兴趣的可以自行百度查阅相关资料。

三、工具和资料

推荐推流工具

使用OBS推流:https://obsproject.com
使用yasea推流:https://github.com/begeekmyfriend/yasea
使用ffmpeg推流:https://github.com/WritingMinds/ffmpeg-android-java

推荐拉流工具:

使用VLC拉流:http://www.videolan.org/vlc/

参考资料

https://www.cnblogs.com/zhujiabin/p/6812877.html
http://www.52im.net/thread-1154-1-1.html
https://github.com/WritingMinds/ffmpeg-android-java
https://github.com/ossrs/srs
http://blog.csdn.net/ManagerUser/article/details/73840130
https://blog.csdn.net/zjuwwj/article/details/72773704

posted @ 2018-02-26 09:54  灰色飘零  阅读(9705)  评论(1编辑  收藏  举报