windows下編譯基於nginx插件的rtmp流媒體服務nginx-rtmp

1 概述nginx

        rtmp流媒體服務器,開源方案有多種,包括srs,red5,crtmpserver,fms,nginx插件等。本文描述了基於nginx插件的方式來實現rtmp流媒體服務器nginx-rtmp,該插件能夠基於開源的nginx-rtmp-module。git

本文是基於windows 10 x64操做系統下編譯出32位的nginx-rtmp,即相關編譯環境是32位的。github

相關開源項目以下:windows

nginx(https://github.com/nginx/nginx服務器

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

2 準備測試

         介紹編譯所須要的第三方工具、第三方庫、源碼庫、IDE。ui

2.1 第三方工具spa

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)\GnuWin32\bin添加到系統環境變量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-rtmp\build\lib\openssl-1.0.1u\,執行以下命令:

perl Configure VC-WIN32

ms\do_ms

4.2 MSYS環境

         轉到目錄C:\MinGW\msys\1.0\,執行msys.bat,進入msys環境,以下圖所示:

切到nginx-rtmp目錄

運行build.bat,生成Makefile

執行完成,nginx-rtmp\build\obj生成以下文件:

打開VC2013命令行工具,切到nginx-rtmp目錄,執行nmake /f build/obj/Makefile

編譯完成,在nginx-rtmp\build\obj生成nginx.exe。

5 測試

         在目錄nginx-rtmp\build\obj\建立nginx.exe運行所需的目錄:conf、logs、temp,將nginx-rtmp\build\lib\nginx-rtmp-module\test\nginx.conf拷貝至nginx-rtmp\build\obj\conf目錄,雙擊運行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

相關文章
相關標籤/搜索