0

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

 capture.FrameRate = 59.994; 

FrameRate 完全没有变化。它在那条线之前有 30 条,通过这条线它保持 30 条。我尝试了其他值,甚至是 20 和 10,但没有任何变化。

我还应该怎么做才能改变那个值?还是与我的硬件有关,我希望它可以在其他机器上运行?

请帮帮我,我不知道该怎么办。

谢谢

4

1 回答 1

0

源材料(视频、应用程序/等)可能仅以 30fps 更新,可能是因为视频编解码器或应用程序的行为方式如此,或者因为您在目标应用程序中打开了 vsync(检查 vsync 设置,它可能如果有硬件加速,则被显卡驱动程序强制)。DirectX.Capture 的行为可能是从源中钳制到最高可用帧率。

如果您真的想将视频设为 50fps,请以其原始速率 (30/29.97) 捕获它,然后使用其他一些软件重新采样视频(请注意,这将是一个破坏性操作,因为 50 不是 30 的干净倍数)。如果您可以将其强制为 50 fps ,这与 DX 捕获将执行的操作没有什么不同(即使由于源素材的帧速率较低而导致其毫无意义)。仅供参考,大多数视频文件在 25 到 30 FPS 之间。

于 2013-03-06T10:15:01.947 回答