# NGINX-based Media Streaming Server
## nginx-rtmp-module
### Project blog
http://nginx-rtmp.blogspot.com
### Wiki manual
https://github.com/arut/nginx-rtmp-module/wiki/Directives
### 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)
### 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
Module supports multi-worker live
streaming through automatic stream pushing
to nginx workers. This option is toggled with
rtmp_auto_push directive.
### 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 pusblished 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
# profile (see ffmpeg example).
# This example creates RTMP stream from movie ready for HLS:
#
# ffmpeg -loglevel verbose -re -i movie.avi -vcodec libx264
# -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1
# -f flv rtmp://localhost:1935/hls/movie
#
# If you need to transcode live stream use 'exec' feature.
#
application hls {
live on;
hls on;
hls_path /tmp/hls;
}
# MPEG-DASH is similar to HLS
application dash {
live on;
dash on;
dash_path /tmp/dash;
}
}
}
# HTTP can be used for accessing RTMP stats
http {
server {
listen 8080;
# This URL provides RTMP statistics in XML
location /stat {
没有合适的资源?快使用搜索试试~ 我知道了~
nginx源码 rtmp-module 源码 及编译方法
共895个文件
c:247个
o:168个
h:137个
5星 · 超过95%的资源 需积分: 29 194 下载量 6 浏览量
2014-10-10
13:37:48
上传
评论
收藏 38.46MB RAR 举报
温馨提示
nginx 及 nginx-rtmp-module-master 源码 编译方法
资源推荐
资源详情
资源评论
收起资源包目录
nginx源码 rtmp-module 源码 及编译方法 (895个子文件)
libz.so.1 97KB
miniunzip.1 2KB
minizip.1 1KB
zlib.3 4KB
README.686 2KB
libz.so.1.2.8 97KB
nginx.8 5KB
nginx.8 5KB
libz.a 108KB
configure.ac 786B
acc 224B
zlib.adb 20KB
test.adb 13KB
zlib-streams.adb 6KB
mtest.adb 4KB
read.adb 4KB
buffer_demo.adb 4KB
zlib-thin.adb 3KB
zlib-thin.ads 15KB
zlib.ads 13KB
zlib-streams.ads 4KB
Makefile.am 818B
gvmat64.asm 16KB
inffas32.asm 16KB
match686.asm 15KB
inffasx64.asm 10KB
AUTHORS 115B
compile.txt.bak 0B
bld_ml32.bat 92B
bld_ml64.bat 86B
bcc 1KB
makefile.bcc 530B
makefile.bcc 382B
makefile.bcc 365B
makefile.bcc 341B
makefile.bcc 333B
bndsrc 8KB
Makefile.bor 3KB
Makefile.bor 3KB
DotZLib.build 1KB
ngx_http_core_module.c 141KB
ngx_http_upstream.c 138KB
ngx_http_proxy_module.c 109KB
ngx_http_spdy.c 105KB
ngx_http_mp4_module.c 102KB
ngx_http_fastcgi_module.c 93KB
ngx_http_request.c 91KB
ngx_event_openssl.c 81KB
ngx_http_ssi_filter_module.c 78KB
deflate.c 70KB
ngx_rtmp_mp4_module.c 69KB
unzip.c 69KB
ngx_resolver.c 68KB
zip.c 64KB
ngx_rtmp_hls_module.c 62KB
ngx_http_uwsgi_module.c 62KB
ngx_http_variables.c 62KB
ngx_http_parse.c 57KB
inflate.c 52KB
ngx_http_scgi_module.c 52KB
ngx_http.c 52KB
ngx_http_file_cache.c 49KB
ngx_rtmp_dash_module.c 47KB
ngx_rtmp_notify_module.c 47KB
ngx_http_log_module.c 46KB
ngx_rtmp_relay_module.c 45KB
trees.c 43KB
ngx_http_geo_module.c 42KB
ngx_event_openssl_stapling.c 42KB
ngx_http_script.c 41KB
ngx_string.c 41KB
ngx_rtmp_exec_module.c 41KB
ngx_mail_auth_http_module.c 41KB
gzlog.c 40KB
ngx_http_charset_filter_module.c 40KB
inffas86.c 40KB
ngx_http_image_filter_module.c 38KB
ngx_process_cycle.c 37KB
puff.c 37KB
ngx_rtmp_record_module.c 35KB
ngx_cycle.c 33KB
nginx.c 32KB
ngx_event.c 32KB
ngx_rtmp_play_module.c 32KB
ngx_rtmp_live_module.c 32KB
ngx_conf_file.c 32KB
ngx_connection.c 31KB
ngx_http_spdy_filter_module.c 31KB
ngx_http_dav_module.c 31KB
ngx_mail_proxy_module.c 31KB
ngx_http_gzip_filter_module.c 31KB
ngx_open_file_cache.c 30KB
ngx_http_xslt_filter_module.c 29KB
ngx_http_rewrite_module.c 28KB
ngx_http_request_body.c 27KB
ngx_http_ssl_module.c 27KB
ngx_inet.c 26KB
ngx_rtmp_codec_module.c 26KB
ngx_file.c 26KB
gun.c 25KB
共 895 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
- sec125632017-02-07还不错了 不过好像只有Linux的 没有windows的了
- 「已注销」2018-02-07感谢分享!!
- dopicou2016-09-13谢谢啦 ,可以用的,!
- 清杨子2017-11-25谢谢啦,确实不错,要是有windows的编译方法就更好了
mtour
- 粉丝: 25
- 资源: 78
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功