PushSource是SDK中一个Source Filter的例子,里面以FPS_5的帧率抓取桌面的截图,然后配合Avi Mux Filter和File Writer Filter保存成AVI文件,默认情况下是全屏,而且保存之后的文件也正常,情况是:
我修改Source Filter,并且改变了截屏的区域,比如大小定义为400*300,之后再保存AVI文件的时候,文件的时间轴就会出问题,若程序运行了10S,则生成的AVI在一分半钟左右,请问还需要修改哪些东西才能让时间正常?
FillBuffer函数里面时间戳是这样写的:
- C/C++ code
REFERENCE_TIME rtStart = m_iFrameNumber * m_rtFrameLength; REFERENCE_TIME rtStop = rtStart + m_rtFrameLength; pSample->SetTime(&rtStart, &rtStop); m_iFrameNumber++; // Set TRUE on every sample for uncompressed frames pSample->SetSyncPoint(TRUE);
其中,m_rtFrameLength等于(10 ^ 7)/5, 这都是没有改动过的。
------解决方案--------------------------------------------------------
如果仅改变大小应该不会影响输出的侦率。
你是否包括了audio?
你是如何修改大小的?