【问题标题】:set playback speed in vlc dot net (winforms)在 vlc dot net (winforms) 中设置播放速度
【发布时间】:2016-07-28 04:23:08
【问题描述】:

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

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

【问题讨论】:

    标签: c# winforms video media-player libvlc


    【解决方案1】:

    嗯,没有通过 Vlc.DotNet 将 FPS 设置为视频的功能,我不确定您使用的是 WinForms 还是 WPF 应用程序,但我能提供的最好帮助可能是,如果您会像在 transpone 视频中那样使用速率设置进行播放。

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

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

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

    【讨论】:

    • !不确定!但默认情况下,VideoLAN 也启用了视频/音频同步。您可以在开始时禁用 VlcMediaPlayerOptions 的所有同步,或者通过打开常规 VLC 并禁用同步,然后从 VideoLAN 播放器所在的同一路径加载 libvlc(即使在 C# 打开播放器之前,也可以使用 VideoLAN 直接禁用某些功能代码)。
    • 感谢您的回答。就像我在问题中提到的那样,我在winforms中使用。在用代码播放视频之前,我尝试将速率设置为 0.33,它非常慢,所以我假设 vlc 以 33fps 播放是错误的。我猜它本身以 10fps 的速度播放,因为当我将 Rate 设置为 0.9 时,它播放得很好(它的播放速度并不比现场录音快)。任何其他值都会使 vlc 播放得更快或更慢。目前我只关注视频,所以稍后可以检查音频同步。但是如何确定 fps vlc 正在播放视频?谢谢
    • 好吧,我唯一能想到的是视频卡驱动程序的 vsync(垂直同步),因为 30 fps 听起来像是 60hz 显示器的一半,根据显示器刷新率将速度锁定为 30,60,120 fps。因此,请尝试不使用“vlcControl1.rate”设置,并尝试在显卡驱动程序的 3D 设置中禁用/关闭 vsync。
    • hmm,花了一些时间才找到,但这里似乎有一个强制 FPS 的选项:":screen-fps=30.000000" 您可以将其设置为 VlcMediaPlayerOptions。前任。 ":screen-fps=10.000000" 我不确定它的效果如何,因为我的测试失败仍然是准确的。 (适用于 VLC 2.#)。
    • 这个选项可能只在捕获设备时可用,但由于它与媒体播放相同,因此认为它应该可以工作。我还没能测试它今天将测试它。但是,我认为,如果您从 GPU 或通过播放器强制关闭 vsync,则仅此一项应该可以工作,因为这只会迫使 10fps 媒体以 30fps 播放,顺便说一句,您应该检查诸如 fraps、Rivatuner 或 MSI Afterburner 之类的东西,以确定什么是播放实际FPS是。 (很忙很抱歉回答时间长)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2011-08-18
    • 2014-01-19
    • 2018-01-26
    相关资源
    最近更新 更多