FFMPEG对RTMP直播流转码,SRS在收到编码器推送的直播流后,可以对直播流进行转码,输出RTMP流到服务器(也可以到SRS自己)。 详细规则参考:FFMPEG,本文列出了具体的部署的实例。
假设服务器的IP是:192.168.1.170
第一步,获取SRS
详细参考GIT获取代码
代码语言:javascript复制git clone https://github.com/ossrs/srs
cd srs/trunk
复制
或者使用git更新已有代码:
代码语言:javascript复制git pull
复制
第二步,编译SRS
详细参考Build
代码语言:javascript复制./configure --ffmpeg-tool=on &&make
复制
第三步,编写SRS配置文件
详细参考FFMPEG
将以下内容保存为文件,譬如conf/ffmpeg.transcode.conf,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。
代码语言:javascript复制# conf/ffmpeg.transcode.conf
listen 1935;
max_connections 1000;
vhost __defaultVhost__ {
transcode {
enabled on;
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
engine ff {
enabled on;
vfilter {
}
vcodec libx264;
vbitrate 500;
vfps 25;
vwidth 768;
vheight 320;
vthreads 12;
vprofile main;
vpreset medium;
vparams {
}
acodec libfdk_aac;
abitrate 70;
asample_rate 44100;
achannels 2;
aparams {
}
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
}
}
}
复制
第四步,启动SRS
详细参考FFMPEG
代码语言:javascript复制./objs/srs -c conf/ffmpeg.conf
复制
第五步,启动推流编码器
详细参考FFMPEG
使用FFMPEG命令推流:
代码语言:javascript复制for((;;));do
./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.flv
-c copy
-f flv rtmp://192.168.1.170/live/livestream;
sleep1;
done
复制
或使用FMLE推流:
代码语言:javascript复制FMS URL: rtmp://192.168.1.170/live
Stream: livestream
复制
涉及的流包括:
- 编码器推送流:rtmp://192.168.1.170:1935/live/livestream
- 观看原始流:rtmp://192.168.1.170:1935/live/livestream
- 观看转码流:rtmp://192.168.1.170:1935/live/livestream_ff
第六步,观看RTMP流
详细参考FFMPEG
RTMP流地址为:rtmp://192.168.1.170/live/livestream
可以使用VLC观看。
或者使用在线SRS播放器播放:srs-player
备注:请将所有实例的IP地址192.168.1.170都换成部署的服务器IP地址。
第七步,观看FFMPEG转码的RTMP流
详细参考FFMPEG
RTMP流地址为:rtmp://192.168.1.170/live/livestream_ff
可以使用VLC观看。
备注:请将所有实例的IP地址192.168.1.170都换成部署的服务器IP地址。
Winlin 2014.3