如何在C#中获取视频剪辑的帧率?视频剪辑是WMV,MP4,MPG格式。
发布于 2011-11-09 16:47:57
您可以使用IWMPNetwork::frameRate属性来获取视频的帧率(需要将Interop.WMPLib.dll.dll添加到您的项目中)。
示例代码(取自上面的链接):
// 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;
}
}发布于 2019-09-06 17:31:54
我已经使用了描述here的代码来做到这一点,并给了我很大的帮助。
实际上,每次打印新帧时,我都会调用下面的函数:
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;
}
}https://stackoverflow.com/questions/8062152
复制相似问题