時間戳和時間尺度


這里將有關時間戳的幾個概念介紹如下:

采樣頻率 是每秒鍾抽取聲波幅度樣本的次數: 8000
幀率        是每秒顯示幀數: 20

時間戳單位:時間戳計算的單位不為秒之類的單位,而是由采樣頻率所代替的單位,這樣做的目的就是為了是時間戳單位更為精准。比如說一個音頻的采樣頻率為8000HZ,那么我們可以把時間戳單位設為1/8000。
時間戳增量:相鄰兩個RTP包之間的時間差(以時間戳單位為基准)。

如何設定時間戳之間的增量呢?
按照剛才時間戳單位來看,1秒鍾按照時間戳單位就是8000,那么一秒鍾如果可以播放20幀,也就是發送20幀(幀率),那么可以求出相鄰兩幀之間的時間差,也就是時間戳增量,那么顯而易見是用8000/20,那么這個時間戳增量就為400。

音頻如果采用頻率是8000HZ 那么時間戳單位就是1/8000 ,時間戳單位就是1/8000 這個1 就是指1s,說白了就是每個聲波幅度樣本的時間間隔是 1/8000s。

幀率是 20那么時間戳增量就是 8000/20=400(現在每秒采樣的聲音樣本數是8000個,每秒播放20幀那么每幀包含的聲音樣本就是400個)時間戳增量就是400,如果換做系統時間 就是 400*(1/8000)  每幀間隔1/20s

網上大多數列舉的一個例子是:例如MPEG,每幀20ms,采樣頻率8000Hz,設定時間戳單位1/8000,而每個包之間就是160的增量
這里又該如何理解呢?可以輕易地看出增量是直接8000與20ms相乘的結果,我們可以知道這里兩幀之間的時間為20ms,也就是0.02s,這個單位是以秒來衡量的,那么我們要用時間戳單位來表示那么就是8000*0.02=160.所以時間戳增量為160。

還有一點為什么一般都用90000作為視頻采樣頻率呢?

90k是用於視頻同步的時間尺度(TimeScale),就是每秒90k個時鍾tick。為什么采用90k呢?目前視頻的幀速率主要有25fps、29.97fps、30fps等,而90k剛好是它們的倍數,所以就采用了90k。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM