rtp頭之時間戳記的確定!

來源:互聯網
上載者:User

RTP的頭部格式如下:

版本號碼(V):2位元,用來標誌使用的RTP版本。

填充位(P):1位元,如果該位置位,則該RTP包的尾部就包含附加的填充位元組。

擴充位(X):1位元,如果該位置位的話,RTP固定頭部後面就跟有一個擴充頭部。

CSRC計數器(CC):4位元,含有固定頭部後面跟著的CSRC的數目。

標記位(M):1位元,該位的解釋由配置文檔(Profile)來承擔.

載荷類型(PT):7位元,標識了RTP載荷的類型。

序號(SN):16位元,發送方在每發送完一個RTP包後就將該域的值增加1,接收方可以由該域檢測包的丟失及恢複包序列。序號的初始值是隨機的。

時間戳記:32位元,記錄了該包中資料的第一個位元組的採樣時刻。在一次會話開始時,時間戳記初始化成一個初始值。即使在沒有訊號發送時,時間戳記的數值也要隨時間而不斷地增加(時間在流逝嘛)。時間戳記是去除抖動和實現同步不可缺少的。

同步源標識符(SSRC):32位元,同步源就是指RTP包流的來源。在同一個RTP會話中不能有兩個相同的SSRC值。該標識符是隨機選取的 RFC1889推薦了MD5隨機演算法。

時間戳記單位:時間戳記計算的單位不是秒之類的單位,而是由採樣頻率所代替的單位,這樣做的目的就是為了是時間戳記單位更為精準。比如說一個音訊採樣頻率為8000Hz,那麼我們可以把時間戳記單位設為1 / 8000。

時間戳記增量:相鄰兩個RTP包之間的時間差(以時間戳記單位為基準)。
採樣頻率: 每秒鐘抽取樣本的次數,例如音訊採樣率一般為8000Hz
幀率: 每秒傳輸或者顯示幀數,例如25f/s

再看看RTP時間戳記課本中的定義:

RTP包頭的第2個32Bit即為RTP包的時間戳記,Time Stamp ,佔32位。
時間戳記反映了RTP分組中的資料的第一個位元組的採樣時刻。在一次會話開始時的時間戳記初值也是隨機播放的。即使是沒有訊號發送時,時間戳記的數值也要隨時間不斷的增加。接收端使用時間戳可準確知道應當在什麼時間還原哪一個資料區塊,從而消除傳輸中的抖動。時間戳記還可用來使視頻應用中聲音和映像同步。
在RTP協議中並沒有規定時間戳記的粒度,這取決於有效載荷的類型。因此RTP的時間戳記又稱為媒體時間戳記,以強調這種時間戳記的粒度取決於訊號的類型。例如,對於8kHz採樣的話音訊號,若每隔20ms構成一個資料區塊,則一個資料區塊中包含有160個樣本(0.02×8000=160)。因此每發送一個RTP分組,其時間戳記的值就增加160。

官方的解釋看懂沒?沒看懂?沒關係,我剛開始也沒看懂,那就聽我的解釋吧。
首先,時間戳記就是一個值,用來反映某個資料區塊的產生(採集)時間點的,後採集的資料區塊的時間戳記肯定是大於先採集的資料區塊的。有了這樣一個時間戳記,就可以標記資料區塊的先後順序。
第二,在即時資料流傳輸中,資料擷取後立刻傳遞到RTP模組進行發送,那麼,其實,資料區塊的採集時間戳記就直接作為RTP包的時間戳記。
第三,如果用RTP來傳輸固定的檔案,則這個時間戳記就是讀檔案的時間點,依次遞增。這個不再我們當前的討論範圍內,暫時不考慮。
第四,時間戳記的單位採用的是採樣頻率的倒數,例如採樣頻率為8000Hz時,時間戳記的單位為1 / 8000 ,在Jrtplib庫中,有設定時間戳記單位的函數介面,而ORTP庫中根據負載類型直接給定了時間戳記的單位(音頻負載1/8000,視頻負載1/90000)
第五,時間戳記增量是指兩個RTP包之間的時間間隔,詳細點說,就是發送第二個RTP包相距發送第一個RTP包時的時間間隔(單位是時間戳記單位)。
如果採樣頻率為90000Hz,則由上面討論可知,時間戳記單位為1/90000,我們就假設1s鐘被劃分了90000個時間塊,那麼,如果每秒發送25幀,那麼,每一個幀的發送佔多少個時間塊呢?當然是 90000/25 = 3600。因此,我們根據定義“時間戳記增量是發送第二個RTP包相距發送第一個RTP包時的時間間隔”,故時間戳記增量應該為3600。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.