已知视屏的加密时的pts时间戳,怎么计算播放时的pts?

视频播放不正确,速度太快,说明pts有问题,网上找过计算的公式感觉套用不起来,播放还是不对。

有音视频开发的高手请指点下吧,万分感激!!!!

 // 委托获取Packet数据
        private unsafe void avPacketTodo(JT1078Codec codec, JTRTHead head, AVPacket* pkt)
        {
            // pts需要计算,公式:第n帧的pts = n * ((1 / timbase)/ fps)

            /*
             * 在解码视频流的时候对每一个视频帧都会有一个时间戳pts(显示时间戳)
             * 得到这个pts的值,并记下最开始的一个pts值(pts_00)
             *以后画面显示的时间就可以用当前播放的帧的时间戳(pts_now -pts_00)/90000获得了,单位是秒
             */
            if (pts_00 == 0)
            {
                pts_00 = (ulong)head.RTTimeSpan;
                tomp4.WriteFrame(pkt,0);
            }
            else
            {
                ulong pts = (ulong)(head.RTTimeSpan- pts_00) / 90000*1000;
                tomp4.WriteFrame(pkt, (long)pts);
            }

        }

enc_pkt.pts = count * (video_st->time_base.den) / ((video_st->time_base.num) * fps);

long pts_1 = packet->pts * 1000 / (video_stream->time_base.den / video_stream->time_base.num);