Skip to content

Commit ce8921c

Browse files
committed
[dev] initial commit.
1 parent 85722ed commit ce8921c

File tree

83 files changed

+36125
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+36125
-0
lines changed

AUTHORS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Project author:
2+
3+
Roman Arutyunyan
4+
Moscow, Russia
5+
6+
Contacts:
7+
arut@qip.ru
8+
arutyunyan.roman@gmail.com

README.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,85 @@
11
# nginx-http-flv-module
2+
23
Media streming server based on nginx-rtmp-module.
4+
5+
# Features
6+
7+
* HTTP-based FLV streming (subscribe).
8+
9+
* GOP cache for low latency.
10+
11+
* 'Transfer-Encoding: chunked' response supported.
12+
13+
* Missing 'listen' directive in rtmp server block will be OK.
14+
15+
# Build
16+
17+
cd to NGINX source directory & run this:
18+
19+
./configure --add-module=/path/to/nginx-http-flv-module
20+
make
21+
make install
22+
23+
# Usage
24+
25+
* publish: ffmpeg -re -i example.mp4 -vcodec copy -acodec copy -f flv rtmp://example.com/myapp/mystream
26+
27+
* subscribe: http://localhost[:port]/live?[srv=0&app=myapp&]stream=mystream
28+
29+
# example nginx.conf
30+
31+
worker_processes 1;
32+
33+
error_log logs/error.log error;
34+
35+
events {
36+
worker_connections 1024;
37+
}
38+
39+
http {
40+
include mime.types;
41+
default_type application/octet-stream;
42+
43+
sendfile on;
44+
45+
keepalive_timeout 65;
46+
47+
server {
48+
listen 80;
49+
50+
location / {
51+
root /var/www;
52+
index index.html index.htm;
53+
}
54+
55+
error_page 500 502 503 504 /50x.html;
56+
location = /50x.html {
57+
root html;
58+
}
59+
60+
location /live {
61+
flv_live on;
62+
chunked on;
63+
}
64+
}
65+
}
66+
67+
rtmp_auto_push on;
68+
rtmp_auto_push_reconnect 1s;
69+
rtmp_socket_dir /tmp;
70+
71+
rtmp {
72+
out_queue 4096;
73+
out_cork 8;
74+
75+
server {
76+
listen 1935;
77+
78+
application myapp {
79+
live on;
80+
gop_cache on;
81+
gop_cache_count 5;
82+
}
83+
}
84+
}
85+

config

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
ngx_addon_name="ngx_rtmp_module"
2+
3+
RTMP_CORE_MODULES=" \
4+
ngx_rtmp_module \
5+
ngx_rtmp_core_module \
6+
ngx_rtmp_cmd_module \
7+
ngx_rtmp_codec_module \
8+
ngx_rtmp_access_module \
9+
ngx_rtmp_record_module \
10+
ngx_rtmp_gop_cache_module \
11+
ngx_rtmp_live_module \
12+
ngx_rtmp_play_module \
13+
ngx_rtmp_flv_module \
14+
ngx_rtmp_mp4_module \
15+
ngx_rtmp_netcall_module \
16+
ngx_rtmp_relay_module \
17+
ngx_rtmp_exec_module \
18+
ngx_rtmp_auto_push_module \
19+
ngx_rtmp_auto_push_index_module \
20+
ngx_rtmp_notify_module \
21+
ngx_rtmp_log_module \
22+
ngx_rtmp_limit_module \
23+
ngx_rtmp_hls_module \
24+
ngx_rtmp_dash_module \
25+
"
26+
27+
28+
RTMP_HTTP_MODULES=" \
29+
ngx_rtmp_stat_module \
30+
ngx_rtmp_control_module \
31+
ngx_http_flv_live_module \
32+
"
33+
34+
35+
RTMP_DEPS=" \
36+
$ngx_addon_dir/ngx_rtmp_amf.h \
37+
$ngx_addon_dir/ngx_rtmp_bandwidth.h \
38+
$ngx_addon_dir/ngx_rtmp_cmd_module.h \
39+
$ngx_addon_dir/ngx_rtmp_codec_module.h \
40+
$ngx_addon_dir/ngx_rtmp_eval.h \
41+
$ngx_addon_dir/ngx_rtmp.h \
42+
$ngx_addon_dir/ngx_rtmp_version.h \
43+
$ngx_addon_dir/ngx_rtmp_live_module.h \
44+
$ngx_addon_dir/ngx_rtmp_netcall_module.h \
45+
$ngx_addon_dir/ngx_rtmp_play_module.h \
46+
$ngx_addon_dir/ngx_rtmp_record_module.h \
47+
$ngx_addon_dir/ngx_rtmp_gop_cache_module.h \
48+
$ngx_addon_dir/ngx_rtmp_relay_module.h \
49+
$ngx_addon_dir/ngx_rtmp_streams.h \
50+
$ngx_addon_dir/ngx_rtmp_bitop.h \
51+
$ngx_addon_dir/ngx_rtmp_proxy_protocol.h \
52+
$ngx_addon_dir/hls/ngx_rtmp_mpegts.h \
53+
$ngx_addon_dir/dash/ngx_rtmp_mp4.h \
54+
"
55+
56+
57+
RTMP_CORE_SRCS=" \
58+
$ngx_addon_dir/ngx_rtmp.c \
59+
$ngx_addon_dir/ngx_rtmp_init.c \
60+
$ngx_addon_dir/ngx_rtmp_handshake.c \
61+
$ngx_addon_dir/ngx_rtmp_handler.c \
62+
$ngx_addon_dir/ngx_rtmp_amf.c \
63+
$ngx_addon_dir/ngx_rtmp_send.c \
64+
$ngx_addon_dir/ngx_rtmp_shared.c \
65+
$ngx_addon_dir/ngx_rtmp_eval.c \
66+
$ngx_addon_dir/ngx_rtmp_receive.c \
67+
$ngx_addon_dir/ngx_rtmp_core_module.c \
68+
$ngx_addon_dir/ngx_rtmp_cmd_module.c \
69+
$ngx_addon_dir/ngx_rtmp_codec_module.c \
70+
$ngx_addon_dir/ngx_rtmp_access_module.c \
71+
$ngx_addon_dir/ngx_rtmp_record_module.c \
72+
$ngx_addon_dir/ngx_rtmp_gop_cache_module.c \
73+
$ngx_addon_dir/ngx_rtmp_live_module.c \
74+
$ngx_addon_dir/ngx_rtmp_play_module.c \
75+
$ngx_addon_dir/ngx_rtmp_flv_module.c \
76+
$ngx_addon_dir/ngx_rtmp_mp4_module.c \
77+
$ngx_addon_dir/ngx_rtmp_netcall_module.c \
78+
$ngx_addon_dir/ngx_rtmp_relay_module.c \
79+
$ngx_addon_dir/ngx_rtmp_bandwidth.c \
80+
$ngx_addon_dir/ngx_rtmp_exec_module.c \
81+
$ngx_addon_dir/ngx_rtmp_auto_push_module.c \
82+
$ngx_addon_dir/ngx_rtmp_notify_module.c \
83+
$ngx_addon_dir/ngx_rtmp_log_module.c \
84+
$ngx_addon_dir/ngx_rtmp_limit_module.c \
85+
$ngx_addon_dir/ngx_rtmp_bitop.c \
86+
$ngx_addon_dir/ngx_rtmp_proxy_protocol.c \
87+
$ngx_addon_dir/hls/ngx_rtmp_hls_module.c \
88+
$ngx_addon_dir/dash/ngx_rtmp_dash_module.c \
89+
$ngx_addon_dir/hls/ngx_rtmp_mpegts.c \
90+
$ngx_addon_dir/dash/ngx_rtmp_mp4.c \
91+
"
92+
93+
94+
RTMP_HTTP_SRCS=" \
95+
$ngx_addon_dir/ngx_rtmp_stat_module.c \
96+
$ngx_addon_dir/ngx_rtmp_control_module.c \
97+
$ngx_addon_dir/ngx_http_flv_live_module.c \
98+
"
99+
100+
if [ -f auto/module ] ; then
101+
ngx_module_incs=$ngx_addon_dir
102+
ngx_module_deps=$RTMP_DEPS
103+
104+
if [ $ngx_module_link = DYNAMIC ] ; then
105+
ngx_module_name="$RTMP_CORE_MODULES $RTMP_HTTP_MODULES"
106+
ngx_module_srcs="$RTMP_CORE_SRCS $RTMP_HTTP_SRCS"
107+
108+
. auto/module
109+
110+
else
111+
ngx_module_type=CORE
112+
ngx_module_name=$RTMP_CORE_MODULES
113+
ngx_module_srcs=$RTMP_CORE_SRCS
114+
115+
. auto/module
116+
117+
118+
ngx_module_type=HTTP
119+
ngx_module_name=$RTMP_HTTP_MODULES
120+
ngx_module_incs=
121+
ngx_module_deps=
122+
ngx_module_srcs=$RTMP_HTTP_SRCS
123+
124+
. auto/module
125+
fi
126+
127+
else
128+
CORE_MODULES="$CORE_MODULES $RTMP_CORE_MODULES"
129+
HTTP_MODULES="$HTTP_MODULES $RTMP_HTTP_MODULES"
130+
131+
NGX_ADDON_DEPS="$NGX_ADDON_DEPS $RTMP_DEPS"
132+
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $RTMP_CORE_SRCS $RTMP_HTTP_SRCS"
133+
134+
CFLAGS="$CFLAGS -I$ngx_addon_dir"
135+
fi
136+
137+
USE_OPENSSL=YES
138+

0 commit comments

Comments
 (0)