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

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

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

使用背景:   

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

对于我们公司来说。一般都是要先上线,在考虑效率。所以经过我不断地查询资料找到了一款可以搭建直播服务器的工具 。就是他 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用计算机亩换算成平方,公倾,平方米,英亩,市亩,平方公里等常见面积单位转换在线计算器_三贝计算网_23bei.com…「建议收藏」

    本计算器用于土地面积不同单位之间的转换。输入已知面积,选择正确的单位类型,点击确定按钮,可求出其他单位的面积值。常见面积单位的换算关系,如下:1平方厘米=100平方毫米=0.1550平方英寸1平方米=10000平方厘米=1.1960平方码1公倾=10000平方米=2.4711英亩1平方公里=100公顷=0.3861平方英里1平方英寸=6.4516平方厘米1平方码=9平方英尺=0.8361平方米1英…

    2022年4月9日
    1.5K
  • 未明确定义列什么原因_将多表数据汇总到一个表

    未明确定义列什么原因_将多表数据汇总到一个表运行环境:Oracle10gsqlplus环境下。 在查询语句中,经常会出现一个错误: SQL基础:ORA-00918:未明确定义列的错误。 当前遇到有两种情况。原因为:当查询语句中,查询的表(数据集)中有相同的字段名,查询字段无法确认是改查那个字段 时,就会报未明确定义列的错误。 第一种情况: 1.单表时: 比如fconsign表中存在三个字段:fcsg_c

    2022年10月5日
    2
  • 计算机总线控制驱动,什么是sm总线控制器,总线控制器驱动怎么安装?「建议收藏」

    计算机总线控制驱动,什么是sm总线控制器,总线控制器驱动怎么安装?「建议收藏」如果您的设备管理器中”sm总线控制器”有一黄色问号,那么你就可以下载这款Intel主板上的SM总线控制器驱动程序(含64位)来进行安装了!什么是sm总线控制器?sm总线控制器全称是SystemManagementBus,是主板控制芯片上的一个通信控制器,sm总线控制器的概念是由Intel提出并应用的,使用sm总线控制器可以提升主板的使用效率。说白了,sm总线控制器是主板驱动的一部分,如果你的设…

    2022年5月3日
    170
  • fun.xls.exe病毒分析、查杀及批处理清除「建议收藏」

    fun.xls.exe病毒分析、查杀及批处理清除「建议收藏」大家经常用U盘,也许就和我一样,遇到过这种叫fun.xls.exe的病毒.fun.xle.exe是一种叫做U盘病毒tel.xls.exe的变种,会在电脑里注入文件,这个病毒目前应该有四个变种.用记事本打开AUTORUN是如下代码:[AutoRun]open=fun.xls.exeshellexecute=fun.xls.exeshell\Auto\command=fu…

    2022年10月4日
    3
  • Watcher分集介绍(Weight Watcher)

    TextWatcher是packageandroid.text包下的一个接口。这个接口继承了另外一个接口NoCopySpan。TextWatcher接口里主要是定义了三个抽象方法:下面是它的基本用法:TextWatcherfieldValidatorTextWatcher=newTextWatcher(){      @Override   

    2022年4月18日
    243
  • 金三银四,教你编写一份脱颖而出的简历,从而 offer 手到擒来,要参加校招的同学要提前准备了「建议收藏」

    金三银四,教你编写一份脱颖而出的简历,从而 offer 手到擒来,要参加校招的同学要提前准备了「建议收藏」最近一段时间不是金三银四嘛,有不少同学通过CSDN私信的方式把简历发给我,要我给出一些建议。看多了以后,我发现,有些同学根本不知道怎么写简历,格式乱七八糟,填写的个人经历就像是记流水账一样,完全勾不起我的任何兴趣。那,招聘方应该比我更苛刻,所以这样的简历投递出去,石沉大海的几率很大啊。2014年,我从苏州回到了洛阳,那是我最后一次投简历,现在还在招聘网站上挂着——公开的。嗯,在这么多年的时间里,并没有招聘方和猎头通过这份挂出去的简历给我打电话,虽然我的联系方式一直没变。那只能说明一点,我当时写的简历

    2022年5月2日
    35

发表回复

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

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