关于rtsp的时间戳问题

例如视频的采样率是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;

例如视频的采样率是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;
经验分享 程序员 微信小程序 职场和发展