2016-07-28 699 views
1

我在winforms中使用vlc player。它的工作正常,但问题是它的播放速度更快。
我有以10fps记录的视频。我认为vlcControl以30fps播放,这就是为什么视频播放速度更快。推荐this,但它没有帮助。我找不到像set_play_back_speed函数在vlcControl1下的任何功能。视频
我以为vlcControl会自动找出相应的fps &播放。
如果我从安装在我的Windows PC上的vlc媒体播放器打开相同的视频,它会以适当的速度播放。 任何线索如何解决这个问题?

P.S:如果我打开以29.97fps记录的任何视频,winforms中的vlcControl以适当的速度播放它。在vlc dot net(winforms)中设置播放速度

回答

3

那么,没有功能可以通过Vlc.DotNet将FPS设置为视频,我不确定您是使用WinForms还是WPF应用程序,但是我可以帮助的最好的方法是,如果您想使用转换视频中的速率设置。

它在vlcControl1.rate(这是浮点值默认为1.00)发现,如果你有每秒30帧,并且只想10fps的好,你可以尝试设置:

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

然后将降低视频和音频从30fps转换为10fps(假设1.00 = 30fps)。

+0

!不确定这个!,但默认情况下VideoLAN也启用了视频/音频同步。您可以在开始时禁用VlcMediaPlayerOptions上的所有同步,或者打开常规VLC并禁用同步,然后从VideoLAN播放器所在的相同路径加载libvlc(即使在C#开放播放器之前,也可以使用VideoLAN直接禁用某些功能)码)。 – ITK

+1

感谢您的回答。就像我提到的问题一样,我在winforms中使用。在尝试使用代码播放视频之前,我尝试将设置速率设置为0.33,但速度非常慢,所以我认为vlc以33fps播放是错误的。我猜测它本身是以10fps的速度播放,因为当我将Rate设置为0.9时,它播放的很好(它的播放速度比现场录制的速度还快)。任何其他值会使vlc播放速度更快或更慢。目前我只专注于视频,因此可以稍后检查音频同步。 但如何确定什么fps vlc播放视频? 谢谢 –

+0

嗯,唯一我能想到的是视频卡驱动程序的垂直同步(垂直同步),因为30fps听起来像60Hz监视器的一半,根据显示器刷新率将速度锁定到30,60,120 fps。因此,请尝试不使用“vlcControl1.rate”设置,并尝试在视频卡驱动程序的3D设置中禁用/关闭vsync。 – ITK