RTP視頻傳輸播放延時(時間戳)

http://blog.csdn.net/ljz9425/article/details/7627949

視頻傳輸採用RTP,實時傳輸視頻,服務器端使用vlc播放,剛開始有3秒延時,播放時間越長延時越長,5分鐘後竟達到10秒以後,分析代碼,可能是時間戳造成,原時間代碼部分:

timestamp_increse+=(unsigned int)(90000.0 / framerate); //framerate爲幀率

 

網絡上有人提出時間戳改爲如下:

struct timeval tv;
gettimeofday(&tv , NULL);
timestamp_increse += (uint)((2.0*90000*tv.tv_usec + 1000000.0)/2000000);

 

但問題依舊

 

經測試時間戳採用設備時間,VLC播放基本正常,播放1小時後延時基本爲3秒,代碼如下:

struct timeval tv;
gettimeofday(&tv , NULL);
timestamp_increse = (uint)(90000.0 / (1000.0 / ((tv.tv_sec - tv_pre.tv_sec) * 1000.0 + (tv.tv_usec - tv_pre.tv_usec) / 1000.0)));

memcpy(&tv_pre, &tv, sizeof(tv_pre));

 

 

希望對遇到此問題的朋友有所幫助!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章