当用户单击视频 (RTSP) 流会话中的停止按钮时发送 TEARDOWN 是否合适?如果不是那为什么?
Alice_I_W
问问题
3429 次
3 回答
1
我认为是的,没有其他“保证”的方式来告诉服务器停止。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
于 2009-01-30T09:43:59.747 回答
1
是的,这是合适的。
服务器应该为特定用户维护一个会话状态,它们不应该假设所有命令都来自同一个 TCP 连接,而是提供一个在第一个 SETUP 回复发送到客户端时创建的 sessionid。其后的所有请求都应包含 sessionid(有例外)。通过发送 TEARDOWN 请求,客户端向服务器指示它可以释放与该用户关联的所有状态。
PAUSE 只会指示服务器停止发送数据包,而不是释放与该会话关联的状态。
于 2010-03-20T04:10:45.967 回答
0
rtsp 客户端软件拆除媒体会话的行为有多种实现方式。Realplayer 将在 TEARDOWN 之前发送 PAUSE。Quicktime Player 和 VLC 将在没有暂停的情况下发送 TEARDOWN。我觉得两者都可以接受。
于 2012-01-13T02:55:57.003 回答