boonya 2018-02-28 07:07 采纳率: 66.7%
浏览 2236
已采纳

已知视屏的加密时的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);
            }

        }
  • 写回答

2条回答 默认 最新

  • 键盘舞者113 博客专家认证 2018-02-28 07:24
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • boonya 博客专家认证 2018-03-22 01:55
    关注

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

    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 12月15日

悬赏问题

  • ¥15 如何在EXCEL某单元格中查找是否存在另一列中的内容。
  • ¥50 非对称加密(相关搜索:密码学)
  • ¥15 关于非编程寻迹小车的分析
  • ¥15 java导出EXCEL这里已经执行成功了,但是流浪器没有下载
  • ¥15 帮我把代码改的能正常运行就行
  • ¥50 有限元修正、模型修正、最小二乘法,详细步骤
  • ¥15 用plc编写梯形程序
  • ¥15 关于#物联网#的问题:新大陆AIOT中,按照手册教程进行添加,设置完成后网关一直不上线,显示Never这是网络服务的信息
  • ¥15 这个要用一维热方程但是我不知道怎么运用这个公式
  • ¥15 OpenFOAM多孔介质传热模型建模