在 Windows 10 上的 VLC 中,我无法从 USB 视频捕获设备(HDMI 源)以合理的帧速率观看 1080p 视频。
当我使用 OBS Studio 时,一切都很正常:视频以全分辨率播放,以 60 FPS 的速度运行,没有明显的延迟。有些画面撕裂,但没什么大不了的。
但是,当我使用 VLC 时——以及当我尝试使用某些安全摄像头 DVR 软件(iSpy,我刚刚下载进行测试)时——VLC 默认为 800x600(延迟较大),并将其强制为 16:9 1920x1080 时,以大约 10 FPS 的速度播放,延迟大约为半秒。
我使用 VLC 查看捕获设备视频流的方式是:
- 媒体 → 打开捕获设备...
- 选择“DirectShow”
- 选择 USB 捕获设备来捕获视频和音频;输入 1920x1080 分辨率并强制将纵横比设置为 16:9(在高级设置中)。
我需要调整一些其他设置吗?我不明白 OBS Studio 和 VLC(默认情况下)以及其他软件没有做什么。
答案1
我在使用 vlc 播放器时也遇到了类似的问题,但不是 fps 播放器。我的问题是分辨率很差,即使我将“视频大小”选项设置为“1920x1080”并将“图片纵横比 n:m”设置为 16:9。我认为它们都与“性能”有关。在 OBS 工作室中,播放 1080P 视频没有问题,如下所示: VLC 播放器和 OBS工作室
在我改变了一些选项之后,我的 vlc 播放器的分辨率明显提高了。尝试:
- 打开 VLC 播放器
- 工具
- 优先
- 点击底部的“全部”组合框
- 左侧树中的“视频”
- 输出模块
- 将 ComboBox 的值从“自动”更改为“Direct3D9 视频输出”
- 点击“保存”按钮
- 重启你的 vlc 播放器
- 单击媒体->打开捕获设备->选中“显示更多选项”并将缓存从 300 毫秒设置为 0 毫秒。
- 像往常一样设置视频和音频源以及视频大小。然后尝试播放。
PS:我的vlc播放器版本是3.0.18,GPU是NVidia 1660S。
答案2
对于使用 Linux 遇到此问题的任何人来说,TLDR 不要使用OpenGL
输出。
我在 Linux 上也遇到了同样的问题:
- VLC 视频源看起来像素化
- VLC 快照图像干净
- OBS v4l2 捕获干净
所以我知道这不是采集卡的问题。
事实证明,默认OpenGL
输出有问题。我仍然使用 Xorg,所以我只需将输出更改为XVideo output (XCB)
并重新启动 VLC。问题已解决。
我还没有测试过 Wayland,但我想你会选择Wayland shared memory video output
它,其他一切都是一样的。
答案3
如果我们谈论的是价格非常便宜的“HDMI 视频捕获”设备或具有类似通用名称的设备。我的设备被标识为:
USB\VID_534D&PID_2109&REV_2100&MI_00
规格为:最大输出 1920x1080 60fps,最大输入 3840x2160 30fps。
我发现 VLC 的设置有些可行,但我建议使用 OBS。VLC 能够让流媒体播放得相当流畅,但几分钟后又开始延迟。OBS 配置更简单,长时间播放也很流畅。
关键部分是 MJPG 色度,因为 VLC 默认将其设置为 YUY2。正如本论坛,这些设备可能只是假的 USB 3,并且我们受到 USB 2 吞吐量的限制,因此我们需要一些压缩。
回到 VLC,以下是对我来说最适合的设置:
:dshow大小=1024:768:dshow纵横比=4:3:dshow色度=MJPG:dshow fps=59.944:dshow音频通道=2:dshow音频采样率=44100:dshow音频比特数/采样=16
您必须自行调整,因为我的视频源设备分辨率为 1024x768,比例为 4:3,帧率为 59.944 fps。音频设置应该没问题,大多数情况下都使用默认设置。
获得最佳设置的最简单方法可能是打开捕获设备,选择视频和音频设备。单击“显示更多选项”,“编辑选项”现在包含设备名称,您还可以调整缓存(0 即可)。然后,粘贴之前调整的设置。
您还可以为此创建一个快捷方式:
“C:\Program Files (x86)\VideoLAN\VLC\vlc.exe” dshow://:dshow-vdev="USB 视频":dshow-adev="Cyfrowy interfejs 音频 (USB 数字音频)":dshow-size=1024:768:dshow-aspect-ratio=4:3:dshow-chroma=MJPG:dshow-fps=59.944