前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >教你如何搭建自己的直播服务器-简易

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

作者头像
全栈程序员站长
发布2022-09-07 18:09:11
发布2022-09-07 18:09:11
3.1K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

使用背景:   

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

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

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

安装和配置:

  安装:

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

  配置:

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

代码语言:javascript
代码运行次数:0
运行
复制
worker_processes  1;   #Nginx进程数,建议设置为等于CPU总核数
 
events {
    worker_connections  1024;  #工作模式与连接数上限
}
 
rtmp_auto_push on;
 
 
#RTMP服务
rtmp{
    server{
        listen 1935;        #服务端口
        chunk_size 4096;    #数据传输块的大小
        
        application vod{
            play ./vod;   #视频文件存放位置
        }
        application live{
            live on;                     #开启直播
            
            #开启录制功能,会将直播的信息保存成一个flv文件
            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;              #嵌套模式
        }
    }
}

 
 
#HTTP服务
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
 
    server {
        listen       80;
        server_name  localhost;
 
        location / {
            root   html;
            index  index.html index.htm;
        }
 
        location /live_hls{
            types{
                #m3u8 type设置
                application/vnd.apple.mpegurl m3u8;
                #ts分片文件设置
                video/mp2t ts;
            }
            #指向访问m3u8文件目录
            alias ./m3u8File;
                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;
        }
 

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

运行:

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

这里推荐使用cmd进行启动程序,因为nginx给我们提供了很多命令可以更好地使用。

代码语言:javascript
代码运行次数:0
运行
复制
nginx命令:
nginx.exe -t   检查配置是否正确
start nginx     启动
nginx -s stop  立即停止服务
systemctl restart nginx.service   重启Nginx服务
netstat -tlnp   查看端口号

1,检查配置

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

2,启动程序

接着我们运行启动命令。

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

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

推流

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

拉流

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

rtmp地址:

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

http地址:

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

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

然后文件夹中也出现了我们推流的一些m3u8.文件。

保存录像

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

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154600.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用背景:   
  • 安装和配置:
    •   安装:
    •   配置:
  • 运行:
    • 1,检查配置
    • 2,启动程序
  • 推流
  • 拉流
    • rtmp地址:
    • http地址:
  • 保存录像
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档