關於rtsp的時間戳問題


這里主要關注的rtp包的時間戳,在rtsp中,播放器的1S鍾的定義是和媒體的采樣率有關的。

例如視頻的采樣率是90K,那么最小時間粒度(單位)是1/90000秒,再轉換成ms就是 1/90毫秒,這個就是rtsp中的最小時間單位。

所以設備端采集的視頻的時間要經過一個轉換,標准的播放器才能播放

還是以90K的視頻為例,設備采集到的單位是按時間tv_sec,tv_usec存儲。

/* timestamp convert
    t(rtsp時間戳,單位ms) =  t(采集時間戳,單位秒)*90000
    */
    unsigned int tv_sec, tv_usec, pts;
    tv_sec = ts / 1000;
    tv_usec = (ts % 1000) * 1000;
    pts = tv_sec * 90000 + tv_usec *9 / 100;

 

對應的如果是8K采樣率的音頻,則轉化公式是:

    /* timestamp convert
    t(rtsp時間戳,單位ms) =  t(采集時間戳,單位秒)*8000
    */
    tv_sec = ts / 1000;
    tv_usec = (ts % 1000) * 1000;
    pts = tv_sec * 8000 + tv_usec *8/1000;

 


免責聲明!

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



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