• windows下编译基于nginx插件的rtmp流媒体服务nginx-rtmp


    1 概述

            rtmp流媒体服务器,开源方案有多种,包括srs,red5,crtmpserver,fms,nginx插件等。本文描述了基于nginx插件的方式来实现rtmp流媒体服务器nginx-rtmp,该插件可以基于开源的nginx-rtmp-module。

    本文是基于windows 10 x64操作系统下编译出32位的nginx-rtmp,即相关编译环境是32位的。

    相关开源项目如下:

    nginx(https://github.com/nginx/nginx

    nginx-rtmp-module(https://github.com/arut/nginx-rtmp-module

    2 准备

             介绍编译所需要的第三方工具、第三方库、源码库、IDE。

    2.1 第三方工具

    2.1.1 perl

    perl安装包,运行ActivePerl-5.24.3.2404-MSWin32-x64-404865.exe,默认安装即可,安装完成,在cmd下使用perl -v测试perl是否安装成功。

    2.1.2 mingw

             MinGW环境安装包,主要是提供MSYS环境,运行mingw-get-setup.exe安装MinGW,默认安装即可,安装完成运行,勾选mingw32-base.bin、msys-base.bin功能,选择菜单Installation-Apply Changes。

    2.1.3 sed

             sed安装包,运行sed-4.2.1-setup.exe,默认安装即可,安装完成,将默认安装目录C:Program Files (x86)GnuWin32in添加到系统环境变量Path。

    2.2 第三方库

    2.2.1 openssl

             openssl-1.0.1u,高版本的OpenSSL库编译会报错。

    2.2.2 pcre

             pcre-8.34。

    2.2.3 zlib

             zlib-1.2.11。

    2.2.4 rtmp插件

             nginx-rtmp-module,github下载目前最新的版本。

    2.3 源码库

    2.3.1 nginx

             nginx-1.15.8,github下载目前最新的版本。

    2.4 IDE

    2.4.1 VS2013

             基于VC2013编译环境,需要安装VS2013 IDE。安装包,vs2013.2_ult_chs.iso。

    3 目录结构

             创建根目录nginx-rtmp,将nginx源码解压到该目录。如下图所示:

    在nginx-rtmp目录创建build、build/obj和build/lib两级目录,并将openssl,pcre,zlib,rtmp库拷到build/lib目录,如下图所示:

    并在源码目录下创建build.bat,内容如下:

    auto/configure --with-cc=cl --builddir=build/obj --prefix=

    --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid

    --http-log-path=logs/access.log --error-log-path=logs/error.log

    --sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp

    --http-proxy-temp-path=temp/proxy_temp

    --http-fastcgi-temp-path=temp/fastcgi_temp

    --http-scgi-temp-path=temp/scgi_temp

    --http-uwsgi-temp-path=temp/uwsgi_temp

    --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=build/lib/pcre-8.34

    --with-zlib=build/lib/zlib-1.2.11 --with-openssl=build/lib/openssl-1.0.1u

    --with-select_module --with-http_ssl_module

    --add-module=build/lib/nginx-rtmp-module

    4 编译

    4.1 配置OpenSSL环境

             打开cmd,切到openssl所在目录nginx-rtmpuildlibopenssl-1.0.1u,执行如下命令:

    perl Configure VC-WIN32

    msdo_ms

    4.2 MSYS环境

             转到目录C:MinGWmsys1.0,执行msys.bat,进入msys环境,如下图所示:

    切到nginx-rtmp目录

    运行build.bat,生成Makefile

    执行完成,nginx-rtmpuildobj生成如下文件:

    打开VC2013命令行工具,切到nginx-rtmp目录,执行nmake /f build/obj/Makefile

    编译完成,在nginx-rtmpuildobj生成nginx.exe。

    5 测试

             在目录nginx-rtmpuildobj创建nginx.exe运行所需的目录:conf、logs、temp,将nginx-rtmpuildlib ginx-rtmp-module est ginx.conf拷贝至nginx-rtmpuildobjconf目录,双击运行nginx.exe(停止运行nginx命令为nginx.exe –s stop)。可以通过ffmpeg推流到指定rtmp流地址,通过vlc播放器来播放该rtmp流。

             ffmpeg将本地mp4视频文件推流命令行如下:

    ffmpeg.exe -re -i test.mp4 -f flv rtmp://localhost:1935/live/test

  • 相关阅读:
    React的环境搭建
    Maven学习(3)-依赖管理-项目依赖相关操作命令
    k8s的yaml文件配置详解(转))
    Jenkins学习-Jenkins+K8s(k8s部署)
    Jenkins学习-定时任务设置(转)
    IntelliJ IDEA+Github+Maven+Jenkins+SipringBoot+VUE搭建Web开发环境样例(3)-为查询数据库项目样例创建Jenkins构建任务
    Maven学习(3)-依赖管理-POM文件中依赖的范围定义
    Maven学习(3)-依赖管理-POM文件中依赖的版本锁定详解
    Maven学习(3)-依赖管理-POM文件中依赖的jar包下载过程详解
    Maven学习(3)-依赖管理-依赖仓库管理
  • 原文地址:https://www.cnblogs.com/aurain/p/10408978.html
Copyright © 2020-2023  润新知