簡體   English   中英

nginx rtmp模塊,播放或發布的安全鏈接不起作用

[英]nginx rtmp module, secure link for play or for publish not working

我嘗試為on_play和on_publish設置安全鏈接,但未成功,然后我嘗試按示例設置

但它仍然無法正常工作,只是第一個請求可以,其他請求未發送secure_link參數

我的nginx.cong是

user root root;
worker_processes 3;
worker_rlimit_nofile 108000;
worker_priority -5;

rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;

pid /tmp/nginx.pid;

events {
use epoll;
worker_connections 500;
}

http {
vhost_traffic_status_zone;

include       /opt/nginx/conf/mime.types;
default_type  application/octet-stream;
log_subrequest off;

access_log   /opt/nginx/logs/access.log ;
error_log       /opt/nginx/logs/error.log crit;
log_subrequest on;

server {
    listen 8080;
    server_name localhost;

    location /on_play {
        # set connection secure link
        secure_link $arg_st,$arg_e;
        secure_link_md5 mysecretkey$arg_app/$arg_name$arg_e;

        # bad hash
        if ($secure_link = "") {
            return 501;
        }

        # link expired
        if ($secure_link = "0") {
            return 502;
        }
        return 200;
    }
}
server {
listen 80;
server_name localhost;

    ## RTMP STAT CONTROL
    location /stat {
        rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
    }
    location /stat.xsl {
        # you can move stat.xsl to a different location
        root /opt/nginx/html/rtmp;
    }

    # rtmp control
    location /control {
        rtmp_control all;
    }

    location /status {
        vhost_traffic_status_display;
        vhost_traffic_status_display_format html;
    }
   }
}

##rtmp Stream
rtmp {
server {
listen 1935;
chunk_size 4000;

    application myapp {
        live on;
        notify_method get;
        on_play http://localhost:8080/on_play;
    }
 }
}

我使用ffmpeg作為發布者,並使用vlc作為播放器的播放鏈接是rtmp://172.16.1.166/myapp/mystream?e = 1482160069&st = U7sDGG1X3XdOpjR4QJqd8w,在access.log上我可以看到

127.0.0.1 - - [19/Dec/2016:17:21:07 +0300] "GET /on_play?app=myapp&flashver=LNX%209,0,124,2&swfurl=&tcurl=rtmp://172.16.1.166:1935/myapp&pageurl=&addr=172.16.1.7&clientid=1&call=play&name=mystream&start=4294965296&duration=0&reset=0&e=1482160069&st=U7sDGG1X3XdOpjR4QJqd8w HTTP/1.0" 200 0 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:23 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.0&clientid=5&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:23 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.1&clientid=7&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:24 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.0&clientid=13&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:24 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.1&clientid=15&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:25 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.0&clientid=21&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:25 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.1&clientid=23&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:26 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.0&clientid=29&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:26 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.1&clientid=31&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:27 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.0&clientid=37&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:27 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.1&clientid=39&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:28 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.0&clientid=45&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
127.0.0.1 - - [19/Dec/2016:17:21:28 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.1&clientid=47&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
127.0.0.1 - - [19/Dec/2016:17:21:29 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.0&clientid=53&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:29 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.1&clientid=55&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:30 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.1&clientid=63&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:30 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.0&clientid=61&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-" 
    127.0.0.1 - - [19/Dec/2016:17:21:31 +0300] "GET /on_play?app=&flashver=ngx-local-relay&swfurl=&tcurl=&pageurl=&addr=unix:/tmp/nginx-rtmp.1&clientid=71&call=play&name=mystream&start=0&duration=0&reset=0 HTTP/1.0" 501 181 "-" "-"

看起來只有第一個請求就很好了,所有200個下一個請求都沒有參數,因此被拒絕

:((

PS我嘗試了ffplay,結果和access.log相同

這里同樣的問題。 我只是將on_play重定向到另一個網頁,如果參數包含“ addr = unix ...”,則發送200,並檢查其他參數(如果addr不同)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM