关于live555/rtsp server+HI3559采集直播,只能观看一会的问题
请教:我在用双线程+队列的方式从HI3559采集H264视频然后给live555 server 在用VLC观看 只能播放几分钟,客户端就主动断开连接了
1.怀疑是和时间戳有关,于是修改时间戳(不知道修改的位置对不对求指教: void setPresentationTime() {
unsigned long _ulTimeStamP_dest_1 = GetH264TimeStamp(); //zy 20181121
//fPresentationTime = fNextPresentationTime;
fPresentationTime.tv_sec =_ulTimeStamP_dest_1 /1000;
fPresentationTime.tv_usec =_ulTimeStamP_dest_1 * 1000;
printf("time==[%d s] [%lld us]\n",fPresentationTime.tv_sec,fPresentationTime.tv_usec);
}这个_ulTimeStamP_dest_1 是我从HI3559采集过来的时间戳ms单位 ,因为我看时间戳计算是在这unsigned H264or5VideoStreamParser::parse() 因为我不知道采集过来的时间戳(_ulTimeStamP_dest_1 )是不是能直接赋值给RTSP 所以我百度看到H264流 RTP计算时间戳需要 *9/10 所以我也这样用了下 不知道对不对
2.按照步骤一的方法修改了时间戳 但是还是只能看几分钟 于是我修改了下帧率 从25FPS改成30了 现在客户端不主动断开了 但是 播放很卡 不同步丢帧的问题
请问: 大致可以推测因为采集过来的时间戳or帧率 和RTp 发送的时间戳 和帧率还是 不同步 导致的其他问题吧?
请问哪位遇到过 求分享下 或者给解说下 非常感谢