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);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 12月15日

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误