mirror of
https://github.com/arut/nginx-rtmp-module.git
synced 2025-08-06 15:00:18 +08:00
179 lines
5.0 KiB
HTML
179 lines
5.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset='utf-8'>
|
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
|
<link href='https://fonts.googleapis.com/css?family=Chivo:900' rel='stylesheet' type='text/css'>
|
|
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen" />
|
|
<link rel="stylesheet" type="text/css" href="stylesheets/pygment_trac.css" media="screen" />
|
|
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print" />
|
|
<!--[if lt IE 9]>
|
|
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
<![endif]-->
|
|
<title>Nginx-rtmp-module by arut</title>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="container">
|
|
<div class="inner">
|
|
|
|
<header>
|
|
<h1>Nginx-rtmp-module</h1>
|
|
<h2>NGINX-based Media Streaming Server</h2>
|
|
</header>
|
|
|
|
<section id="downloads" class="clearfix">
|
|
<a href="https://github.com/arut/nginx-rtmp-module/zipball/master" id="download-zip" class="button"><span>Download .zip</span></a>
|
|
<a href="https://github.com/arut/nginx-rtmp-module/tarball/master" id="download-tar-gz" class="button"><span>Download .tar.gz</span></a>
|
|
<a href="https://github.com/arut/nginx-rtmp-module" id="view-on-github" class="button"><span>View on GitHub</span></a>
|
|
</section>
|
|
|
|
<hr>
|
|
|
|
<section id="main_content">
|
|
|
|
<h2>Wiki manual</h2>
|
|
|
|
<p><a href="https://github.com/arut/nginx-rtmp-module/wiki">https://github.com/arut/nginx-rtmp-module/wiki</a></p>
|
|
|
|
<h2>Features</h2>
|
|
|
|
<ul>
|
|
<li><p>Live streaming of video/audio</p></li>
|
|
<li><p>Video on demand (FLV)</p></li>
|
|
<li><p>Stream relay support for distributed
|
|
streaming: push & pull models</p></li>
|
|
<li><p>Recording published streams in FLV file</p></li>
|
|
<li><p>H264/AAC support</p></li>
|
|
<li><p>Online transcoding with FFmpeg
|
|
(experimental; Linux only)</p></li>
|
|
<li><p>HLS (HTTP Live Streaming) support
|
|
(experimental; libavformat >= 53.31.100)</p></li>
|
|
<li><p>HTTP callbacks on publish/play/record</p></li>
|
|
<li><p>Advanced buffering techniques
|
|
to keep memory allocations at a minimum
|
|
level for faster streaming and low
|
|
memory footprint</p></li>
|
|
<li><p>Works with Flash RTMP clients as well as
|
|
ffmpeg/rtmpdump/flvstreamer etc
|
|
(see examples in test/ subdir)</p></li>
|
|
<li><p>Statistics in XML/XSL in machine- & human-
|
|
readable form</p></li>
|
|
</ul>
|
|
|
|
|
|
<h2>Build:</h2>
|
|
<p>cd to NGINX source directory & run this:</p>
|
|
<pre>
|
|
./configure --add-module=/path/to.nginx-rtmp-module
|
|
make
|
|
make install
|
|
</pre>
|
|
|
|
<h2>Examples of nginx.conf</h2>
|
|
|
|
<h3>Simple Live Streaming</h3>
|
|
|
|
<pre>
|
|
rtmp {
|
|
server {
|
|
listen 1935;
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
|
|
</pre>
|
|
|
|
<h3>Transcoding</h3>
|
|
<pre>
|
|
application big {
|
|
live on;
|
|
exec /usr/bin/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
|
|
}
|
|
</pre>
|
|
|
|
<h3>Pushing stream</h3>
|
|
<pre>
|
|
application mypush {
|
|
live on;
|
|
|
|
# Every stream published here
|
|
# is automatically pushed to
|
|
# these two machines
|
|
push rtmp1.example.com;
|
|
push rtmp2.example.com:1934;
|
|
}
|
|
</pre>
|
|
|
|
<h3>Pulling stream</h3>
|
|
<pre>
|
|
application mypull {
|
|
live on;
|
|
|
|
# Pull all streams from remote machine
|
|
# and play locally
|
|
pull rtmp://rtmp3.example.com pageUrl=www.example.com/index.html;
|
|
}
|
|
</pre>
|
|
|
|
<h3>Video on demand</h3>
|
|
<pre>
|
|
application vod {
|
|
play /var/flvs;
|
|
}
|
|
</pre>
|
|
|
|
<h3>HLS (HTTP Live Streaming)</h3>
|
|
<pre>
|
|
application hls {
|
|
hls on;
|
|
hls_path /tmp/app;
|
|
hls_fragment 5s;
|
|
}
|
|
</pre>
|
|
|
|
|
|
<h2>Donation</h2>
|
|
If you want to support the project use the following services.
|
|
|
|
<h3>PayPal</h3>
|
|
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
|
<input type="hidden" name="cmd" value="_s-xclick">
|
|
<input type="hidden" name="hosted_button_id" value="L5JANTRG78XE4">
|
|
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
|
|
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
|
|
</form>
|
|
|
|
<h3>Yandex Money</h3>
|
|
<iframe frameborder="0" allowtransparency="true" scrolling="no" src="https://money.yandex.ru/embed/shop.xml?uid=410011494348442&writer=seller&targets=%d0%a0%d0%b0%d0%b7%d0%b2%d0%b8%d1%82%d0%b8%d0%b5+%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%b0+nginx-rtmp&default-sum=&button-text=03&hint=&fio=on&mail=on" width="450" height="162"></iframe>
|
|
|
|
|
|
<h2>Contacts</h2>
|
|
<p>Project author: Roman Arutyunyan</p>
|
|
<p><a href="mailto:arut@qip.ru">arut@qip.ru</a> (e-mail and jabber)</p>
|
|
<p><a href="mailto:arutyunyan.roman@gmail.com">arutyunyan.roman@gmail.com</a></p>
|
|
|
|
</section>
|
|
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|