DirectX.Capture FrameRates

时间:2013-03-06 09:29:57

标签: directx capture frame-rate

我正在使用DirectX.Capture库保存到AVI fomr网络摄像头。我需要将视频保存为50fps或更高,但是当我使用它时:

 capture.FrameRate = 59.994; 

FrameRate根本不会改变。在该行之前有30个并且通过该行它保持30个。我尝试了其他值,甚至是20和10,并且没有任何变化。

我还能做什么呢?我能够改变这个价值吗?或者它是关于我的硬件的东西,我希望它可以在其他机器上工作?

请帮助我,我不知道该怎么做。

感谢名单

1 个答案:

答案 0 :(得分:0)

源材料(视频,应用/等)可能只是以30fps更新,或者是因为这是视频编解码器或应用的行为方式,或者是因为您在目标应用中启用了vsync(检查vsync设置) ,如果有硬件加速,它可能会被视频卡驱动程序强迫)。 DirectX.Capture的行为可能会限制来自源的最高可用帧率。

如果确实希望将视频设为50fps,请以原始速率(30 / 29.97)捕获它,然后使用其他软件对视频进行重新采样(请注意,这将是一次破坏性操作50不是30)的干净倍数。如果你可以以50fps强制它(即使由于源材料处于较低的帧速率而无意义),这与DX捕获会有什么不同。仅供参考,大多数视频文件介于25到30 FPS之间。