![ストリームを停止および追跡する nginx HLS vod 機能](https://rvso.com/image/1476063/%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E3%82%92%E5%81%9C%E6%AD%A2%E3%81%8A%E3%82%88%E3%81%B3%E8%BF%BD%E8%B7%A1%E3%81%99%E3%82%8B%20nginx%20HLS%20vod%20%E6%A9%9F%E8%83%BD.png)
VOD をストリーミングできるようにする必要がありますが、ビデオは 1 分ごとに追跡されるため、ユーザーの視聴時間に関する情報を常に維持し、ユーザーが視聴時間を消費したらストリーミングを終了する必要があります。
私はこれを Wowza で実装しましたが、今は nginx でこれを行う方法を探しています。最大の問題は、nginx が要求されたビデオ チャンクに関する情報を PHP (または他のスクリプト) に転送し、現在の要求を許可するかどうかを決定できるかどうかがわからないことです。
それが本当に可能かどうか、もし可能であれば正しい方向を指し示してくれる人がいたら嬉しいです。
答え1
オープンソースを使用して、VOD機能を備えたHLSストリーミングをセットアップすることが可能です。nginx-rtmp-モジュール。
Rtmpモジュールには通知フック。
例えば:
再生中
HTTP 再生コールバックを設定します。クライアントが再生コマンドを発行するたびに、HTTP 要求が非同期的に発行され、結果コードが返されるまでコマンド処理は中断されます。その後、HTTP 結果コードが分析されます。
- HTTP 2xx コードは RTMP セッションを継続します
- HTTP 3xx は、Location HTTP 応答ヘッダーから名前が取得される別のストリームに RTMP をリダイレクトします。新しいストリーム名が rtmp:// で始まる場合、代わりにリモート リレーが作成されます。リレーでは、ドメイン名の代わりに IP アドレスを指定する必要があり、1.3.10 以降のバージョンの nginx でのみ機能します。notify_relay_redirect も参照してください。
- そうでない場合、RTMP接続は切断されます
Nginxには商業的提供最後に聞いたのは、1シートあたり年間1500ドルだった。その値段ではすべき必要なことを行いますが、私はそれに精通していません。