nginx flv/rtmp/hls for Windows x64

windows推流转码确实麻烦,真要用到必须一步一步来,不要急



环境

win 7 64位,openssl-1.0.2r,nginx-http-flv-module


下载

1、下载以下工具,并依次安装:

  • 下载VS2010+VS2010 SP1
  • msys-1.0.11.exe
  • ActicePerl-5.24.2.2403-MSWin32-x64-403863.exe
  • mercurial-4.3.1-x64.msi
  • nasm-2.12.02rc9-installer-x64.exe(32位需要用,64位不需要)
  • sed-4.2.1-setup.exe
  • 下载配套的所需库代码PCRE,zlib 和 OpenSSL libraries sources
  • 下载nginx-http-flv-module:https://github.com/winshining/nginx-http-flv-module

以上工具需要确保加入到了环境变量(控制面板\系统和安全\系统\高级系统设置\环境变量)。

2、获取Nginx源码:

打开cmd命令,切换到Mercurial安装根目录,执行命令:

hg clone http://hg.nginx.org/nginx

下载成功后会在Mercurial安装目录下,创建nginx源代码文件夹。

3、添加依赖资源包:

使用MSYS工具,在nginx源代码分别创建objs/lib文件夹,将下载好的nginx-http-flv-module、openssl、pcre、zlib分别解压在lib文件夹下面


编译

1、生成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.40 \
--with-zlib=objs/lib/zlib-1.2.11 --with-openssl=objs/lib/openssl-1.0.2r \
--with-select_module --with-http_ssl_module --add-module=objs/lib/nginx-http-flv-module

成功后输出以下:

1、修改nginx\auto\lib\openssl\makefile.msvc文件:

将VC-WIN32改为VC-WIN64A,将ms\do_ms 改为ms\do_win64a

修改objs\Makefile文件:将“-WX”删除,否则nmake时会报错“nginx error:c2220:警告被视为错误 - 没有生成object文件”

2、编译Nginx源码:

使用VS2010 x64 Win64命令工具,切换到Nginx根目录,执行以下命令:

nmake -f objs/Makefile

编译成功后,生成可执行程序nginx.exe


配置

1、

在nginx.exe所在文件夹下创建创建conf,html,logs,temp目录,其中conf,html可从src中拷贝。

2、

在html目录下创建nginx-http-flv-module文件夹,并将objs\lib\nginx-http-flv-module\下的test文件夹及stat.xsl拷贝过来。

3、

修改conf/nginx.conf配置文件,修改后内容如下:

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;location /flv {flv_live on;chunked_transfer_encoding on;       }location /hls {      types{    application/vnd.apple.mpegurl m3u8;    video/mp2t ts;    }    alias /test;    expires -1;    }location /stat {rtmp_stat all;rtmp_stat_stylesheet stat.xsl;}location /stat.xsl {root html/nginx-http-flv-module/;}location /control {rtmp_control all;}location /rtmp-publisher {root html/nginx-http-flv-module/test;}server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root html/nginx-http-flv-module/test/www;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}rtmp {  server {  listen 1935;  chunk_size 4000;  application hls { live on;hls on;hls_path /test;hls_fragment 1s;}  }
}

4、启动nginx

运行nginx.exe

在浏览器中输入ip:port,显示如下:

在浏览器中输入ip:port/status,现实如下监控信息:

5、推流:

推送设置地址rtmp://ip:1935/hls/url,其中ip为服务器地址,hls为application名,url自定义(必填)。

6、拉流:

FLV:http://ip:80/flv?port=1935&app=hls&stream=url
RTMP:rtmp://ip:1935/hls/url
HLS:http://ip:80/hls/url.m3u8


示例

VLC拉流RTMP:

Safari拉流HLS:

VLC拉流FLV:



转载原文:https://www.jianshu.com/p/a429c87c1b04

windows服务器直播推流相关推荐

  1. windows下ffmpeg+nginx-rtmp环境搭建及opencv+ffmpeg+python实现拉流和rtmp直播推流

    由于工作需要最近在研究rtsp拉流与直播推流的问题,目前先在我本机上进行了实验,本博客记录学习的内容,包含windows下ffmpeg.nginx-rtmp环境搭建及opencv+ffmpeg+pyt ...

  2. 【Android RTMP】安卓直播推流总结 ( 直播服务器搭建 | NV21 图像采集 | H.264 视频编码 | PCM 音频采集 | AAC 音频编码 | RTMP 包封装推流 )

    文章目录 一. 安卓直播推流专栏博客总结 二. 相关资源介绍 三. GitHub 源码地址 四. 整体 Android 直播推流数据到服务器并观看直播演示过程 Android 直播推流流程 : 手机采 ...

  3. 【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )

    文章目录 安卓直播推流专栏博客总结 一. 服务器搭建 二. 手机端推流 三. 电脑端观看直播 四. RTMP 服务器端状态 安卓直播推流专栏博客总结 Android RTMP 直播推流技术专栏 : 0 ...

  4. 【Android RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 )

    文章目录 安卓直播推流专栏博客总结 一. Android RTMP 直播推流简介 二. Nginx.RTMP Module 编译环境源码准备 三. pcre.OpenSSL.zlib 函数库安装 四. ...

  5. 【Android RTMP】RTMP 直播推流 ( 阿里云服务器购买 | 远程服务器控制 | 搭建 RTMP 服务器 | 服务器配置 | 推流软件配置 | 直播软件配置 | 推流直播效果展示 )

    文章目录 安卓直播推流专栏博客总结 一. 阿里云服务器购买 二. 远程服务器控制软件 三. 配置 Ubuntu 服务器 1 . 更新 apt 源 2 . 安装 pcre.OpenSSL.zlib 库 ...

  6. 微信串流服务器,微信视频号无人直播推流教程分享(无人直播技术非常的火怎么操作方法)...

    去年抖音无人直播技术非常的火,很多团队批量操作无人直播卡广场流量,赚得盆满钵满,市面上一度炒作到3000元的抖音无人直播技术,收割了不少小白玩家,如今随着视频号直播推流正式开放,预计一大波视频号无人直 ...

  7. 如何开发出一款仿映客直播APP项目实践篇 -【服务器搭建+推流】

    如何开发出一款仿映客直播APP项目实践篇 -[原理篇] 如何开发出一款仿映客直播APP项目实践篇 -[采集篇 ] 如何开发出一款仿映客直播APP项目实践篇 -[服务器搭建+推流] 如何开发出一款仿映客 ...

  8. 魔坊APP项目-26-直播、docker安装OSSRS流媒体直播服务器、基于APICloud的acLive直播推流模块实现RTMP直播推流、直播流管理

    一.docker安装OSSRS流媒体直播服务器 在外界开发中, 如果要实现直播功能.常用的方式有: 1. 通过第三方接口来实现.可以申请阿里云,腾讯云,网易云,七牛云的直播接口,根据文档,下载集成SD ...

  9. 视频教程-C++编程FFMpeg(QT5+OpenCV)实战--实时美颜直播推流-C/C++

    C++编程FFMpeg(QT5+OpenCV)实战--实时美颜直播推流 夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真, ...

最新文章

  1. 重温java web过滤器filter
  2. 神策 2019 数据驱动大会「 PPT 下载」,零距离感受大会精华
  3. java 线程组作用_Java线程组(ThreadGroup)使用
  4. jsonp react 获取返回值_必须要会的 50 个React 面试题(下)
  5. find 和 xargs 和 locate
  6. 《springcloud超级入门》Spring Cloud和Dubbo的区别及各自的优缺点《三》
  7. oracle delphi唱盘,经典再升级 Oracle Delphi MK VI Gen 2
  8. PIR控制器调节器并网逆变器电流谐波抑制策略
  9. gcc -I(大写i)、 -l(小写l)、-L(大写L)的使用小结
  10. Windows10 怎么添加开机启动项
  11. 一个简单的搜狗微信公众号案例
  12. Perl_Tkx_Canvas绘图功能函数介绍
  13. 2019年了时间过得好快啊!我的小感慨
  14. 盗版影视网站买什么服务器,文化部严打影视盗版:网吧主清空影视服务器
  15. ACE_Message_QueueACE_MT_SYNCH::putq ()使用时需要注意的地方
  16. Linux环境中第一行dpa,nvdimm
  17. ToothFairy for Mac(一键连接蓝牙设备软件) v2.4.5免激活版
  18. win7防火墙设置开放某个端口
  19. 区块链搭建eos开发环境
  20. 人脸识别(二) 人脸1V1,PK明星脸

热门文章

  1. UOJ #454.【UER #8】打雪仗 通信题
  2. 微信小程序开发深入解读
  3. Jenkins的Blue Ocean是什么
  4. python如何返回一个列表_python如何返回元组,列表或字典的?
  5. 日历控件CalendarView
  6. excel 2010 删除重复行(按某一列重复)
  7. 当前计算机与医学结合的研究热点,浅谈医学影像技术的现在与未来论文范文
  8. 中医哲学基础(精气阴阳五行)
  9. 学 计算机 知识视频,教你学电脑——计算机基础知识【视频】*
  10. 学计算机必学日语哪个学校,高中生学日语,大学可以学电脑类的专业吗?