windows服务器直播推流
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服务器直播推流相关推荐
- windows下ffmpeg+nginx-rtmp环境搭建及opencv+ffmpeg+python实现拉流和rtmp直播推流
由于工作需要最近在研究rtsp拉流与直播推流的问题,目前先在我本机上进行了实验,本博客记录学习的内容,包含windows下ffmpeg.nginx-rtmp环境搭建及opencv+ffmpeg+pyt ...
- 【Android RTMP】安卓直播推流总结 ( 直播服务器搭建 | NV21 图像采集 | H.264 视频编码 | PCM 音频采集 | AAC 音频编码 | RTMP 包封装推流 )
文章目录 一. 安卓直播推流专栏博客总结 二. 相关资源介绍 三. GitHub 源码地址 四. 整体 Android 直播推流数据到服务器并观看直播演示过程 Android 直播推流流程 : 手机采 ...
- 【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )
文章目录 安卓直播推流专栏博客总结 一. 服务器搭建 二. 手机端推流 三. 电脑端观看直播 四. RTMP 服务器端状态 安卓直播推流专栏博客总结 Android RTMP 直播推流技术专栏 : 0 ...
- 【Android RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 )
文章目录 安卓直播推流专栏博客总结 一. Android RTMP 直播推流简介 二. Nginx.RTMP Module 编译环境源码准备 三. pcre.OpenSSL.zlib 函数库安装 四. ...
- 【Android RTMP】RTMP 直播推流 ( 阿里云服务器购买 | 远程服务器控制 | 搭建 RTMP 服务器 | 服务器配置 | 推流软件配置 | 直播软件配置 | 推流直播效果展示 )
文章目录 安卓直播推流专栏博客总结 一. 阿里云服务器购买 二. 远程服务器控制软件 三. 配置 Ubuntu 服务器 1 . 更新 apt 源 2 . 安装 pcre.OpenSSL.zlib 库 ...
- 微信串流服务器,微信视频号无人直播推流教程分享(无人直播技术非常的火怎么操作方法)...
去年抖音无人直播技术非常的火,很多团队批量操作无人直播卡广场流量,赚得盆满钵满,市面上一度炒作到3000元的抖音无人直播技术,收割了不少小白玩家,如今随着视频号直播推流正式开放,预计一大波视频号无人直 ...
- 如何开发出一款仿映客直播APP项目实践篇 -【服务器搭建+推流】
如何开发出一款仿映客直播APP项目实践篇 -[原理篇] 如何开发出一款仿映客直播APP项目实践篇 -[采集篇 ] 如何开发出一款仿映客直播APP项目实践篇 -[服务器搭建+推流] 如何开发出一款仿映客 ...
- 魔坊APP项目-26-直播、docker安装OSSRS流媒体直播服务器、基于APICloud的acLive直播推流模块实现RTMP直播推流、直播流管理
一.docker安装OSSRS流媒体直播服务器 在外界开发中, 如果要实现直播功能.常用的方式有: 1. 通过第三方接口来实现.可以申请阿里云,腾讯云,网易云,七牛云的直播接口,根据文档,下载集成SD ...
- 视频教程-C++编程FFMpeg(QT5+OpenCV)实战--实时美颜直播推流-C/C++
C++编程FFMpeg(QT5+OpenCV)实战--实时美颜直播推流 夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真, ...
最新文章
- 重温java web过滤器filter
- 神策 2019 数据驱动大会「 PPT 下载」,零距离感受大会精华
- java 线程组作用_Java线程组(ThreadGroup)使用
- jsonp react 获取返回值_必须要会的 50 个React 面试题(下)
- find 和 xargs 和 locate
- 《springcloud超级入门》Spring Cloud和Dubbo的区别及各自的优缺点《三》
- oracle delphi唱盘,经典再升级 Oracle Delphi MK VI Gen 2
- PIR控制器调节器并网逆变器电流谐波抑制策略
- gcc -I(大写i)、 -l(小写l)、-L(大写L)的使用小结
- Windows10 怎么添加开机启动项
- 一个简单的搜狗微信公众号案例
- Perl_Tkx_Canvas绘图功能函数介绍
- 2019年了时间过得好快啊!我的小感慨
- 盗版影视网站买什么服务器,文化部严打影视盗版:网吧主清空影视服务器
- ACE_Message_QueueACE_MT_SYNCH::putq ()使用时需要注意的地方
- Linux环境中第一行dpa,nvdimm
- ToothFairy for Mac(一键连接蓝牙设备软件) v2.4.5免激活版
- win7防火墙设置开放某个端口
- 区块链搭建eos开发环境
- 人脸识别(二) 人脸1V1,PK明星脸
热门文章
- UOJ #454.【UER #8】打雪仗 通信题
- 微信小程序开发深入解读
- Jenkins的Blue Ocean是什么
- python如何返回一个列表_python如何返回元组,列表或字典的?
- 日历控件CalendarView
- excel 2010 删除重复行(按某一列重复)
- 当前计算机与医学结合的研究热点,浅谈医学影像技术的现在与未来论文范文
- 中医哲学基础(精气阴阳五行)
- 学 计算机 知识视频,教你学电脑——计算机基础知识【视频】*
- 学计算机必学日语哪个学校,高中生学日语,大学可以学电脑类的专业吗?