大体架构
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
以上是基本配置,
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 服务器的搭建结束.
以上就是我们总结出来的直播产品经验, 希望能帮助到创业者和从业者们自建视频直播平台, 其实技术研发成本比较高, 由于目前直播技术相对都比较成熟, 设备也都支持硬编码. 为了让更多的直播人拥有属于自己的直播平台和为每一位直播人打造一个直播梦想作为理念, 现在的直播软件源码有了更多有趣新颖的功能: 游戏直播间一对一直播短视频私密直播间夺宝游戏等等, 支持各种二次开发等等如果想更多的了解直播平台的搭建与运营鱼羊儿愿意与您秉烛夜谈, 共话巴山夜雨时!
来源: http://www.bubuko.com/infodetail-2531645.html