SRS流媒体服务器搭建+ffmpeg推流VLC取流观看 SRS服务器搭建,ffmpeg 本地推流,srs从本地拉流

一、编译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路径要是绝对的

猜你喜欢

转载自www.cnblogs.com/kenshinobiy/p/9235177.html