windows下搭建ffmpeg + rtmp 流媒體服務(wù)器

網(wǎng)絡(luò)上已經(jīng)有nginx服務(wù)器搭建的文檔,為什么我還要寫呢?
啊哈!
因?yàn)槊總€(gè)人得環(huán)境不一樣沒問題不一樣,所以寫這篇文章僅作備忘用!
而且都不完整,百度出來都是同一篇文章...
所以這次我從頭到位記錄下這次的過程....
這...必將是一個(gè)漫長的過程...唉...
如果能幫上你,那就更好了!!
先看下這篇文章吧!

windows下搭建基于nginx的rtmp服務(wù)器 - zxw_tiantan的博客
http://blog.csdn.net/zxw_tiantan/article/details/53906253

下載 nginx 1.7.11.3 Gryphon.zip
附上最新版下載地址:
http://nginx-win.ecsds.eu/download/nginx 1.7.11.3 Gryphon.zip

下載完成后解壓:
將解壓后的目錄名: nginx 1.7.11.3 Gryphon 改成: nginx-1.7.11.3-Gryphon

  1. 下載服務(wù)器狀態(tài)檢查程序 stat.xsl
    https://github.com/arut/nginx-rtmp-module/
    將nginx-rtmp-module-master.zip解壓后復(fù)制到目錄:nginx-1.7.11.3-Gryphon下,
    保證stat.xls的目錄為:nginx-1.7.11.3-Gryphon\nginx-rtmp-module\stat.xsl
  2. 配置文件 conf\nginx-win.conf 內(nèi)容如下:

···

user nobody;

multiple workers works !

worker_processes 2;

error_log logs/error.log;

error_log logs/error.log notice;

error_log logs/error.log info;

pid logs/nginx.pid;

events {
worker_connections 8192;
# max value 32768, nginx recycling connections+registry optimization =
# this.value * 20 = max concurrent connections currently tested with one worker
# C1000K should be possible depending there is enough ram/cpu power
# multi_accept on;
}

http {
#include /nginx/conf/naxsi_core.rules;
include mime.types;
default_type application/octet-stream;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root nginx-rtmp-module/;
}
location /control {
rtmp_control all;
}

#log_format  main  '$remote_addr:$remote_port - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';

#access_log  logs/access.log  main;

# loadbalancing PHP

upstream myLoadBalancer {

server 127.0.0.1:9001 weight=1 fail_timeout=5;

server 127.0.0.1:9002 weight=1 fail_timeout=5;

server 127.0.0.1:9003 weight=1 fail_timeout=5;

server 127.0.0.1:9004 weight=1 fail_timeout=5;

server 127.0.0.1:9005 weight=1 fail_timeout=5;

server 127.0.0.1:9006 weight=1 fail_timeout=5;

server 127.0.0.1:9007 weight=1 fail_timeout=5;

server 127.0.0.1:9008 weight=1 fail_timeout=5;

server 127.0.0.1:9009 weight=1 fail_timeout=5;

server 127.0.0.1:9010 weight=1 fail_timeout=5;

least_conn;

}

sendfile        off;
#tcp_nopush     on;

server_names_hash_bucket_size 128;

Start: Timeouts

client_body_timeout   10;
client_header_timeout 10;
keepalive_timeout     30;
send_timeout          10;
keepalive_requests    10;

End: Timeouts

#gzip  on;

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    ## Caching Static Files, put before first location
    #location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    #    expires 14d;
    #    add_header Vary Accept-Encoding;
    #}

For Naxsi remove the single # line for learn mode, or the ## lines for full WAF mode

    location / {
        #include    /nginx/conf/mysite.rules; # see also http block naxsi include line
        ##SecRulesEnabled;
          ##DeniedUrl "/RequestDenied";
          ##CheckRule "$SQL >= 8" BLOCK;
          ##CheckRule "$RFI >= 8" BLOCK;
          ##CheckRule "$TRAVERSAL >= 4" BLOCK;
          ##CheckRule "$XSS >= 8" BLOCK;
        root   html;
        index  index.html index.htm;
    }

For Naxsi remove the ## lines for full WAF mode, redirect location block used by naxsi

    ##location /RequestDenied {
    ##    return 412;
    ##}

Lua examples !

location /robots.txt {

rewrite_by_lua '

if ngx.var.http_host ~= "localhost" then

return ngx.exec("/robots_disallow.txt");

end

';

}

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

    # proxy the PHP 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$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000; # single backend process
    #    fastcgi_pass   myLoadBalancer; # or multiple, see example above
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}


# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#    listen       8000;
#    listen       somename:8080;
#    server_name  somename  alias  another.alias;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}


# HTTPS server
#
#server {
#    listen       443 ssl spdy;
#    server_name  localhost;

#    ssl                  on;
#    ssl_certificate      cert.pem;
#    ssl_certificate_key  cert.key;

#    ssl_session_timeout  5m;

#    ssl_prefer_server_ciphers On;
#    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#    ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:ECDH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!eNULL:!MD5:!DSS:!EXP:!ADH:!LOW:!MEDIUM;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}

}

rtmp {

server {
listen 1935;

#直播流配置
  application rtmplive {
      live on;
  #為 rtmp 引擎設(shè)置最大連接數(shù)。默認(rèn)為 off
  max_connections 1024;

   }


  application hls{

      live on;
      hls on;
      hls_path H:\phpStudy\WWW\hls;
      hls_fragment 1s;
  }

}
}

···

好了!rtmp服務(wù)器搭建完成了!

  1. 啟動(dòng)服務(wù)器進(jìn)入windows的cmd;
> cd nginx-1.7.11.3-Gryphon
> nginx.exe -c conf\nginx-win-rtmp.conf

?。。。。∑鸩粊怼玶tmp加載不進(jìn)去。。
繼續(xù)百度
該安裝ffmpeg了!
來吧!

最新下載直連:https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20161230-6993bb4-win64-static.zip
官網(wǎng):https://ffmpeg.zeranoe.com/builds/

握草??!官網(wǎng)下載速度太慢??!等了好久!
附上百度盤的鏈接吧:http://pan.baidu.com/s/1eSifLFc

好勒!現(xiàn)在開始安裝:
首先要解壓對不對?
解壓完成后復(fù)制里面的內(nèi)容到C盤根目錄下(需要新建一個(gè)名為ffmpeg的文件夾哦?。?br> 這樣的:

123.png

然后呢?
我們需要把ffmpeg命令添加到全局哦!
右鍵點(diǎn)擊我的電腦選擇屬性找到:

456.png
789.png

選擇環(huán)境變量

010.png

012.png

寫漏了。。。目錄應(yīng)該是:c:\ffmpeg\bin
啊哈!到這就設(shè)置完成了!來試試吧??!
出現(xiàn)這個(gè)就說明對了哦!

013.png

那現(xiàn)在試試推流吧!

ffmpeg推流命令:

ffmpeg -re -i E:\QQ空間\我要找一個(gè)對象.mpg -vcodec libx264 -acodec aac -f flv rtmp://localhost:1935/rtmplive/home

哎呀!推流時(shí)報(bào)錯(cuò)了。。rtmp服務(wù)器沒有啟動(dòng)成功..
太晚了 睡覺 明天繼續(xù)。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容