安装
FFmpeg安装
SRS安装
unzip SRS-Ubuntu14-x86_64-2.0.205.zip
cd SRS-Ubuntu14-x86_64-2.0.205.zip
bash INSTALL
/etc/init.d/srs start
启动;/etc/init.d/srs stop
停止
(Ingest采集实例)如何将其他流拉到SRS作为RTMP流
主要部分是编写SRS配置文件,此处是conf/ingest.conf
,在SRS服务器启动时指定启动该文件:
配置播放本地视频文件
listen 1935; max_connections 1000; vhost __defaultVhost__ { ingest livestream { enabled on; input { # the type of input. # can be file/stream/device, that is, # file: ingest file specifies by url. # stream: ingest stream specifeis by url. # device: not support yet. # default: file type file; url ./doc/source.200kbps.768x320.flv; } // 这里更改为你安装的ffmpeg的目录下的/bin/ffmpeg ffmpeg ./objs/ffmpeg/bin/ffmpeg; engine { enabled off; output rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream; } } }
启动SRS(不必再使用
etc/init.d/srs start
来启动):./objs/srs -c conf/ingest.conf
type
指定了输入的几种类型:- file:输入文件,url指定了文件路径。srs会给ffmpeg传递-re参数。
- stream:输入为流,url指定了流地址。
- device:暂时不支持。
engine
指定了转码引擎的参数:- enabled:指定是否转码,若off或者vcodec/acodec没有指定,则不转码,使用ffmpeg-copy。
- output:输出路径。有两个变量可以使用:port为系统侦听的RTMP端口,vhost为配置了ingest的vhost。
engine默认为copy,当:
engine的enabled为off,没有开启转码engine,则使用copy。
engine的vcodec/acodec没有指定,则使用copy。
配置播放网络摄像头视频
根据上面配置中的注释说明,在播放url网络流视频时,需要将type设置为
stream
,然后设置的url的地址即为网络摄像头的地址listen 1935; max_connections 1000; vhost __defaultVhost__ { ingest livestream { enabled on; input { # the type of input. # can be file/stream/device, that is, # file: ingest file specifies by url. # stream: ingest stream specifeis by url. # device: not support yet. # default: file type stream; url 网络摄像头的地址; } // 这里更改为你安装的ffmpeg的目录下的/bin/ffmpeg ffmpeg ./objs/ffmpeg/bin/ffmpeg; engine { enabled off; output rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream; } } }
启动FFmpeg推流(必需)
for((;;)); do \ ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \ -vcodec copy -acodec copy \ -f flv -y rtmp://192.168.1.170/live/livestream; \ sleep 1; \ done
参数说明参考:
启动srs,加载配置文件(一定要记住启动srs,不走多了就容易忘…)
./objs/srs -c conf/ingest.conf
使用
ifconfig
查看服务器地址打开VLC,播放网络视频
rtmp://服务器IP/live/livestream;
SRS 性能测试
Performance Banchmark,官网这一部分如果只是做srs的性能测试的话,不用理会nginx-rtmp
相关的部分即可。
这里如果是将srs-bench
先git到windows上,然后传输到linux系统中,执行./configure && make
时,会出现类似下面的错误:
wlw@ubuntu:/tmp/srs-bench$ bash ./configure
: ambiguous redirect 1
./configure: line 31: syntax error near unexpected token `$'\r''
'/configure: line 31: ` )
看样子是windows和linux中的回车与换行的差别…解决方法:是直接下载srs-brench的压缩包,或者在linux系统中执行git命令下载srs-brench。
剩下的我想不到其他的细节了…,上面都是亲身实践,并无虚构,这是因为课程设计才去了解这类知识,否则的话,不会知道有这类技术,感慨颇多。要学的东西还有很多,很多…