This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM8168 DVRRDK4.0 从A8读取本地文件解码,送入数据的速率如何控制?

A8端读取一个30帧的264编码的文件,将数据一帧一帧送入解码,我使用休眠的方式约每33ms送入一帧,但是软件对于休眠时间控制不精确,导致1秒并没有达到送入30帧, 最后重新编码的视频就会放慢

  • 你好;

            你这样延时33ms,是每一帧相对时间处理,就会有累计误差;你可以通过参考时间戳往解码器送数据,就不会有累计误差了。

  • ternence hsu 

    你好,如何参考时间戳才能均匀的送入解码器? 需要使用定时的都会有误差

  • 你好;

            记住第一帧的解码时间戳,以后每隔33ms往解码器中送入一帧,判断当前时间是否到了解码的时间来送数据帧到解码器。

            根据时间来送数据。这样送数据时间对了,帧率也就对了

  • ternence hsu

    你好,目前问题就在于如何做到每隔33ms往解码器送一帧,因为我试过使用了几种定时方法都不能满足,解码时间知道,但是判断当前时间这一步骤的实时性需要控制。 

  • 不用在意这个33ms的控制,而且你最终没有时间累积;平均帧率是30帧就可以;如果你单纯的延时肯定是做不到的。

    单纯看一帧是没有意义的。

  •  您好 , 我也遇到了这个问题,但是不是每隔多少时间,我从A8读文件送到decLink解码,我不知道怎么控制速率,我现在速度完全控制不住,我参考了demo_vdec_vdis.c 但是这个demo里也没有控制速率,而是通过最后显示的swMsPrm.maxInputQueLen参数来“缓解”这个问题。我现在加了一个deillLink,

    这个办法也不管用了,还有我看到文档介绍,很多Link都可以控制帧率,但是我配置了参数 完全起不到效果,求大神解答!!谢谢