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
Android视频直播:流媒体服务器搭建的更多相关文章
- 搭建nginx服务器和直播流媒体服务器
1.nginx简单说明 ① Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强. ...
- Android 视频直播 SDK
Android 视频直播 SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1 ...
- nginx-rtmp流媒体服务器搭建【转】
nginx-rtmp https://github.com/pengqiuyuan/nginx-rtmp nginx-rtmp 流媒体服务器的搭建(采集桌面,手机直播) 在线Demo,直播自己的pc机 ...
- javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...
- rtmp与hls流媒体服务器搭建:ubuntu下Nginx搭建初探与rtmp-module的添加
关键词:Nignx(http服务器):rtmp,hls(流媒体服务) 前言:感谢开源,感谢战斗民族.现在在做流媒体服务的一些工作,流媒体服务器搭建的网上教程多入牛毛,但是细细查看,发现很多同志贴上来的 ...
- windows server 2012 流媒体服务器搭建(直播与点播)
IIS Live Smooth Streaming(实时平滑流式处理)是微软下一代流媒体解决方案.该技术是在IIS web中集成媒体传输平台IIS media services,实现利用标准 HTTP ...
- 基于EasyNVR摄像机无插件直播流媒体服务器实现类似于单点登录功能的免登录直播功能
提出问题 EasyNVR是一套摄像机无插件直播的流媒体服务器软件,他可以接入各种各样的摄像机,再经过转化统一输出无插件化直播的RTMP.HLS.HTTP-FLV流,同时,EasyNVR为了数据安全,提 ...
- 基于EasyDarwin框架实现EasyNVR H5无插件直播流媒体服务器方案
在之前的一篇博客<web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!>中,描述了实现一套H5无插件直播方案的各个组件的参考建议,又在博客<EasyNVR H5流媒体服务器方案架 ...
- 基于EasyDarwin开源流媒体服务器框架实现EasyNVR H5无插件直播流媒体服务器方案
背景分析 在之前的一篇博客<web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!>中,描述了实现一套H5无插件直播方案的各个组件的参考建议,又在博客<EasyNVR H5流媒体服 ...
随机推荐
- 重磅发布:《阿里巴巴Android开发手册(规约)》
1.前言 阿里巴巴于近日为广大程序员再送上重磅开春好礼:<阿里巴巴Android开发手册(规约)>.该开发规范在阿里内部经过了长期的修缮,现已总结成册,向所有移动开发者.技术爱好者开放,希 ...
- 科学计算工具-Numpy初探
Numpy基础数据结构 Numpy数组是一个多维数组,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的原数据 导入该库: import numpy as np 多维数组ndarray ...
- 基于Python的Flask的开发实战(第一节Flask安装)
1.安装python虚拟环境 easy_install virtualenv easy_install pip cd /home/admin virtualenv flask-website sour ...
- 文本处理三剑客之grep&正则表达式
grep是一个文本过滤工具,它支持正则表达式,能把搜索匹配到的行打印出来.grep的全称是Global Regular Expression Print(全局正则表达式)使用权限是所有用户. 一.gr ...
- linux 运维 nginx服务器
nginx(web服务器) nginx是一个高性能的http和反向代理服务器,同时也是一个imap/pop3/smtp 代理服务器比apache简单官网:http://nginx.org nginx配 ...
- freemarker报错之二
1.错误描述 五月 27, 2014 12:07:05 上午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
- (二十四)mongodb中group的问题二
今天的工作还是继续昨天没有完成的,由于对mongodb数据库的不熟悉,导致昨天的思路上也出了一点问题,我需要查询出同一个ruleID中不同的processingID的条数,然后根据条数来排列先后顺序, ...
- Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity
1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...
- vxWorks下dosFs文件系统的创建
.cdromFs:允许系统从按照ISO9660标准文件系统格式化的CD-ROM上读取设备: 通常文件系统驱动位于磁盘(块存取)设备驱动和IO系统之间,这一点在VxWorks中也不例外,但它在此基础上扩 ...
- js小括号的作用
js中小括号()的用法详解:对于小括号无论是菜鸟还是高手一定都不会陌生,可以说它几乎是随处可见,虽然熟悉但并非真正的理解,由此可能会产生很多莫名其妙的错误,下面就通过代码实例详细介绍一下小括号的用法. ...