直播平台源代码快速搭建视频直播平台
直播平台源代码快速搭建直播服务
⼤体架构
srs+ffmpeg+第三⽅(阿⾥云,腾讯云等),因为不是专门做直播平台,所以借助第三⽅平台(服务器,带宽,cdn可以省不少⼼)。当然如果你想⾃建⼀个视频直播平台也是可以的~~
srs⽤来接收从⼿机客户端推来的rtmp流,ffmpeg⽤来对视频进⾏处理,⽐如增加logo或滤镜等,在各种技术尝试中,⾛过不少弯路,接收流⽅⾯还使⽤过netty,nginx-rtmp,流处理⽅⾯使⽤过javaCV,但效果有些不理想.,java太吃内存,cpu。
下⾯我们来看⼀下直播平台源代码快速搭建直播服务⼤致的流程吧
第⼀步,获取SRS。
git pull
第⼆步,编译SRS。
.
/configure && make
第三步,编写SRS配置⽂件。
将以下内容保存为⽂件,譬如f,服务器启动时指定该配置⽂件(srs的conf⽂件夹有该⽂件)。
f
listen 1935;
max_connections 1000;
vhost defaultVhost {
}
第四步,启动SRS。
./objs/srs -c f
以上是基本配置,
直播平台源代码安装成功后⽂件路径如下
下⾯是直播平台源代码完整配置
listen              1935;
max_connections    1000;
daemon              off;
#srs_log_tank        console;
srs_log_tank        file;
srs_log_file        ./objs/srs.log;
http_api {
enabled        on;
listen          8085;
crossdomain    on;
}
{
dvr {
enabled            on;
#dvr_path            ./objs/nginx/html/[app]/[stream].[timestamp].flv;
dvr_path            ./objs/nginx/html/[stream]/[timestamp].flv;
dvr_plan            session;
dvr_duration        30;
dvr_wait_keyframe  on;
}
http_hooks {
enabled        on;
on_connect      127.0.0.1:8383/lss/liveItem/LiveItemAction!streamStatus.do ;
on_close        127.0.0.1:8383/lss/liveItem/LiveItemAction!streamStatus.do ;
on_publish      127.0.0.1:8383/lss/liveItem/LiveItemAction!streamStatus.do ;
on_unpublish    127.0.0.1:8383/lss/liveItem/LiveItemAction!streamStatus.do  ;
on_dvr          127.0.0.1:8085/api/v1/dvrs;
#on_play        127.0.0.1:8085/api/v1/sessions ;
#on_stop        127.0.0.1:8085/api/v1/sessions ;
}
}
vhost后⾯要写对应的推流地址或者ip.h5源码交易平台
http_api 与vhost中的http_hooks为⼀组配置,当srs接收,停⽌到推流时会调⽤配置⽂件中所填地址,并且将各种参数包括streamId,appid传到后台中。
hvhost中的dvr功能是本地录制,dvr_plan有多种录制计划
session:按照session来关闭flv⽂件,即编码器停⽌推流时关闭flv,整个session录制为⼀个flv。
segment:按照时间分段录制,flv⽂件时长配置为dvr_duration和dvr_wait_keyframe。注意:若不按关键帧切flv(即dvr_wait_keyframe配置为off),所以会导致后⾯的flv启动时会花屏。
⾄此srs服务器的搭建结束.ffmpeg下期继续介绍

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。