转!快速搭建视频直播平台

快速搭建直播服务

大体架构

srs+ffmpeg+第三方(阿里云,腾讯云等),因为不是专门做直播平台,所以借助第三方平台(服务器,带宽,cdn可以省不少心)。当然如果你想自建一个视频直播平台也是可以的~~

srs用来接收从手机客户端推来的rtmp流,ffmpeg用来对视频进行处理,比如增加logo或滤镜等,在各种技术尝试中,走过不少弯路,接收流方面还使用过netty,nginx-rtmp,流处理方面使用过javaCV,但效果有些不理想.,java太吃内存,cpu。

下面我们来看一下大致的流程吧

srs的文档简单全面,附上git地址

https://github.com/ossrs/srs/wiki/v2_CN_Home

第一步,获取SRS。

git clone https://github.com/ossrs/srs
cd srs/trunk

或者使用git更新已有代码:

git pull

第二步,编译SRS。

./configure && make

第三步,编写SRS配置文件。

将以下内容保存为文件,譬如conf/rtmp.conf,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。

# conf/rtmp.conf
listen              1935;
max_connections     1000;
vhost __defaultVhost__ {
}

第四步,启动SRS。

./objs/srs -c conf/rtmp.conf

以上是基本配置,

安装成功后文件路径如下

下面是完整配置

  1. listen 1935;
  2. max_connections 1000;
  3. daemon off;
  4. #srs_log_tank console;
  5. srs_log_tank file;
  6. srs_log_file ./objs/srs.log;
  7. http_api {
  8. enabled on;
  9. listen 8085;
  10. crossdomain on;
  11. }
  12. vhost test.xx.com {
  13. dvr {
  14. enabled on;
  15. #dvr_path ./objs/nginx/html/[app]/[stream].[timestamp].flv;
  16. dvr_path ./objs/nginx/html/[stream]/[timestamp].flv;
  17. dvr_plan session;
  18. dvr_duration 30;
  19. dvr_wait_keyframe on;
  20. }
  21. http_hooks {
  22. enabled on;
  23. on_connect http:/ /127.0.0.1:8383/lss /liveItem/LiveItemAction!streamStatus. do ;
  24. on_close http:/ /127.0.0.1:8383/lss /liveItem/LiveItemAction!streamStatus. do ;
  25. on_publish http:/ /127.0.0.1:8383/lss /liveItem/LiveItemAction!streamStatus. do ;
  26. on_unpublish http:/ /127.0.0.1:8383/lss /liveItem/LiveItemAction!streamStatus. do ;
  27. on_dvr http:/ /127.0.0.1:8085/api /v1/dvrs;
  28. #on_play http://127.0.0.1:8085/api/v1/sessions ;
  29. #on_stop http://127.0.0.1:8085/api/v1/sessions ;
  30. }
  31. }

vhost后面要写对应的推流地址或者ip.

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下期继续介绍
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值