Android视频直播:流媒体服务器搭建
一、前言
实时视频直播是这两年非常火的技术形态,已经渗透到教育、在线互娱等各种业务场景中。但要搭建一套实时视频直播系统,并非易事,下面针对直播系统的的搭建做一下说明:
1.1 通常的直播系统的技术模型图:
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 地址进行直播测试,推流和拉流都可以使用。
三、工具和资料
推荐推流工具
使用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
最新文章
- HDInsight 路径问题
- 用户列表-投资记录sql
- c#Winform程序,让pictureBox显示图像(包含GIF),并且不被占用,能即时删除图片。
- POJ 3659 Cell Phone Network (树dp)
- redis 中文手册
- hnnu 11546 Sum of f(x) (求一个数的全部约数和)
- poj2826(线段相交)
- 通过Log4net来配置我们需要的日志文件格式
- 报表软件公司悬赏 BUG,100块钱1个的真实用意
- 第九篇 蓝图 blueprint
- mysql 自定义函数与自定义存储过程的调用方法
- IIS PHP
- 原生JS实现简易转盘抽奖
- guxh的python笔记五:面向对象
- tp剩余未验证内容-2
- 关于react16.4——高阶组件(HOC)
- Swift5 语言指南(二十一) 嵌套类型
- 华为S5300系列交换机限制特定IP可以登录Web
- 使用WPF Application Framework (WAF)框架
- centos7下部署elasticSearch集群
热门文章
- 一致性哈希(附带C++实现)
- ubuntu17.10 python3.6 install plugins for AI
- 正";/"; 和 反";\";的区别?
- PendingIntent
- yum源配置的三种方法
- java基础之继承(二)
- ActiveMq笔记1-消息可靠性理论
- <;CEPH中国-深圳站-技术交流会演讲PPT>; YY云平台Ceph Block应用实践 &; 我写的书 《CEPH实战》
- DNS 访问 Service - 每天5分钟玩转 Docker 容器技术(138)
- Debug格式化输出----基于C语言