swoole直播推流与微服务的使用(第一节 swoole如何推流及原理)

环境说明: 系统:CentOS7.0
PHP版本:PHP7已上
swoole版本:2.0已上(协程redis扩展需要安装)
使用的框架是swoft

下面我讲解下swoole是如何推流的:
首先我们知道swoole是可以做到多端口监听的,如果是多端口监听我们的FD是公用的需要自行分别是什么协议消息不可混用。
直播我们就要用到一个转码工具叫ffmpeg的东西:点击自行下载

依赖安装环境
yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libstdc+±devel git libtool make mercurial nasm pkgconfig zlib-devel
安装过程:
./configure
make -j (-j是开启一个进程来编译,会快点)
make install

ffmpeg文档:点击链接
直播流程:
1.我讲解下这个只是测试的时swoole直播推流与微服务的使用(第一节 swoole如何推流及原理)

1.该图为章节的推流过程,首先从百度免费找一个rtmp免费流地址进行在ffmpeg进行设置。(此流程非最终流程,在rtmp这层其实是有SRS服务来完成获取流信息,由OBJS推流工具,或者大牛工具等工具进行推流,后续章节会讲解)

2.进行ffmpeg 进行转码 可添加水印等功能比较耗资源对服务器要求较高。
这里默认参数为:
ffmpeg -i 自己找的rtmp流地址 -r 25 -ar 44100 -acodec mp3 -profile baseline -level:v 3.1 -tune zerolatency -preset ultrafast -vcodec libx264 -f flv tcp://127.0.0.1:6614(swoft接受tcp的地址)
3. 打开写好的JS播放器进行播放,这里需要链接swoft设置好的websocket的地址进行监听及正常接受发送数据JS代码(如需本源码联系qq:1027575951)
4. 获取所有的fd用户信息进行遍历分发流。(这里特别注意:在刷新页面的时候只会发送一次头信息也就是识别流媒体的格式。如果没发送则无法进行播放流媒体),这里我把他存入到redis里面去了swoole直播推流与微服务的使用(第一节 swoole如何推流及原理)

好了,这一章节只是简单介绍安装和如何使用ffmpeg进行转码分发到swoft进行分发流。如有问题则添加博主的QQ,到时候会拉一个群讨论。
群主写文章不易,如写得好话,赞助博主继续为大家写好的文章
swoole直播推流与微服务的使用(第一节 swoole如何推流及原理)