nginx rtmp hls直播支持多少连接

使用nginx在android手机上搭建rtmp服务器并测试
1,编译android上面可以使用的nginx,添加选项--add-module=/path/nginx-rtmp-module,准备android上面shell可以使用的ffmpeg和相关库文件以及m3u8的segmenter文件
2,在手机的data/data/android.nginx目录下把编译生成的nginx相关文件放到该目录下
3,编写配置文件
-----------------------------------nginx.conf start here----------------------------------------------------
worker_processes
/data/data/android.nginx/logs/error.
/data/data/android.nginx/logs/error.
/data/data/android.nginx/logs/error.
logs/nginx.
worker_connections
listen 1935;
chunk_size 4096;
application myapp {
default_type
application/octet-
#log_format
'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log
logs/access.
#keepalive_timeout
keepalive_timeout
location /stat {
rtmp_stat_stylesheet stat.
location /stat.xsl {
root /data/data/android.
location / {
root /data/data/android.rtmp/test/rtmp-
autoindex_exact_
/data/data/android.
index.html index.htm index.
#charset koi8-r;
#access_log
logs/host.access.
#error_page
# redirect server error pages to the static page /50x.html
error_page
500 502 503 504
location = /50x.html {
# proxy the
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$ {
fastcgi_index
client_max_body_size 64m;
fastcgi_pass
unix:/data/data/android.php-fpm/tmp/php-fpm.
fastcgi_param
SCRIPT_FILENAME
/data/data/android.wwwroot$fastcgi_script_
location ~ \.flv$ {
location ~ \.mp4$ {
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#location ~ /\.ht {
# another virtual host using mix of IP-, name-, and port-based configuration
somename:8080;
server_name
location / {
index.html index.
# HTTPS server
ssl_certificate
ssl_certificate_key
ssl_session_timeout
ssl_protocols
SSLv2 SSLv3 TLSv1;
ssl_ciphers
HIGH:!aNULL:!MD5;
ssl_prefer_server_
location / {
index.html index.
-----------------------------------nginx.conf end here----------------------------------------------------
4,adb push nginx.conf /data/data/android.nginx/conf/
5,启动nginx,在/data/data/android.nginx目录下,执行./nginx -c ./conf/nginx.conf
6,准备ffmpeg文件
chmod 777 /system/bin/
adb push ffmpeg /system/bin/
cd system/bin
chmod 777 ffmpeg
adb push libvorbisenc.so.2 /system/lib
adb push libvorbis.so.0 /system/lib
adb push libogg.so.0 /system/lib
adb push libtheoraenc.so.1 /system/lib
adb push libtheoradec.so.1 /system/lib
adb push libmp3lame.so.0 /system/lib
adb push libfdk-aac.so.0 /system/lib
adb push segmenter /system/bin
cd /system/bin
chmod 777 segmenter
7,准备相关文件
adb push 1.flv /data/data/android.wwwroot/
8,准备rtmp相关文件
在/data/data/目录下建立rtmp目录,使用adb push的方法把nginx-rtmp-module目录下所有文件push到/data/data/rtmp目录下
修改该目录下的./test/rtmp-publisher/player.html
---------------------------player.html start here---------------------------------------------------------------
!DOCTYPE html>
RTMP Player
&script type="text/javascript" src="swfobject.js"&&/script&
&script type="text/javascript"&
var flashVars = {
streamer: 'rtmp://192.168.1.2/myapp',
file:'test1'
swfobject.embedSWF("RtmpPlayer.swf", "rtmp-publisher", "500", "400", "9.0.0",null, flashVars);
Flash not installed
---------------------------player.html end here---------------------------------------------------------------
"rtmp://192.168.1.2/myapp"表示url, "test1"表示stream
推流方式1:ffmpeg -re -i 1.flv -f flv rtmp://192.168.1.2/myapp/test1
注意:要把相关文件push到
我这里把这个简单写成pushrtmp的批处理
---------------------------------pushrtmp start here-----------------------------------------------------------
!/system/bin/sh
file_name=`echo ${file} | busybox awk -F '.' '{ print $1 "" }'`
ffmpeg -re -i ./$1.flv -f flv rtmp://192.168.1.$2/myapp/test1
---------------------------------pushrtmp end here-----------------------------------------------------------
执行方式就是简单的./pushrtmp 1 2就可以了
在另一台机器上访问http://192.168.1.2:801/player.html就可以了
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
./bootstrap
./configure --prefix=/home --with-mp4v2
make install加入mp4v2是为了支持MP4容器的AAC音频,上面的命令执行完成后,就可以得到faac的lib和dll文件。.cn/s/blog_586c261a0101korl.html5.ffmpeg切片方案./configure --disable-yasm --enable-libx264--enable-libfaac --enable-gpl --enable-shared --prefix=/usr/local/ffmpeg --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/libmake && make install如果linux下出现 ffmpeg: error while loading shared libraries: libavdevice.so.55: cannot open shared object file: No such file or directoryvi /etc/ld.so.conf加入:/usr/local/ffmpeg/lib执行:ldconfig切本地文件命令:ffmpeg -i test.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 10 output%03d.ts切网络地址命令:ffmpeg -i rtmp://192.168.42.128/myapp/test1 -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 10 output%03d.ts设置视频编码库libx264和音频编码库libfaac:./ffmpeg -y -i rtmp://192.168.42.128/myapp/test1 -pix_fmt yuv420p -vcodec libx264 -acodec libfaac -r 25 -profile:v baseline -b:v 150k -maxrate 200k -force_key_frames 50 -s 320x240 -map 0 -flags -global_header -f segment -segment_list playlist.m3u8 -segment_time 10 -segment_format mpeg_ts -segment_list_type m3u8 segment%05d.ts6. nginx-rtmp-module切片application hls {hls_path /project/nginx-rtmp-module-master/test/rtmp-}7.nginx实时rtmp播放地址8.HLS实时播放地址&参考Encoding HLS with ffmpeg:最近遇到下面类似的问题[html]&经过研究ffmpeg的config.mak文件发现[html]&-mwindows是windows窗口APP所需的参数,而要在控制台下输出信息必须是windows控制台程序。所以只需将文件中出现两次的-mwindows都删除即可。解决办法2另外一种解决办法,修改sdl-config,将文件中的-mwindows删除。但须重新运行configuhttp://blog.csdn.net/tttyd/article/details/8825410
阅读(472)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_086067',
blogTitle:'nginx-rtmp-module和ffmpeg搭建实时HLS切片',
blogAbstract:'nginx-rtmp-module和ffmpeg搭建实时HLS切片by ahuner1.rtmp服务器nginx+pcre+zlib+openssl+nginx-rtmp-module',
blogTag:'',
blogUrl:'blog/static/1034971',
isPublished:1,
istop:false,
modifyTime:7,
publishTime:1,
permalink:'blog/static/1034971',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}在Windows下搭建基于nginx的视频直播和点播系统
在Windows下搭建基于nginx的视频直播和点播系统
一、软件准备
由于nginx原生是为linux服务的,因此官方并没有编译好的windows版本可以下载,要在windows上使用nginx,要么下载源码进行编译,要么使用其他人已经编译好的文件。
而要让nginx支持视频直播和点播,还需要第三方的nginx模块:nginx-rtmp-module
所幸,已经有大神做好了nginx的编译,而且集成了很多nginx模块,其中就已经包括了nginx-rtmp-module。
下载地址:http://nginx-win.ecsds.eu/,详细说明可参见:Readme nginx-win version.txt
我下载的是nginx 1.7.11.3 Gryphon这个版本。
这个网站同时也提供了vcredist的下载(x86,x64),以避免运行nginx时出现缺少库的错误。
另外还要下载&stat.xsl&用于显示当前ngix-rtmp服务状态
另外还需要下载ffmpeg、ffplay、yamdi:
总结如下:
1.&nginx 1.7.11.3 Gryphon
2.&stat.xsl
3.&ffmpeg、ffplay
二、Nginx 配置
&1. nginx配置
worker_processes&&1;
error_log&&logs/error.log&
&&&&worker_connections&&1024;
&&&&server&{
&&&&&&&&listen&1935;
&&&&&&&&application&hls&{
&&&&&&&&&&&&&live&&&#启用rtmp直播
&&&&&&&&&&&&&&&&&&&&&&&#地址为rtmp://[server]:[rtmp_port]/[app]/[stream]
&&&&&&&&&&&&&hls&&&&#启用hls直播
&&&&&&&&&&&&&&&&&&&&&&&#地址为http://[server]:[http_port]/[app]/[stream].m3u8
&&&&&&&&&&&&&&&&&&&&&&&#需要配合下面http段设置使用
&&&&&&&&&&&&&hls_path&nginx-rtmp-module/tmp/app/;
&&&&&&&&&&&&&hls_fragment&5s;
&&&&&&&&&&&&&recorder&rec&{&&#启用录制
&&&&&&&&&&&&&&&record&all&&&#手动控制录制启停
&&&&&&&&&&&&&&&record_suffix&_rec.
&&&&&&&&&&&&&&&record_path&nginx-rtmp-module/tmp/rec/;&&#录制保存地址
&&&&&&&&&&&&&&&record_unique&
&&&&&&&&&&&}
&&&&&&&application&vod2{&&#rtmp点播
play&nginx-rtmp-module/tmp/rec/;&&&&
&&&&server&{
&&&&&&&&listen&&&&&&18080;
&&&&&&&&location&/stat&{&&#服务器状态
&&&&&&&&&&&&rtmp_stat&
&&&&&&&&&&&&rtmp_stat_stylesheet&stat.
&&&&&&&&location&/stat.xsl&{
&&&&&&&&&&&&root&nginx-rtmp-module/;
&&&&&&&&location&/control&{&#控制器
&&&&&&&&&&&&rtmp_control&
location&/hls/&{&&#hls直播地址
&&&&&&&&&&&#server&hls&fragments
&&&&&&&&&&&types{
&&&&&&&&&&&&&application/vnd.apple.mpegurl&m3u8;
&&&&&&&&&&&&&video/mp2t&
&&&&&&&&&&&}
&&&&&&&&&&&alias&nginx-rtmp-module/tmp/app/;
&&&&&&&&&&&expires&-1;
&&&&&&&&location&/vod/{&&#hls点播地址
&&&&&&&&&&&&alias&nginx-rtmp-module/tmp/rec/;
&&&&&&&&location&/&{
&&&&&&&&&&&&root&nginx-rtmp-module/test/www/;
1. 启动nginx
start&nginx_1.7.11.3_Gryphon\nginx
2. 推送rtmp流到nginx-rtmp
start&ffmpeg\ffmpeg&-re&-i&rtmp://live.hkstv./live/hks&-vcodec&libx264&-preset:v&ultrafast&-tune:v&zerolatency&-acodec&copy&-f&flv&rtmp://localhost:1935/hls/mystream&-loglevel&quiet
3. rtmp直播
ffmpeg\ffplay&"rtmp://127.0.0.1:1935/hls/mystream"
4. hls 直播
ffmpeg\ffplay&"http://127.0.0.1:18080/hls/mystream.m3u8"
5. 开始录制
http://127.0.0.1:18080/control/record/start?app=hls&name=mystream&rec=rec
6. 停止录制
http://127.0.0.1:18080/control/record/stop?app=hls&name=mystream&rec=rec
7. 为rtmp点播文件添加索引,否则文件在播放时进度条不能拖动,假定刚才录制的文件名为mystream-_rec.flv
yamdi\yamdi&-i&nginx_1.7.11.3_Gryphon\nginx-rtmp-module\tmp\rec\mystream-_rec.flv&-o&nginx_1.7.11.3_Gryphon\nginx-rtmp-module\tmp\rec\mystream-_rec_idx.flv
8. rtmp点播
ffmpeg\ffplay&"rtmp://127.0.0.1:1935/vod2/mystream-_rec_idx.flv"
9. 制作hls点播分片文件
ffmpeg\ffmpeg&-i&E:\video-nginx\nginx_1.7.11.3_Gryphon\nginx-rtmp-module\tmp\rec\mystream-_rec.flv&-acodec&copy&-bsf:a&h264_mp4toannexb&-g&105&-vcodec&libx264&-vprofile&baseline&-bf&0&-bufsize&850k&-bsf:v&dump_extra&-map&0&-f&segment&-segment_format&mpegts&-segment_list&"E:\video-nginx\nginx_1.7.11.3_Gryphon\nginx-rtmp-module\tmp\rec\mystream-_rec\mystream-_rec.m3u8"&-segment_time&10&E:\video-nginx\nginx_1.7.11.3_Gryphon\nginx-rtmp-module\tmp\rec\mystream-_rec\mystream-_rec-%d.ts
10. hls 点播
ffplay&"http://127.0.0.1:8080/vod/mystream-_rec/mystream-_rec.m3u8"
原文链接:/2015/06/build-video-live-and-vod-with-nginx-rtmp-on-windows/
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。

我要回帖

更多关于 nginx rtmp 配置详解 的文章

 

随机推荐