1. 下载源码
http://hg.nginx.org/nginx
nginx-c74904a17021.zip https://github.com/arut/nginx-rtmp-module
nginx-rtmp-module-master.zip https://www.openssl.org/source/
https://www.openssl.org/source/openssl-1.0.2r.tar.gz https://ftp.pcre.org/pub/pcre/
https://ftp.pcre.org/pub/pcre/pcre-8.43.zip http://www.zlib.net/
http://www.zlib.net/zlib-1.2.11.tar.gz 2. 源码部署
nginx-rtmp-module-master.zip 解压到 nginx-c74904a17021/nginx-rtmp-module
nginx-c74904a17021 目录下创建目录 libs
openssl-1.0.2r.tar.gz pcre-8.43.zip zlib-1.2.11.tar.gz 解压到 nginx-c74904a17021/libs 3. 启动 MSYS 进入 nginx-c74904a17021 目录
最新版本 nginx 的 configure 在 auto 目录下
./auto/configure \
--prefix=/usr/opt/nginx-1.15.9 \
--with-pcre=/usr/build/libs/nginx-c74904a17021/libs/pcre-8.43 \
--with-openssl=/usr/build/libs/nginx-c74904a17021/libs/openssl-1.0.2r \
--with-zlib=/usr/build/libs/nginx-c74904a17021/libs/zlib-1.2.11 \
--add-module=/usr/build/libs/nginx-c74904a17021/nginx-rtmp-module \
--with-http_ssl_module 4. 修改源码
nginx-c74904a17021\nginx-rtmp-module\ngx_rtmp.h
#if (NGX_WIN32)
//typedef __int8 int8_t;
typedef unsigned __int8 uint8_t;
#endif
Note: int8_t 已经在 gcc 里定义过 nginx-c74904a17021\objs\ngx_auto_config.h
#ifndef NGX_PREFIX
//#define NGX_PREFIX "/usr/opt/nginx-1.15.9/"
#define NGX_PREFIX "./"
#endif
Note: NGX_PREFIX 定义成 /usr/opt/nginx-1.15.9/ 时 windows 系统无法正确地找到目录 nginx-c74904a17021\objs\Makefile
//CC = cc
CC = gcc
Note: MSYS 没有 cc //advapi32.lib ws2_32.lib /usr/build/libs/nginx-c74904a17021/libs/pcre-8.43/.libs/libpcre.a /usr/build/libs/nginx-c74904a17021/libs/openssl-1.0.2r/.openssl/lib/libssl.a /usr/build/libs/nginx-c74904a17021/libs/openssl-1.0.2r/.openssl/lib/libcrypto.a -lgdi32 -lcrypt32 -lws2_32 /usr/build/libs/nginx-c74904a17021/libs/zlib-1.2.11/libz.a
-l advapi32 -l ws2_32 /usr/build/libs/nginx-c74904a17021/libs/pcre-8.43/.libs/libpcre.a /usr/build/libs/nginx-c74904a17021/libs/openssl-1.0.2r/.openssl/lib/libssl.a /usr/build/libs/nginx-c74904a17021/libs/openssl-1.0.2r/.openssl/lib/libcrypto.a -lgdi32 -lcrypt32 -lws2_32 /usr/build/libs/nginx-c74904a17021/libs/zlib-1.2.11/libz.a
Note: MSYS 不支持 advapi32.lib ws2_32.lib 5. 编译安装
make
make install opt\nginx-1.15.9\sbin\nginx.exe 移到 opt\nginx-1.15.9\nginx.exe
opt\nginx-1.15.9 目录下创建 nginx-1.15.9\temp\hls 修改 nginx.conf 文件
nginx-1.15.9-v2\conf\nginx.conf worker_processes 1;
error_log logs/error.log info;
events {
worker_connections 1024;
} rtmp {
server {
listen 1935;
application live {
live on;
}
application hls {
live on;
hls on;
hls_path temp/hls;
hls_fragment 8s;
}
}
} http {
server {
listen 8080;
location / {
root html;
} location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
} location /stat.xsl {
root html;
} location /hls {
#server hls fragments
types{
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias temp/hls;
expires -1;
}
}
} 运行 nginx.exe 6. 测试
安装 Screen Capturer Recorder v0.12.10
https://sourceforge.net/projects/screencapturer/files/ 创建 streaming.cmd
@echo off
set bitrate=1200
set maxrate=2400
set x264=-look_ahead 0 -ac 2 -c:v h264_qsv -profile:v high -level 3.1 -preset:v veryfast
set ki=-keyint_min 72 -g 72 -sc_threshold 0
set br=-b:v %bitrate%k -minrate %bitrate%k -maxrate %maxrate%k -bufsize %maxrate%k -b:a 128k
set vf=-vf crop=854:480:1920-854:0,fps=fps=24
set deskdev=-f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" ffmpeg -threads 4 -hide_banner -rtbufsize 512M -re %deskdev% %ki% %vf% %x264% %br% -f flv rtmp://localhost:1935/live/ pause 创建 pull.cmd
@echo off
ffplay.exe rtmp://localhost:1935/live/ 执行 streaming.cmd 后 执行 pull.cmd
如果能正常播放说明成功了 下载编译好的程序包
https://files.cnblogs.com/files/nlsoft/nginx-1.15.9_rtmp-module-1.2.1_bin.7z

MSYS 编译 nginx rtmp-module的更多相关文章

  1. 转:Nginx RTMP 功能研究

    看点: 1.    Nginx 配置信息与使用.  (支持 rtmp与HLS配置) 2.    有ffmpeg 编译与使用,    命令行方式来测试验证客户端使用. 转自:http://blog.cs ...

  2. ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制

    公司最近在做视频直播的项目,我这里分配到对直播的视频进行录制,录制的方式是通过rtmpdump对rtmp的视频流进行录制 前置的知识 ffmpeg: 用于实现把录屏工具发出的视频和音频流,转换成我们需 ...

  3. Android中直播视频技术探究之---视频直播服务端环境搭建(Nginx+RTMP)

    一.前言 前面介绍了Android中视频直播中的一个重要类ByteBuffer,不了解的同学可以 点击查看 到这里开始,我们开始动手开发了,因为我们后续肯定是需要直播视频功能,然后把视频推流到服务端, ...

  4. 使用 ffmpeg nginx rtmp 搭建实时流处理平台

    环境: ubuntu 16.04 问题引入: 使用 opencv 获取摄像头数据帧, 进行处理之后(如进行 keypoint 识别), 将 opencv 中图像的 Mat类型转化为 ffmpeg 的 ...

  5. (转)Nginx+rtmp+ffmpeg搭建流媒体服务器

    (1)下载第三方扩展模块nginx-rtmp-module # mkdir module && cd module //创建一个存放模块的目录 # wget https://githu ...

  6. Windows编译Nginx源码

    Windows下的Nginx战役,人不作就不会死!就像是拿着麦当劳的优惠券去买肯德基一样,别扭啊 Nginx是一款轻量级的Web 服务器.反向代理服务器.邮件服务器等等集一大串荣誉于一身的大牌人物!他 ...

  7. 编译nginx的源码安装subs_filter模块

    使用nginx的反向代理功能搭建nuget镜像服务器时,需要针对官方nuget服务器的响应内容进行字符串替换,比如将www.nuget.org替换为镜像服务器的主机名,将https://替换为http ...

  8. How to Customize Server Header using NginX headers-more module

    http://wiki.nginx.org/HttpHeadersMoreModule#Version headers_more When you are browsing a website, yo ...

  9. nginx上传模块—nginx upload module-

    一. nginx upload module原理 官方文档: http://www.grid.net.ru/nginx/upload.en.html Nginx upload module通过ngin ...

随机推荐

  1. SpringBoot配置日志logback

    1.这里我们选择logback,首先加入pom依赖 <dependency> <groupId>ch.qos.logback</groupId> <artif ...

  2. JavaScript基础入门 - 01

    JavaScript入门 - 01 准备工作 在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容. js代码位置 首先是如何编写JavaScript代码, ...

  3. 【地图功能开发系列:二】根据地址名称通过百度地图API查询出坐标

    根据地址名称通过百度地图API查询出坐标 百度地图ApiUrl string url = "http://api.map.baidu.com/geocoder?address={0}& ...

  4. PHP RSA加解密详解(附代码)

    前言:RSA加密一般用在涉及到重要数据时所使用的加密算法,比如用户的账户密码传输,订单的相关数据传输等. 加密方式说明:公钥加密,私钥解密.也可以  私钥加密,公钥解密 一.RSA简介 RSA公钥加密 ...

  5. win10更改无线网卡的MAC地址

    https://blog.csdn.net/qq_31778495/article/details/80932472 前段时间电脑蹭网被禁了MAC地址,故寻找修改MAC地址的方法. 本机配置: win ...

  6. plink计算两个SNP位点的连锁不平衡值(LD)

    PLINK提供了“--ld”的参数计算两个SNP位点的连锁不平衡值. 命令如下: plink --file file --ld rs123 rs134 --out rs123_rs134 生成如下数据 ...

  7. python爬虫学习笔记

    爬虫的分类 1.通用爬虫:通用爬虫是搜索引擎(Baidu.Google.Yahoo等)“抓取系统”的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 简单来讲就是尽可 ...

  8. Redis 使用介绍-Linux-Bash

    1.进入Bash redis-cli 2.查看所有的key keys * 1.Key-Value 1.1.查看key-value值 1.2.修改key值 2.List 1> string lis ...

  9. html5+hbuilder+夜神模拟器+webview

    HTML5 Plus应用概述 首先新建一个移动App项目,文件-->新建-->移动APP HTML5 Plus移动App,简称5+App,是一种基于HTML.JS.CSS编写的运行于手机端 ...

  10. 2019秋招Java面经(未完待续)

    2019秋招Java面经(凭记忆回忆, 可能不准) 随着我们从大三升到大四...秋招也开始了. 秋招进行的还比较顺利, 刚开始没几天, 我的秋招就结束了. 到现在我玩了差不多十多天了, 总想着总结一下 ...