ユーザーがビデオ (RTSP) ストリーミング セッションで停止ボタンをクリックしたときに TEARDOWN を送信するのは適切ですか? そうでない場合は、なぜですか??
3 に答える
サーバーに停止を指示する「保証された」方法は他にありません。Quicktime と VLC の両方がそのように行いますが、他のクライアントについてはわかりません。RFC 2326のこのページからわかるように、PAUSE ディレクティブは推奨されていますが、必須ではありません。さらに、それは一時停止するためのものであり、停止するためのものではないので、はい、TEARDOWN が正しい方法です。
method direction object requirement
DESCRIBE C->S P,S recommended
ANNOUNCE C->S, S->C P,S optional
GET_PARAMETER C->S, S->C P,S optional
OPTIONS C->S, S->C P,S required
(S->C: optional)
PAUSE C->S P,S recommended
PLAY C->S P,S required
RECORD C->S P,S optional
REDIRECT S->C P,S optional
SETUP C->S S required
SET_PARAMETER C->S, S->C P,S optional
TEARDOWN C->S P,S required
はい、適切です。
サーバーは、特定のユーザーのセッション状態を維持することになっています。すべてのコマンドが同じ TCP 接続から来ると想定するのではなく、最初の SETUP 応答がクライアントに送信されたときに作成されるセッション ID を提供することになっています。それに続くすべてのリクエストには、セッション ID を含める必要があります (例外があります)。TEARDOWN リクエストを送信することにより、クライアントは、そのユーザーに関連付けられているすべての状態を解放できることをサーバーに示します。
PAUSE は、サーバーにパケットの送信を停止するように指示するだけで、そのセッションに関連付けられた状態を解放するようには指示しません。
メディア セッションを破棄する rtsp クライアント ソフトウェアの動作には、複数の実装があります。Realplayer は TEARDOWN の前に PAUSE を送信します。Quicktime Player と VLC は、PAUSE なしで TEARDOWN を送信します。どちらも許容範囲だと思います。