windows 桌面ffmpeg流媒体分享 录屏hls推流nginx(windows搭建rtmp服务器/hls服务器)


一、 前言

1.本文目的为实现windows下开机自动启动的桌面直播流媒体服务。

2具体方案为定时任务自动启动ffmpeg脚本开启hls流媒体直播,nginx自动启动hls流web服务。

3.网页使用EasyPlayerjs插件播放流媒体视频。(也可以用别的)

4.windows下搭建nginx的rtmp流媒体服务器(rtmp流媒体服务器/hls流媒体服务器)需要为nginx添加nginx-rtmp-module。

5.不过给nginx添加nginx-rtmp-module需要编译,另外一种更方便的方法就是使用带rtmp的nginx 1.7.11.3 Gryphon可以免去编译的步骤。

 

二、 环境与准备文件

1.官方ffmpeg下载地址:http://www.ffmpeg.org

2.官方nginx 1.7.11.3 Gryphon下载地址:http://nginx-win.ecsds.eu/download

3.官方nginx-rtmp-module下载地址:https://github.com/arut/nginx-rtmp-module

 

三、 安装nginx、ffmpeg

1.分别下载 nginx 1.7.11.3 Gryphon 和 ffmpeg,都复制到 D:/test 目录下。nginx 1.7.11.3 Gryphon文件夹改名为nginx-1.7.11.3-Gryphon。

 windows 桌面ffmpeg流媒体分享 录屏hls推流nginx(windows搭建rtmp服务器/hls服务器)

 

 windows 桌面ffmpeg流媒体分享 录屏hls推流nginx(windows搭建rtmp服务器/hls服务器)

 

 windows 桌面ffmpeg流媒体分享 录屏hls推流nginx(windows搭建rtmp服务器/hls服务器)

 

 

2.然后再将下载好的 nginx-rtmp-module 复制到 D:/test/nginx-1.7.11.3-Gryphon/目录下。保证 stat.xls 的目录为:nginx-1.7.11.3-Gryphon/nginx-rtmp-module/stat.xsl。

3.然后配置环境变量:右键我的电脑 》属性 》高级系统设置 》高级 》环境变量 》双击 Path ,将 D:/test/ffmpeg-4.2.1-win64-static/bin 和 D:/test/nginx-1.7.11.3-Gryphon 都添加到 Path 路径下。

4.测试ffmpeg,调用命令行(windows+R输入cmd)输入“ffmpeg –version”,出现版本号说明配置成功。

注意:直接使用nginx没有 nginx-rtmp-module 插件会报错 nginx: [emerg] unknown directive “rtmp” 。想要自己编译请看第二讲:win7下nginx-rtmp-module的编译方法 – 简书 (jianshu.com)

 

四、 配置nginx.conf文件,启动nginx

1.在 D:/test/nginx-1.7.11.3-Gryphon/conf/ 下新建nginx-win-hls.conf,内容如下

 1 worker_processes 2;
 2 
 3 events {
 4   worker_connections 8192;
 5 }
 6 
 7 rtmp {
 8   server {
 9     listen 1935;
10     application live {
11       #rtmp直播
12       live on;
13     }
14     application hls {
15       #hls直播
16       live on;
17       hls on;
18       hls_path D:/test/nginx-1.7.11.3-Gryphon/hls/;
19       hls_fragment 5s;
20     }
21     chunk_size 4096;
22     #数据传输块的大小
23   }
24 }
25 
26 
27 http {
28   include mime.types;
29   default_type application/octet-stream;
30 
31   sendfile off;
32 
33   server_names_hash_bucket_size 128;
34 
35   client_body_timeout 10;
36   client_header_timeout 10;
37   keepalive_timeout 30;
38   send_timeout 10;
39   keepalive_requests 10;
40 
41   server {
42     listen 80;
43     server_name localhost;
44     index web/index.html;
45     # 直播页
46 
47     location /hls/ {
48       types {
49         application/vnd.apple.mpegurl m3u8;
50         video/mp2t ts;
51       }
52       alias D:/test/nginx-1.7.11.3-Gryphon/hls/;
53       expires -1;
54     }
55 
56     location /stat {
57       rtmp_stat all;
58       rtmp_stat_stylesheet stat.xsl;
59     }
60     location /stat.xsl {
61       root nginx-rtmp-module/;
62     }
63     location /control {
64       rtmp_control all;
65     }
66 
67     location / {
68       root html;
69       index index.html index.htm;
70     }
71 
72     error_page 500 502 503 504 /50x.html;
73     location = /50x.html {
74       root html;
75     }
76   }
77 }

2.按住 windows 键 +R,输入 cmd,进入 cmd 命令窗口,进入 nginx 目录:cd D:/test/nginx-1.7.11.3-Gryphon,然后启动 nginx 流转换服务器:

nginx.exe -c conf/nginx-win-hls.conf

3.windows查看nginx是否启动

tasklist /fi "imagename eq nginx.exe"

五、 RTMP 推流测试

1.再打开一个 cmd 命令窗口,启动

ffmpeg -f gdigrab -i desktop -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f hls -hls_time 5.0 -hls_list_size 2 -hls_flags 2  D:/test/nginx-1.7.11.3-Gryphon/hls/tv.m3u8

2.启动没有报错,就可以使用vlc播放器打开测是否能看到。

 windows 桌面ffmpeg流媒体分享 录屏hls推流nginx(windows搭建rtmp服务器/hls服务器)

 

 

 

windows 桌面ffmpeg流媒体分享 录屏hls推流nginx(windows搭建rtmp服务器/hls服务器)

 

 

 

 

六、 网页展示

1.找到Easyplayer的gitcode地址,下载解压。修改demo里面的index。

<!DOCTYPE html>
<html>
  <head>
    <title>Live - HLS</title>
    <link rel="icon" href="./favicon.ico" />
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="renderer" content="webkit" />
    <meta name="force-rendering" content="webkit" />
    <meta
      content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
      name="viewport"
    />
    <script type="text/javascript" src="EasyPlayer-element.min.js"></script>
    <style>
      #player .easy-player {
        height: 900px;
        width: 3200px;
        position: relative;
      }
    </style>
  </head>
  <body>
    <easy-player
      id="player"
      video-url="http://127.0.0.1/hls/tv.m3u8"
      live="true"
      aspect="3200:900"
      debug="true"
      isresolution="true"
      resolution="yh,fhd,hd,sd"
      resolutiondefault="yh"
    ></easy-player>
  </body>
</html>

2.把 demo 文件夹拷贝到 D:/test/nginx-1.7.11.3-Gryphon/html 中,浏览器访问127.0.0.1/demo即可看到直播画面。

 

七、 编写脚本服务随系统自启动

1.新建text文本,录入以下内容。保存后修改后缀为bat文件。

2.打开windows定时任务,配置新增任务。

3.重启测试。

 

四、 参考资料

Windows 10系统下安装FFmpeg教程详解_SLASH-YONG的博客-CSDN博客_windows 安装ffmpeg

Windows 搭建 nginx RTMP 服务器 – fengMisaka – 博客园 (cnblogs.com)

Windows11实现录屏直播,H5页面直播 HLS ,不依赖Flash – 林诺欧巴 – 博客园 (cnblogs.com)

使用Nginx+FFmpeg 将Rtmp转码显示在前端的解决方案_苏筱没猫的博客-CSDN博客_nginx rtmp转码

nginx搭建rtmp服务器(windows) – 知乎 (zhihu.com)

ffmpeg hls_wrap限制生成文件个数命令不生效_ffmpeg吧_百度贴吧 (baidu.com)

Windows 11实现直播,VLC超简单实现捕获、串流、播放 – 林诺欧巴 – 博客园 (cnblogs.com)

mirrors / tsingsee / EasyPlayer.js · GitCode

Windows cmd(bat) 脚本简单使用 – 腾讯云开发者社区-腾讯云 (tencent.com)

Windows下程序的自启动脚本bat(教你直接用)_望夫山居士的博客-CSDN博客_自启动脚本

 

五、 补充

windows关闭nginx命令()

taskkill /f /t /im nginx.exe

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/288166.html

(0)
上一篇 2022年9月7日 22:04
下一篇 2022年9月7日 22:04

相关推荐

发表回复

登录后才能评论