教你如何搭建自己的直播服务器简易-飞外

使用背景:

在项目中有没有遇见过要对接直播接口的需求?我想大家都是有的。但是怎么说呢,对接第三方的缺点也很明显,除去那不可避免的一些事故。最大的缺点就是要钱!!!要钱!!!要钱!!!

对于我们公司来说。一般都是要先上线,在考虑效率。所以经过我不断地查询资料找到了一款可以搭建直播服务器的工具 。就是他 nginx.exe

下面直接开撸!首先放一下官网地址:http://nginx.org/en/download.html

安装和配置:

博主用的是window系统,其它系统...请绕路(参考别的文献)。,安装之后需要增加几个文件夹如图:

然后打开\conf\下的nginx.conf 按照下面进行配置

worker_processes 1; #Nginx进程数,建议设置为等于CPU总核数events { worker_connections 1024; #工作模式与连接数上限rtmp_auto_push on;
record all; #视频录制存放目录,注意 因为需要生成文件,所以需要nginx以某种可以让其他服务读写文件的用户权限启动 record_path D:\zbvideo; #每次录制是否唯一文件名,会以 房间号-时间戳 为名称,房间号由推流端指定,跟在 live后面,如 live/room1 record_unique on; #将直播录制的视频转为mp4格式,主要为FFmpeg指令的使用,未验证 #exec_record_done 为录制完成后执行的指令 exec_record_done ffmpeg -y -i $$path -acodec libmp3lame -ar 44100 -ac 1 -vcodec libx264 $$path/$$basename.mp4;
hls on; #开启hls直播。这个参数把直播服务器改造成实时回放服务器 #wait_key on; #对视频切片进行保护,这样就不会产生马赛克了 hls_path ./m3u8File; #切片视频文件存放位置(HLS,m3u8文件存放位置) hls_fragment 2s; #每个视频切片的时长 hls_playlist_length 16s; recorder myRecord{ record all manual; record_suffix _.flv; record_path ./rec; #hls_continuous on; #连续模式 #hls_cleanup on; #对多余的切片进行删除 #hls_nested on; #嵌套模式
add_header Cache-Control no-cache; #禁止缓存 add_header Access-Control-Allow-Origin *; #允许所有域名跨域访问代理地址 add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET; #跨域请求访问请求方式, location /control{ rtmp_control all; location /stat{ rtmp_stat all; rtmp_stat_stylesheet stat.xsl; location /stat.xsl{ root ./nginx-rtmp-module-master;

然后我们进行运行直播服务器,怎么运行呢。可以直接使用管理员身份运行nginx.exe。运行后打开任务管理器的进程看一下是否启动成功。


1,检查配置

首先我们打开cmd命令,然后抵达所在文件夹。安装后建议先用上面的检查配置的命令看一下是否ok,配置无问题则会返回以下内容。


接着我们运行启动命令。

回车之后我们就可以打开任务管理器看到进程是已经开启了。

然后打开游览器地址栏中输入localhost:80,出现下面图片内容代表没有问题。

推流

下一步我们进行obs推流 推流后可以让其他端口进行拉流播放;

拉流的话这里提供两种方式

rtmp地址:

第一种直接原地址rtmp:进行拉流。

http地址:

另外一种是推荐的http:进行拉流 格式如下:http://localhost:80/live_hls/1441970998831222784.m3u8

可以看到访问直播流是没有问题的~


保存录像

非常感谢看到这里,最后这个是已经进行保存录像的配置了。具体实现是在配置文件中的record_path 这里进行自定义文件夹保存。

可以看到这里是flv的视频媒体。