# NGINX-based Media Streaming Server
## nginx-rtmp-module
### Project blog
http://nginx-rtmp.blogspot.com
### Documentation
* [Home](doc/README.md)
* [Control module](doc/control_modul.md)
* [Debug log](doc/debug_log.md)
* [Directives](doc/directives.md)
* [Examples](doc/examples.md)
* [Exec wrapper in bash](doc/exec_wrapper_in_bash.md)
* [FAQ](doc/faq.md)
* [Getting number of subscribers](doc/getting_number_of_subscribers.md)
* [Getting started with nginx rtmp](doc/getting_started.md)
* [Installing in Gentoo](doc/installing_in_gentoo.md)
* [Installing on Ubuntu using PPAs](doc/installing_ubuntu_using_ppas.md)
* [Tutorial](doc/tutorial.md)
*Source: https://github.com/arut/nginx-rtmp-module/wiki*
* [Latest updates](doc/README.md#updates)
### Google group
https://groups.google.com/group/nginx-rtmp
https://groups.google.com/group/nginx-rtmp-ru (Russian)
### Donation page (Paypal etc)
http://arut.github.com/nginx-rtmp-module/
### Features
* RTMP/HLS/MPEG-DASH live streaming
* RTMP Video on demand FLV/MP4,
playing from local filesystem or HTTP
* Stream relay support for distributed
streaming: push & pull models
* Recording streams in multiple FLVs
* H264/AAC support
* Online transcoding with FFmpeg
* HTTP callbacks (publish/play/record/update etc)
* Running external programs on certain events (exec)
* HTTP control module for recording audio/video and dropping clients
* Advanced buffering techniques
to keep memory allocations at a minimum
level for faster streaming and low
memory footprint
* Proved to work with Wirecast, FMS, Wowza,
JWPlayer, FlowPlayer, StrobeMediaPlayback,
ffmpeg, avconv, rtmpdump, flvstreamer
and many more
* Statistics in XML/XSL in machine- & human-
readable form
* Linux/FreeBSD/MacOS/Windows
### Build
cd to NGINX source directory & run this:
./configure --add-module=/path/to/nginx-rtmp-module
make
make install
Several versions of nginx (1.3.14 - 1.5.0) require http_ssl_module to be
added as well:
./configure --add-module=/path/to/nginx-rtmp-module --with-http_ssl_module
For building debug version of nginx add `--with-debug`
./configure --add-module=/path/to-nginx/rtmp-module --with-debug
[Read more about debug log](https://github.com/arut/nginx-rtmp-module/wiki/Debug-log)
### Contributing and Branch Policy
The "dev" branch is the one where all contributions will be merged before reaching "master".
If you plan to propose a patch, please commit into the "dev" branch or its own feature branch.
Direct commit to "master" are not permitted.
### Windows limitations
Windows support is limited. These features are not supported
* execs
* static pulls
* auto_push
### RTMP URL format
rtmp://rtmp.example.com/app[/name]
app - should match one of application {}
blocks in config
name - interpreted by each application
can be empty
### Multi-worker live streaming
This NGINX-RTMP module does not support multi-worker live
streaming. While this feature can be enabled through rtmp_auto_push on|off directive, it is ill advised because it is incompatible with NGINX versions starting 1.7.2 and up, there for it should not be used.
### Example nginx.conf
rtmp {
server {
listen 1935;
chunk_size 4000;
# TV mode: one publisher, many subscribers
application mytv {
# enable live streaming
live on;
# record first 1K of stream
record all;
record_path /tmp/av;
record_max_size 1K;
# append current timestamp to each flv
record_unique on;
# publish only from localhost
allow publish 127.0.0.1;
deny publish all;
#allow play all;
}
# Transcoding (ffmpeg needed)
application big {
live on;
# On every published stream run this command (ffmpeg)
# with substitutions: $app/${app}, $name/${name} for application & stream name.
#
# This ffmpeg call receives stream from this application &
# reduces the resolution down to 32x32. The stream is the published to
# 'small' application (see below) under the same name.
#
# ffmpeg can do anything with the stream like video/audio
# transcoding, resizing, altering container/codec params etc
#
# Multiple exec lines can be specified.
exec ffmpeg -re -i rtmp://localhost:1935/$app/$name -vcodec flv -acodec copy -s 32x32
-f flv rtmp://localhost:1935/small/${name};
}
application small {
live on;
# Video with reduced resolution comes here from ffmpeg
}
application webcam {
live on;
# Stream from local webcam
exec_static ffmpeg -f video4linux2 -i /dev/video0 -c:v libx264 -an
-f flv rtmp://localhost:1935/webcam/mystream;
}
application mypush {
live on;
# Every stream published here
# is automatically pushed to
# these two machines
push rtmp1.example.com;
push rtmp2.example.com:1934;
}
application mypull {
live on;
# Pull all streams from remote machine
# and play locally
pull rtmp://rtmp3.example.com pageUrl=www.example.com/index.html;
}
application mystaticpull {
live on;
# Static pull is started at nginx start
pull rtmp://rtmp4.example.com pageUrl=www.example.com/index.html name=mystream static;
}
# video on demand
application vod {
play /var/flvs;
}
application vod2 {
play /var/mp4s;
}
# Many publishers, many subscribers
# no checks, no recording
application videochat {
live on;
# The following notifications receive all
# the session variables as well as
# particular call arguments in HTTP POST
# request
# Make HTTP request & use HTTP retcode
# to decide whether to allow publishing
# from this connection or not
on_publish http://localhost:8080/publish;
# Same with playing
on_play http://localhost:8080/play;
# Publish/play end (repeats on disconnect)
on_done http://localhost:8080/done;
# All above mentioned notifications receive
# standard connect() arguments as well as
# play/publish ones. If any arguments are sent
# with GET-style syntax to play & publish
# these are also included.
# Example URL:
# rtmp://localhost/myapp/mystream?a=b&c=d
# record 10 video keyframes (no audio) every 2 minutes
record keyframes;
record_path /tmp/vc;
record_max_frames 10;
record_interval 2m;
# Async notify about an flv recorded
on_record_done http://localhost:8080/record_done;
}
# HLS
# For HLS to work please create a directory in tmpfs (/tmp/hls here)
# for the fragments. The directory contents is served via HTTP (see
# http{} section in config)
#
# Incoming stream must be in H264/AAC. For iPhones use baseline H264
没有合适的资源?快使用搜索试试~ 我知道了~
nginx-rtmp-module.zip
共142个文件
c:35个
h:18个
md:15个
5星 · 超过95%的资源 需积分: 14 14 下载量 48 浏览量
2020-08-04
15:06:01
上传
评论
收藏 8MB ZIP 举报
温馨提示
windows上可用的搭载rtmp的nginx服务,自定义配置修改nginx.conf文件即可。备份包可不用理会
资源推荐
资源详情
资源评论
收起资源包目录
nginx-rtmp-module.zip (142个子文件)
AUTHORS 217B
ngx_rtmp_hls_module.c 76KB
ngx_rtmp_mp4_module.c 69KB
ngx_rtmp_notify_module.c 65KB
ngx_rtmp_dash_module.c 55KB
ngx_rtmp_relay_module.c 52KB
ngx_rtmp_exec_module.c 42KB
ngx_rtmp_live_module.c 42KB
ngx_rtmp_record_module.c 37KB
ngx_rtmp_play_module.c 35KB
ngx_rtmp_codec_module.c 27KB
ngx_rtmp_stat_module.c 27KB
ngx_rtmp_log_module.c 25KB
ngx_rtmp_send.c 24KB
ngx_rtmp_handler.c 23KB
ngx_rtmp_mp4.c 23KB
ngx_rtmp_cmd_module.c 23KB
ngx_rtmp.c 22KB
ngx_rtmp_core_module.c 20KB
ngx_rtmp_netcall_module.c 19KB
ngx_rtmp_flv_module.c 19KB
ngx_rtmp_control_module.c 18KB
ngx_rtmp_auto_push_module.c 17KB
ngx_rtmp_handshake.c 17KB
ngx_rtmp_amf.c 16KB
ngx_rtmp_mpegts.c 16KB
ngx_rtmp_access_module.c 12KB
ngx_rtmp_receive.c 11KB
ngx_rtmp_init.c 7KB
ngx_rtmp_eval.c 6KB
ngx_rtmp_limit_module.c 5KB
ngx_rtmp_mpegts_crc.c 5KB
ngx_rtmp_proxy_protocol.c 4KB
ngx_rtmp_shared.c 3KB
ngx_rtmp_bitop.c 1KB
ngx_rtmp_bandwidth.c 589B
nginx.conf 5KB
nginx-org.conf 3KB
nginx-simple-WAF.conf 2KB
upstream_candc.conf 2KB
nginx.conf 1KB
fastcgi.conf 1KB
config 6KB
lua51.dll 336KB
nginx.exe 3.02MB
nginx_basic.exe 1.88MB
fastcgi_params 964B
.gitignore 48B
ngx_rtmp.h 19KB
ngx_rtmp_cmd_module.h 5KB
ngx_rtmp_record_module.h 3KB
ngx_rtmp_live_module.h 3KB
ngx_rtmp_codec_module.h 3KB
ngx_rtmp_play_module.h 2KB
ngx_rtmp_mpegts_crc.h 2KB
ngx_rtmp_relay_module.h 2KB
ngx_rtmp_netcall_module.h 2KB
ngx_rtmp_amf.h 2KB
ngx_rtmp_mp4.h 1KB
ngx_rtmp_bitop.h 1KB
ngx_rtmp_mpegts.h 1KB
ngx_rtmp_eval.h 843B
ngx_rtmp_bandwidth.h 584B
ngx_rtmp_streams.h 378B
ngx_rtmp_proxy_protocol.h 311B
ngx_rtmp_version.h 246B
record.html 1KB
index.html 834B
player.html 614B
50x.html 537B
publisher.html 505B
index.html 505B
php-xcache-example.ini 3KB
php-opcache-example.ini 539B
bg.jpg 15KB
jwplayer.js 36KB
swfobject.js 10KB
swfobject.js 10KB
vtsvalues-eop.js 600B
vtsvalues.js 407B
koi-utf 6KB
koi-utf 3KB
koi-win 2KB
PCRE.LICENCE 3KB
OpenSSL.LICENSE 6KB
LICENSE 1KB
LICENSE 1KB
zlib.LICENSE 983B
access.log 6KB
error.log 4KB
upstreamstatus.lua 4KB
iworkcomproto.lua 4KB
upstreamcontrol.lua 2KB
directives.md 51KB
README.md 10KB
getting_started.md 5KB
control_modul.md 3KB
tutorial.md 3KB
exec_wrapper_in_bash.md 1KB
installing_in_gentoo.md 1KB
共 142 条
- 1
- 2
资源评论
- WGLNNGT2023-01-12作为快速DIY一个自己的流媒体服务器很不错,局域网延时可以优化到1s左右,还是很不错了。
Arlen_KSL
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- STM32单片机FPGA毕设电路原理论文报告一种基于单片机的节能断电保护电路设计
- STM32单片机FPGA毕设电路原理论文报告一种基于单片机的机床位移检测系统
- unity3D翻书插件
- STM32单片机FPGA毕设电路原理论文报告一种基于单片机的红外测控系统
- Date(1).cpp
- java基于ssm珠宝商城购物网站案例设计
- STM32单片机FPGA毕设电路原理论文报告一种基于单片机的灯光调光控制系统开发
- STM32单片机FPGA毕设电路原理论文报告一种基于单片机的超声测距系统的设计
- Visual Basic快速入门.md
- STM32单片机FPGA毕设电路原理论文报告一种基于单片机的半导体激光器电源控制系统的设计
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功