2017-05-16 17 views
1

コマンドexecを使用して復元を開始できません。また、私はexec_pullを試しました。 それは役に立たなかった。私の目標は、rtmp://localhost:1935/hlsに私のローカルnginxにrtmp://ktv.s4c.link/live/livestream URLを復元することです。 /tmp/logs/ffmpeg.logは空です。 私はexecも呼ばれていないと思いますが、なぜですか?nginx-rtmp-moduleで復元できません

rtmp { 

    server { 
    listen 1935; 
    chunk_size 4096; 

    application live { 
     allow play all; 
     live on; 
     record off; 
     #pull rtmp://ktv.s4c.link/live/livestream; 
     exec ffmpeg -i rtmp://localhost:1935/live -f flv rtmp://localhost:1935/hls 2>>/tmp/logs/ffmpeg.log; 
    } 

     application hls { 
     allow play all; 
     live on; 
     record off; 
    } 

    } 

私はnginx-1.12.0を使用しています。 私はnobodyユーザーとして、すべてのEXECコマンドを実行しているnginxのを認識して、だからすべての最初this

答えて

1

を見て、this tutorialが続きます。そして、コマンドラインで次のようにテストする必要があります。

sudo -u nobody ffmpeg -i rtmp://ktv.s4c.link/live/livestream -f flv rtmp://localhost:1935/hls 

そして、このコマンドラインが動作する場合は、nginx.confに出力してください。

第2にを使用してください。それはの非常に重要なです.Nginxよりも子プロセスが実行される環境が、現在のユーザー環境とは異なるためです。第三に

sudo -u nobody /usr/bin/ffmpeg -i rtmp://ktv.s4c.link/live/livestream -f flv rtmp://localhost:1935/hls 

は、私のミスは私がリポジトリからにFFmpegを使用したことだったとのFFmpegは2.8.11-0ubuntu0.16.04.1バージョンを持っていること。

sudo -u nobody /usr/bin/ffmpeg -i "rtmp://ktv.s4c.link/live/livestream live=1" -f flv rtmp://localhost:1935/hls 

:このanswer 私はnginx.confにコピーされた最後のコマンドだったのでFFmpegのはFFmpegのは1 =ライブや引用符(")を必要とすることができます理由です、librtmpしてコンパイルすることができますに関連します

私の最後のnginx.conf

rtmp { 
server { 
     listen 1935; 
     chunk_size 4096; 

     application live { 
      live on; 
      record off; 
      pull rtmp://ktv.s4c.link/live/livestream; 
      exec_play /usr/bin/ffmpeg -i "rtmp://ktv.s4c.link/live/livestream live=1" -f flv rtmp://localhost:1935/hls 2>>/tmp/ffmpeg-$name.log; 
     } 

     application hls { 
      live on; 
      record off; 
     } 

    } 

あなたは、私はFFmpegのは2>>/tmp/ffmpeg-$name.logをログに記録する追加言及することができたよう。

関連する問題