系統環境:windows10 + vs2010 +vs2010sp1
一:下載以下工具,並依次安裝。
1、 MSYS-1.0.11.exe
2、 ActivePerl-5.26.1.2601-MSWin32-x64-404865.exe
4、 Mercurial-5.1.1-x64.exe
5、 nasm-2.12.02rc9-installer-x64.exe(安裝完成後,需將nasm.exe拷貝到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin目錄下,vs2010的安裝路徑)
6、 sed-4.2.1-setup.exe(安裝完成後將sed.exe拷貝到C:\Windows\System32目錄下)
7、 下載配套的所需庫代碼PCRE, zlib and OpenSSL libraries sources.
並且需要確保以上工具加入到了環境變量。
二、獲取Nginx源代碼
打開CMD命令,切換到Mercurial安裝根目錄,執行命令:hg clone http://hg.nginx.org/nginx
下載成功後會在Mercurial安裝目錄下,自動創建nginx源代碼文件夾。
三、添加依賴資源包
在nginx源代碼分別創建objs\lib 文件夾,並且將下載好的nginx-rtmp-module、openssl、pcre、zlib分別解壓在lib文件夾下面。
結果如下圖:
四、生成makefile文件,用於C++編譯器
繼續使用MSYS工具,返回到nginx源代碼根目錄,執行以下腳本:
auto/configure --with-cc=cl --builddir=objs --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=objs/lib/pcre-8.43 \
--with-zlib=objs/lib/zlib-1.2.11 --with-openssl=objs/lib/openssl-1.0.2t \
--with-select_module --with-http_ssl_module --add-module=objs/lib/nginx-rtmp-module
有如上三部分輸出
最終結果,會在objs目錄下生成Makefile文件,以及其他所依賴的代碼。
五、OpenSSL的坑,
需要修改 nginx\auto\lib\openssl\makefile.msvc 文件。
將ms\do_ms 改爲ms\do_nasm。
六、編譯Nginx源碼
使用VS2010命令工具,切換到Nginx根目錄,執行nmake -f objs/Makefile 命令。
等待一段時間後,編譯成功。
七、創建運行件夾
在nginx.exe所在文件夾下創建創建conf,logs,temp目錄,可將nginx-rtmp-module\test下的nginx.conf文件複製到conf目錄下,啓動nginx,基礎的RTMP流媒體服務搭建完成。
八、測試
雙擊nginx.exe運行,可在任務管理器下面查看是否成功,以及檢查端口是否正常,默認是1935。
可以用ffmpeg工具模擬推流,命令如下:
ffmpeg -re -i sample.flv -vcodec copy -acodec copy -f flv rtmp://localhost:1935/myapp/stream
推流成功後可以用vlc等播放器拉流觀看,地址如下:
rtmp://localhost:1935/live/stream。
九、編譯所用資源
文件比較大,可到網盤下載
鏈接:https://pan.baidu.com/s/1h9o6MP-wS06wA0iWSq6n_w 提取碼:txk5