nginx-rtmp on_publishで呼び出すurlにhttps接続を使用する
nginx-rtmpのon_publishで認証やrtmpの転送を行ってみました。nginx-rtmp 動画配信にパスワード認証を設定する(on_publish)
nginx-rtmpで動画の転送先を動的に変更する(on_publish)
urlにhttpsで始まるものを指定したい。
例として、https://example.com/on_publishを指定してみます。
設定ファイルの変更
設定ファイルを編集します。
$ sudo vi /etc/nginx/nginx.conf
on_publishに「https://example.com/on_publish」を指定
rtmp {
server {
listen 1935;
chunk_size 4096;
access_log /var/log/rtmp_access.log;
application live {
live on;
record off;
on_publish https://example.com/on_publish;
notify_method post;
}
}
}
設定ファイルのチェックを行うとエラーになります。
$ sudo nginx -t
nginx: [emerg] invalid port in url "https://example.com/on_publish" in /etc/nginx/nginx.conf:95
nginx: configuration file /etc/nginx/nginx.conf test failed
「http://example.com:443/on_publish」という指定にすれば動くかなと思ったのですが、まあそんなわけないですよね。
調べてみると、どうやらsslには対応していないようです。
on_publish url does not support https callback it ?
proxy_pass
参考サイトではnginx_luaを使用しての解決法が提示されていますが、もう少しお手軽に対応したい。
pxory_passでの動作を試してみます。
設定ファイルを編集
$ sudo vi /etc/nginx/sites-available/default
http://localhost/の通信をhttps://example.com/に転送するよう変更します。
server {
...(略)
location / {
proxy_pass https://example.com/;
}
...(略)
}
nginx-rtmpの設定ファイルを編集
$ sudo vi /etc/nginx/nginx.conf
on_publishに「http://localhost/on_publish」を指定
rtmp {
server {
listen 1935;
chunk_size 4096;
access_log /var/log/rtmp_access.log;
application live {
live on;
record off;
on_publish http://localhost/on_publish;
notify_method post;
}
}
}
設定を反映
$ sudo service nginx reload
これで動画配信時にhttps://example.com/on_publishを呼び出し、認証などが行えるようになりました。
【参考URL】
on_publish url does not support https callback it ?
- 関連記事
-
- nginx-rtmp hlsで動画の配信を行う
- ffmpeg mp4ファイルをrtmpでストリーム配信する
- nginx-rtmp on_publishで呼び出すurlにhttps接続を使用する
- nginx-rtmpで動画の転送先を動的に変更する(on_publish)
- nginx-rtmp 動画配信にパスワード認証を設定する(on_publish)
コメント