C# 在vlc点网(winforms)中设置播放速度

C# 在vlc点网(winforms)中设置播放速度,c#,winforms,video,media-player,libvlc,C#,Winforms,Video,Media Player,Libvlc,我正在winforms中使用。它工作正常,但问题是它的播放速度更快。我的视频录制速度为10fps。我认为vlcControl的播放速度是30fps,这就是视频播放速度更快的原因。提到了,但没用。我在vlcControl1下找不到任何类似set\u play\u back\u speed功能的功能。视频我以为vlcControl会自动计算fps并相应地播放。如果我从安装在windows pc上的vlc media player打开相同的视频,它会以适当的速率播放。 有什么线索可以解决这个问题吗?

我正在winforms中使用。它工作正常,但问题是它的播放速度更快。
我的视频录制速度为10fps。我认为vlcControl的播放速度是30fps,这就是视频播放速度更快的原因。提到了,但没用。我在vlcControl1下找不到任何类似
set\u play\u back\u speed
功能的功能。视频
我以为vlcControl会自动计算fps并相应地播放。
如果我从安装在windows pc上的vlc media player打开相同的视频,它会以适当的速率播放。 有什么线索可以解决这个问题吗?


注:如果我打开任何以29.97fps速度录制的视频,winforms中的vlcControl会以适当的速度播放它。

嗯,没有通过Vlc.DotNet将FPS设置为视频的功能,我不确定您是否使用winforms或WPF应用程序,但我能提供的最好帮助可能是,如果您使用transpone视频中的速率设置

在vlcControl1.rate(浮点值默认值为1.00)下可以找到它,如果您有30fps,并且只需要10fps,您可以尝试设置:

vlcControl1.rate = (int)(33 / 100);

这将使视频和音频转置从30fps降低到10fps(假设1.00=30fps)。

!对此我不太确定!,但默认情况下,VideoLAN还启用了视频/音频同步。您可以在开始时禁用VLCMediaplayeropions上的所有同步,或者通过打开常规VLC并禁用同步,然后从VideoLAN播放器所在的同一路径加载libvlc(甚至在C#code上打开播放器之前,可以使用VideoLAN直接禁用某些功能)。谢谢您的回答。正如我在问题中提到的,我在winforms中使用。在代码中播放视频之前,我尝试将速率设置为0.33,速度非常慢,所以我认为vlc以33 fps的速度播放是错误的。我猜它本身就是以10fps的速度播放的,因为当我将速率设置为0.9时,它播放得很好(它的播放速度并不比现场录音快)。任何其他值都会使vlc播放得更快或更慢。目前我只关注视频,所以稍后可以检查音频同步。但如何确定甚么fps vlc正在播放视频?谢天谢地,我唯一能想到的是视频卡驱动程序的垂直同步(vsync),因为30 fps听起来像是60 Hz显示器的一半,根据显示器刷新率将速度锁定在30,60120 fps。因此,尝试不使用“vlcControl1.rate”设置,并尝试禁用/关闭视频卡驱动程序的3D设置中的vsync.hmm,找到了一些,但这里有一个强制FPS的选项:“:screen FPS=30.000000”您可以将其设置为VLCMediaplayeropions。例如:“:screen fps=10.000000”我不确定在我测试时它的工作情况如何,但仍然不准确。(适用于VLC 2.#)。这可能是因为此选项仅在捕获设备时可用,但因为它与媒体播放相同,所以我认为它应该可以工作。我还没能测试它,今天我会测试的。然而,我认为,如果你从GPU上强制vsync关闭,或者通过播放器,这应该单独起作用,因为这是唯一能迫使10fps媒体以30fps的速度播放的东西,顺便说一句,你应该检查fraps、Rivatuner或MSI加力器,以确定实际播放的FPS是什么。(抱歉回答时间太长,我一直很忙)