首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取视频片段在C#中的帧率

获取视频片段在C#中的帧率
EN

Stack Overflow用户
提问于 2011-11-09 16:30:56
回答 2查看 3.5K关注 0票数 2

如何在C#中获取视频剪辑的帧率?视频剪辑是WMV,MP4,MPG格式。

EN

回答 2

Stack Overflow用户

发布于 2011-11-09 16:47:57

您可以使用IWMPNetwork::frameRate属性来获取视频的帧率(需要将Interop.WMPLib.dll.dll添加到您的项目中)。

示例代码(取自上面的链接):

代码语言:javascript
复制
// Add a delegate for the PlayStateChange event.
player.PlayStateChange += new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler(player_PlayStateChange);

// Create an event handler for the PlayStateChange event.
private void player_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
    // Display the frameRate when the player is playing. 
    switch (e.newState)
    {
        case 3:  // Play State = WMPLib.WMPPlayState.wmppsPlaying = 3
            if (player.network.frameRate != 0)
            {
                frameRateLabel.Text = "Current Frame Rate: " + player.network.frameRate + " K bits/second";
            }
            break;

        default:
            break;
    }
}
票数 1
EN

Stack Overflow用户

发布于 2019-09-06 17:31:54

我已经使用了描述here的代码来做到这一点,并给了我很大的帮助。

实际上,每次打印新帧时,我都会调用下面的函数:

代码语言:javascript
复制
private void FPS_Counter()
{
    _framesRendered++;
    if ((DateTime.Now - _lastTime).TotalSeconds >= 1)
    {
       Log.Debug("FPS: one second has elapsed (fps: " + _fps + ")");
       _fps = _framesRendered;
       _framesRendered = 0;
       _lastTime = DateTime.Now;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8062152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档