一、编译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_SampleFFMPEG
 
git clone https://github.com/ossrs/srs
cd srs/trunk
./configure
make
make 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];
        }
    }
 
#保存直播为flv
dvr {
        # 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取流观看的更多相关文章

  1. 流媒体服务器搭建 ffmpeg + nginx

    第一部分: mkdir ~/working 切换到~/working目录下 cd ~/working 获取nginx源码: wget http://nginx.org/download/nginx-1 ...

  2. Android视频直播:流媒体服务器搭建

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

  3. nginx-rtmp流媒体服务器搭建【转】

    nginx-rtmp https://github.com/pengqiuyuan/nginx-rtmp nginx-rtmp 流媒体服务器的搭建(采集桌面,手机直播) 在线Demo,直播自己的pc机 ...

  4. 为SRS流媒体服务器添加HLS加密功能(附源码)

    为SRS流媒体服务器添加HLS加密功能(附源码) 之前测试使用过nginx的HLS加密功能,会使用到一个叫做nginx-rtmp-module的插件,但此插件很久不更新了,网上搜索到一个中国制造的叫做 ...

  5. rtmp与hls流媒体服务器搭建:ubuntu下Nginx搭建初探与rtmp-module的添加

    关键词:Nignx(http服务器):rtmp,hls(流媒体服务) 前言:感谢开源,感谢战斗民族.现在在做流媒体服务的一些工作,流媒体服务器搭建的网上教程多入牛毛,但是细细查看,发现很多同志贴上来的 ...

  6. 利用Nginx搭建RTMP视频直播,点播服务器,ffmpeg推流,回看

        一.环境和工具 ubuntu 14.04 desktop 不用server的原因是一部分的演示用到了linux视频播放和直播软件,自己还要装桌面,麻烦. 不建议使用 最新的16TLS,我一开始 ...

  7. 流媒体服务器搭建 red5

    简介 1. 流媒体指以流方式在网络中传送音频.视频和多媒体文件的媒体形式.相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等 ...

  8. windows server 2012 流媒体服务器搭建(直播与点播)

    IIS Live Smooth Streaming(实时平滑流式处理)是微软下一代流媒体解决方案.该技术是在IIS web中集成媒体传输平台IIS media services,实现利用标准 HTTP ...

  9. SRS服务器搭建,ffmpeg 本地推流,srs从本地拉流

    参考: https://github.com/ossrs/srs/wiki/v2_CN_SampleFFMPEG git clone https://github.com/ossrs/srs cd s ...

随机推荐

  1. string.Empty, "" 和 null 三者的区别

    转载:http://www.cnblogs.com/mxxblog/archive/2013/08/22/3275387.html 这是一个及其常见的问题,网上已经有关于这个问题的很多讨论.但是我觉得 ...

  2. Pytorch 细节记录

    1. PyTorch进行训练和测试时指定实例化的model模式为:train/eval eg: class VAE(nn.Module): def __init__(self): super(VAE, ...

  3. Shell-匹配FTP文件名

    想弄个脚本,下载每日构建的版本,由于版本文件名中有构建时间(不是固定值),只能按日期确认文件名,例如:project_name_2019-01-04*.exe 搜索了下,可以用dir filename ...

  4. LwIP Application Developers Manual10---LwIP IPv4/IPv6 stacks

    1.前言 lwIP正在加入IPv6,一个实验性的版本可以通过git下载,该版本实现了一个IPv4/IPv6的双协议栈.通过在lwipopts.h定义LWIP_IPV6可以使能IPv6 2.已实现的IP ...

  5. 狼抓兔子 BZOJ- 1001 最小割

    https://www.lydsy.com/JudgeOnline/problem.php?id=1001 一个图,问你花费多少才能把到终点的所有边堵住... 就是求一个最小割,把$(1,1)$和$( ...

  6. Linux系统平均负载3个数字的含义

    越来越多人开始接触Linux操作系统,从VPS到无线路由的刷机系统(如OpenWRT.Tomato),同时也必不可少地会在各式各样的探针和系统监测界面上看到"系统平均负载"或者&q ...

  7. Struts2框架下的文件上传文件类型、名称约定

    Struts2框架下的文件上传机制:1.通过multipart/form-data form提交文件到服务器2.文件名是通过什么地方设置的?在strust2的FileUploadInterceptor ...

  8. SpringMVC拦截器(慕课网)

    拦截器:通过统一拦截从浏览器发往服务器的请求来完成功能的增强 使用场景:解决请求的共性问题 如:乱码.权限验证 基本工作原理:拦截器和过滤器的工作原理相似 乱码问题:使用Spring过滤器(Filte ...

  9. python学习第7天

    编码的进阶 文件操作 深浅copy

  10. SpringCloud的版本

    Spring Cloud 项目目前仍然是快速迭代期,版本变化很快.这里整理一下版本相关的东西,备忘一下. 大版本 版本号规则 Spring Cloud并没有熟悉的数字版本号,而是对应一个开发代号. C ...