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

教你如何搭建自己的直播服务器-简易使用背景:在项目中有没有遇见过要对接直播接口的需求?我想大家都是有的。但是怎么说呢,对接第三方的缺点也很明显,除去那不可避免的一些事故。最大的缺点就是要钱!!!要钱!!!要钱!!!对于我们公司来说

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

使用背景:   

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

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

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

安装和配置:

  安装:

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

<span role="heading" aria-level="2">教你如何搭建自己的直播服务器-简易

 

  配置:

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

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。运行后打开任务管理器的进程看一下是否启动成功。

<span role="heading" aria-level="2">教你如何搭建自己的直播服务器-简易

 

 

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

nginx命令:
nginx.exe -t   检查配置是否正确
start nginx     启动
nginx -s stop  立即停止服务
systemctl restart nginx.service   重启Nginx服务
netstat -tlnp   查看端口号

 

1,检查配置

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

<span role="heading" aria-level="2">教你如何搭建自己的直播服务器-简易

 

 

2,启动程序

接着我们运行启动命令。

<span role="heading" aria-level="2">教你如何搭建自己的直播服务器-简易

 

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

<span role="heading" aria-level="2">教你如何搭建自己的直播服务器-简易

 

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

<span role="heading" aria-level="2">教你如何搭建自己的直播服务器-简易

 

 推流

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

<span role="heading" aria-level="2">教你如何搭建自己的直播服务器-简易

 

拉流

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

rtmp地址:

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

http地址:

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

 

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

<span role="heading" aria-level="2">教你如何搭建自己的直播服务器-简易

 

 

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

<span role="heading" aria-level="2">教你如何搭建自己的直播服务器-简易

 

 

 保存录像

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

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

<span role="heading" aria-level="2">教你如何搭建自己的直播服务器-简易

 

 


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • redis可视化客户端工具TreeNMS

    redis可视化客户端工具TreeNMS

    2021年11月3日
    58
  • Idea激活码最新教程2023.2版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2023.2版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2023 2 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2023 2 成功激活

    2025年5月26日
    3
  • 微信小程序简洁登录页面(附源码)

    微信小程序简洁登录页面(附源码)微信小程序简洁登录页面 附源码 1 上图 2 用户不存在 3 上代码 3 1login wxml viewclass v1 style height clientHeight clientHeight px auto v2 父容器子 view 使用绝对布局 viewclass v2 viewclass v2 viewclass v1 style height clientHeight clientHeight px auto

    2025年7月21日
    3
  • MATLAB插值函数interp1

    MATLAB插值函数interp1插值法    插值法又称“内插法”,是利用函数f(x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f(x)的近似值,这种方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。线性插值法    线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。    

    2022年6月13日
    32
  • C语言再学习 — 创建excel文件

    C语言再学习 — 创建excel文件参看:C语言操作Excel表格上一篇文章讲了一下cJSON,可以生成json文件了。这篇文章讲一下怎么生成excel表xsl格式文件。注意点:1、文件类型为xls或者xlsx2、使用fprintf写入3、了解转义字符参看:C语言再学习–转义字符示例:uint32_tCreate_Excel(void){ FILE*fp_txt=NULL; fp_txt=fopen(“C:\\Users\\Administrator\\Desktop\\res.xls”,”

    2022年8月30日
    8
  • 【2020】DBus,一个更能满足企业需求的大数据采集平台「建议收藏」

    【2020】DBus,一个更能满足企业需求的大数据采集平台「建议收藏」功能远超Sqoop、DataX、Flume、Logatash、Filebeat等采集工具深知其他组件的局限性,才能彰显DBus的优越感当前有很多数据采集工具(Sqoop、DataX、Flume、Logatash、Filebeat等),他们或多或少都存在一些局限性。一个共性问题是缺乏统一的数据源端管控,所以也就无法找到统一的数据入口,那后续处理元数据或者血缘分析会异…

    2022年5月27日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号