SRS流媒体服务器搭建+ffmpeg推流VLC取流观看
一、编译SRS
https://github.com/winlinvip/simple-rtmp-server
目前有1.0-release、2.0、3.0等版本
2.0官方文档地址:https://github.com/winlinvip/simple-rtmp-server/wiki/v2_CN_Home
1.如果是新系统,先安装git
CentOS:yum -y install git
- 1
2.源码下载:
git clone https://code.csdn.net/winlinvip/srs-csdn.git
- 1
3.git操作
a.改变SRS分支
切换到1.0分支
git pull && git checkout 1.0release
切换到2.0分支
git pull && git checkout 2.0release
- 1
- 2
- 3
- 4
我把源码下载到了/mnt目录,然后我们cd /mnt
b.查看当前分支
cd /mnt/srs-csdn;git branch
- 1
c.改变到2.0分支
git pull && git checkout 2.0release
- 1
4.编译安装
cd /mnt/srs-csdn/trunk
- 1
./configure -h #查看编译时的帮助,里面有一些指定的参数是情况加减,官方文档
开始编译:
./configure --prefix=/usr/local/srs --with-ssl --with-hls --with-hds --with-dvr --with-nginx --with-http-callback --with-http-server --with-stream-caster --with-http-api --with-ffmpeg --with-transcode --with-ingest --with-stat --with-librtmp --with-research --with-utest --with-gperf --with-gprof
make;make install
- 1
- 2
- 3
第三方应用启动:
sudo ./objs/nginx/sbin/nginx --- 启动nginx for hls
./objs/ffmpeg/bin/ffmpeg ---ffmpeg
python ./research/api-server/server.py 8085 ---to start the api-server
- 1
- 2
- 3
SRS启动
cd /mnt/srs-csdn/trunk
./objs/srs -c conf/srs.conf
ps -ef | grep srs
./srs -v
- 1
- 2
- 3
- 4
到此为止,SRS已编译安装完成!
二、配置RTMP
1.RTMP URL解释:
rtmp://HOST:PORT/app/stream_name
rtmp: 协议头
HOST:注意的IP地址或域名
app: 应用名称
stream_name:流名称
- 1
- 2
- 3
- 4
- 5
2.SRS中RTMP配置信息
文件目录:/mnt/srs-csdn/trunk/conf/rtmp.conf
配置内容:
listen 1935;
pid ./objs/srs.pid;
chunk_size 60000;
ff_log_dir ./objs;
srs_log_tank file;
#配置日志答应到文件,需要和srs_log_level配合使用
srs_log_level trace;
#制定配置文件的级别,默认级别是trace
srs_log_file ./objs/srs.log;
#制定日志文件的位置。
max_connections 1000;
#最大连接数
daemon on;
#以daemon的方式启动,如果要启动在console,那么需要配置daemon off;并且,需要配置srs_log_tank console;
utc_time off;
#是否使用utc时间。如果该值为off则使用本地时间,如果开始使用utc时间。
vhost __defaultVhost__ {
#默认的vhost,在没有指明vhost的情况,默认使用这个vhost。
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
3.ffmpeg推流 VLC播放
ffmpeg可执行程序目录:/mnt/srs-csdn/trunk/objs/ffmpeg/bin/ffmpeg
推流:
cd /mnt/srs-csdn/trunk/objs/ffmpeg/bin
./ffmpeg -i "abc.avi" -vcodec libx264 -vprofile baseline -level 30 -g 60 -vb 800k -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -f flv rtmp://192.168.1.62:1935/live/zb
- 1
- 2
VLC取流:
rtmp://192.168.1.62:1935/live/zb
- 1
SRS服务器搭建,ffmpeg 本地推流,srs从本地拉流
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
参考: https://github.com/ossrs/srs/wiki/v2_CN_SampleFFMPEGgit clone https://github.com/ossrs/srscd srs/trunk./configuremakemake install./objs/srs -c conf/myconf.conf其中: ./configure --with-ffmpeg && make如果编译失败就去掉--with-ffmpeg,自己安装ffmpeg本地推流: ffmpeg -re -i /root/Videos/aaa.mp4 -c copy -f flv rtmp://192.168.2.125:1935/live/aaa |
配置文件myconf.conf:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# the config for srs use ffmpeg to transcode# @see https://github.com/ossrs/srs/wiki/v1_CN_SampleFFMPEG# @see full.conf for detail config.listen 1935;max_connections 1000;daemon off;srs_log_tank console;vhost __defaultVhost__ { transcode { enabled on; ffmpeg ./objs/ffmpeg/bin/ffmpeg; engine ff { enabled on; vfilter { } vcodec libx264; vthreads 4; vprofile main; vpreset medium; vparams { } acodec libfdk_aac; aparams { } output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; } }#保存直播为flvdvr { # https://github.com/ossrs/srs/wiki/v2_CN_DVR enabled on; dvr_path ./objs/nginx/html/[app]/[stream].[timestamp].flv; dvr_plan session; dvr_duration 30; dvr_wait_keyframe on; time_jitter full; }} |
srs从本地拉流:
my.ingest.conf
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
listen 1935;max_connections 1000;daemon off;srs_log_tank console;vhost __defaultVhost__ { ingest livestream { enabled on; input { type file; url /root/Videos/zzzz.mp4; } ffmpeg /usr/local/bin/ffmpeg; engine { enabled off; output rtmp://127.0.0.1:1935/live/livestream; #rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream; } }} |
关键是ffmpeg路径要是绝对的
SRS流媒体服务器搭建+ffmpeg推流VLC取流观看的更多相关文章
- 流媒体服务器搭建 ffmpeg + nginx
第一部分: mkdir ~/working 切换到~/working目录下 cd ~/working 获取nginx源码: wget http://nginx.org/download/nginx-1 ...
- Android视频直播:流媒体服务器搭建
一.前言 实时视频直播是这两年非常火的技术形态,已经渗透到教育.在线互娱等各种业务场景中.但要搭建一套实时视频直播系统,并非易事,下面针对直播系统的的搭建做一下说明: 1.1 通常的直播系统的技术模型 ...
- nginx-rtmp流媒体服务器搭建【转】
nginx-rtmp https://github.com/pengqiuyuan/nginx-rtmp nginx-rtmp 流媒体服务器的搭建(采集桌面,手机直播) 在线Demo,直播自己的pc机 ...
- 为SRS流媒体服务器添加HLS加密功能(附源码)
为SRS流媒体服务器添加HLS加密功能(附源码) 之前测试使用过nginx的HLS加密功能,会使用到一个叫做nginx-rtmp-module的插件,但此插件很久不更新了,网上搜索到一个中国制造的叫做 ...
- rtmp与hls流媒体服务器搭建:ubuntu下Nginx搭建初探与rtmp-module的添加
关键词:Nignx(http服务器):rtmp,hls(流媒体服务) 前言:感谢开源,感谢战斗民族.现在在做流媒体服务的一些工作,流媒体服务器搭建的网上教程多入牛毛,但是细细查看,发现很多同志贴上来的 ...
- 利用Nginx搭建RTMP视频直播,点播服务器,ffmpeg推流,回看
一.环境和工具 ubuntu 14.04 desktop 不用server的原因是一部分的演示用到了linux视频播放和直播软件,自己还要装桌面,麻烦. 不建议使用 最新的16TLS,我一开始 ...
- 流媒体服务器搭建 red5
简介 1. 流媒体指以流方式在网络中传送音频.视频和多媒体文件的媒体形式.相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等 ...
- windows server 2012 流媒体服务器搭建(直播与点播)
IIS Live Smooth Streaming(实时平滑流式处理)是微软下一代流媒体解决方案.该技术是在IIS web中集成媒体传输平台IIS media services,实现利用标准 HTTP ...
- SRS服务器搭建,ffmpeg 本地推流,srs从本地拉流
参考: https://github.com/ossrs/srs/wiki/v2_CN_SampleFFMPEG git clone https://github.com/ossrs/srs cd s ...
随机推荐
- 使用@Valid和BindingResult验证请求参数的合法性并处理校验结果
/** * 添加用户,使用@RequestBody将请求体映射到Action方法参数中 * 使用@Valid注解验证请求参数的合法性 * 使用BindingResult处理校验结果 * @param ...
- qemu中使用9p,支持host和guest中共享目录【转】
转自:https://blog.csdn.net/ayu_ag/article/details/52956351 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csd ...
- 使用chttpfile的一个错误
先贴一部分代码 CString strHttpName="http://localhost/TestReg/RegForm.aspx"; // 需要提交数据的页面 CString ...
- select2使用方法总结
官网:http://select2.github.io/ 调用 <link href="~/Content/select2.min.css" rel="styles ...
- 微信小程序-下拉松开弹不回去顶部留一段空白
解决办法: 空白的出现有可能是多次触发下拉事件导致请求过多导致页面反应延迟. 在 onPullDownRefresh 事件里加setTimeout事件延迟下下拉刷新的事件. /** * 页面相关事件处 ...
- Uncaught RangeError: Maximum call stack size exceeded
环境: jquery+bootstrap+bootstrapValidator 问题描述:有个form表单,一点击按钮提交,就会报如题错误.正常应该是去校验表单输入. 解决: 从日志分析来看,报错的起 ...
- EF数据迁移
在项目中使用Entity Framework的Code First模式,进行数据迁移时,Migration文件夹中存放的是每一次Entity的修改如何同步到数据的操作方法,每个文件中都只有Up和Dow ...
- LIght OJ 1179
题意: 约瑟夫环问题, 给你N 个人, 没K个出队, 问最后剩下的人的编号. 思路: 直接模拟会T, 对于N个人 , 是一个约瑟夫环问题, 当第一个人出队后, (标号一定为 k % n -1) 剩下的 ...
- 前端 ---jQuery的补充
15-jQuery补充 jquery内容补充 jquery除了咱们上面讲解的常用知识点之外,还有jquery 插件.jqueryUI知识点 jqueryUI 官网: https://jqueryu ...
- 随机生成游戏用户昵称(nodejs版本)(含机器人头像,金币等)
1 前言 有时需要生成随机的用户(或机器人)昵称,头像,金币等,但又不想太生硬,可以现在网上爬一些常见昵称到文本中,然后读取出来,随机使用即可. 2 代码 var nickNameArr = []; ...