私は、ライブhlsとmpeg-dashをストリームするためにnginxとrtmpモジュールを使用しています。 はここffmpeg execコマンドがnginx rtmpで実行されていない
rtmp {
server {
listen 1936;
application mypull {
live on ;
meta copy;
allow play all;
pull rtmp://184.72.239.149/vod/BigBuckBunny_115k.mov name=test live=1;
exec_push /usr/bin/ffmpeg -re -i rtmp://localhost:1936/mypull/$name -vcodec libx264 -acodec libmp3lame -f flv rtmp://localhost:1936/hls/$name;
}
application dash {
live on;
dash on;
dash_path /tmp/dash;
dash_nested on;
dash_fragment 5s;
dash_playlist_length 30s;
}
application hls {
live on;
hls on;
hls_playlist_length 30s;
hls_fragment 5s;
hls_path /tmp/hls;
}
}
}
.confをnginxの中の私のRTMPコマンドですが、それは演奏されません。 ffmpegコマンドが実行されていないようです。 hlsとdashフォルダは空です。誰もそれで私を助けることができますか?
としてあなたのコマンドを実行しますが、コマンドラインからffmpegのコマンドの作業を行います? –
これは実際のIDです。私のnginx.confはまさにこのようなものです。出力を作成しません。 @GergelyLukacsy – evan
いいえ。ストリームIDは '$ name'変数に代入されています。ストリームを開くと、URLは 'rtmp://server.com:1935/mypull/12345'のようになります。ここで' 12345'はストリームIDです。 この場合、何か代用できると思いますので、これはあなたのコンソールです: 'ffmpeg -re -i rtmp:// localhost:1936/mypull/123 -vcodec libx264 -acodec libmp3lame -f flv rtmp:// localhost:1936/hls/123' また、ファイアウォールの設定でポートが開いていることを確認してください。なぜあなたはRTMPのために1936を使用していますか?デフォルトは1935です。 –