在c#中获取视频剪辑的帧率
本文关键字:帧率 视频 获取 | 更新日期: 2023-09-27 18:13:50
如何在c#中获得视频剪辑的帧率?视频剪辑为WMV、MP4、MPG格式。
您可以使用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;
}
}
我已经使用了这里描述的代码来做这件事,并帮助了我很多。
实际上,每次打印一个新框架时,我都会调用以下函数:
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;
}
}