play命令概述
play命令要求在setup命令之後進行,此命令處理過程中就開始傳送資料了,在處理play命令過程中還建立了rtcpinstance例項。
對於play命令請求中的url有以下幾種情況(與pause、teardown、get_parameter、set_parameter處理是一樣的):
1)非聚合,如rtsp:作為stream name, urlsuffix作為subsession的trackid
2)非聚合的情況下,才能根據trackid找到subsession
3)聚合,如
rtsp: 將urlsuffix作為stream name,而urlpresuffix忽略
rtsp: 只存在urlpresuffix,並將其作為stream name, 這應該是最常見的情況
4)聚合,如rtsp: 將urlpresuffix/urlsuffix整個作為stream name
我們可以對session中的subsession進行單獨控制(這需要提供subsession的trackid), 也可以對整個session進行控制(這種情況應該是最常見的吧)。
貼乙個setup訊息例項:
play rtsp: rtsp/1.0
cseq: 5
session: 263bd44b
range: npt=0.000-
user-agent: libvlc/1.1.0 (live555 streaming media v2010.03.16)
response: rtsp/1.0 200 ok
cseq: 5
date: wed, nov 30 2011 06:55:07 gmt
range: npt=0.000-
session: 263bd44b
rtp-info: url=rtsp:track1;seq=38851;rtptime=1434098600,ur
l=rtsp:track2;seq=27752;rtptime=3595585826
**分析的過程比較煩瑣,就先把總結性的東西放到最前面了
live555原始碼分析 live555大致流程
今天大致分析了下live555的流程,以h264為例子進行的分析.從連線到傳送rtp rtcp資料報。首先分析呢,不能太關注細節,先整體再區域性。在分析的過程中,設計到live555自己封裝的乙個高階類 比如迭代器,雜湊表,而且這2個類在live555中運用的範圍還非常的廣,但是無不例外都是用鍊錶進...
live555原始碼初步解析(一)
最近因專案需要,要學習live555這個開源平台。live555是用c 實現的,對於該平台的介紹網上有很多文章,以下是個人在讀它原始碼時的記錄,也是乙個初步的理解,和大家一起分享一下。有錯誤,或者不足之處請大家指出。basicusageenvironment庫 a basichashtable.cp...
live555原始碼學習第二節
live555 原始碼學習第二節 usageenvironment 類學習 usageenvironment 代表了整個系統的執行環境,主要包括錯誤的輸入和輸出。其預設實現主要針對控制台進行輸入和輸出。該類中還儲存了乙個非常重要的資料結構 tasksecheduler 類的引用,這兩個類共同構建了整...