我正在使用DirectX.Capture库保存到AVI fomr网络摄像头。我需要将视频保存为50fps或更高,但当我使用以下内容时:
capture.FrameRate = 59.994; FrameRate根本不会改变。它在那条线之前有30,超过那条线,它保持它的30。我尝试了其他值,即使是20和10,也没有什么变化。
为了能够更改该值,我还应该做些什么?或者它是关于我的硬件的,我希望它能在其他机器上工作?
请帮帮我,我不知道该怎么办。
谢谢
发布于 2013-03-06 18:15:02
源素材(视频、应用程序/等)可能仅以30fps更新,因为这是视频编解码器或应用程序的行为方式,或者因为您在目标应用程序中启用了vsync (检查vsync设置,如果存在硬件加速,则可能会被视频卡驱动程序强制执行)。DirectX.Capture的行为可能是从源代码钳制到最高可用的帧率。
如果你真的想让视频达到50fps,就以它的原生速率(30/29.97)捕捉它,然后使用其他软件对视频重新采样(请注意,这将是一个破坏性的操作,因为50不是30的干净倍数)。这与DX捕获在50fps时所做的没有什么不同(即使它是无意义的,因为源素材处于较低的帧率)。仅供参考大多数视频文件的帧率在25到30 FPS之间。
https://stackoverflow.com/questions/15243489
复制相似问题