gpt4 book ai didi

c# - 访问 WPF 视频播放器中的帧

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:00 25 4
gpt4 key购买 nike

使用 WPF 制作的视频播放器获取视频的单独帧速率、遍历视频帧并设置某种帧缓冲区以预加载后续帧的最简单方法是什么?我知道 DirectShow,但它似乎对想要修改视频帧的人更有用。我只想逐帧浏览视频,导航到特定帧,并标准化同时播放的多个视频的帧速率(例如,三个分别为 10 fps、20 fps 和 30 fps 的视频会以每秒 10 帧的速度同时播放)。

最佳答案

在 MSDN 上,frame stepping 的信息隐藏在与 scrubbing1 操作相关的页面底部:

https://msdn.microsoft.com/en-us/library/windows/desktop/ee892370(v=vs.85).aspx

The application can perform frame stepping by setting the playback rate to zero and then passing a PROPVARIANT that is set to VT_EMPTY in the call to IMFMediaSession::Start.

当然这些是 COM 接口(interface) 并且链接正在谈论 Enhanced Video Renderer (EVR) 和 Windows Media Foundation 这几乎不是准备好放入您的 WPF 应用程序。我确实意识到这就是提问者想要的。

所以我想答案是,虽然这是一个相当大的挑战,但可以通过 p/Invoking to DirectShowLib.dll 访问 Media Foundataion 和 EVR 在 WPF 中构建视频.请参阅本页其他地方提到的 WpfMediaKit


[编辑:]更多关于帧步进的信息在这里: https://msdn.microsoft.com/en-us/library/windows/desktop/bb530107(v=vs.85).aspx#implementingframestepping

1:点动控制浏览视频文件

关于c# - 访问 WPF 视频播放器中的帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8966781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com