这花了我很长时间才弄清楚,所以为了帮助任何人处理这些问题,我想发布解决方案。但首先,问题是:
我买了一个便宜的 HDMI->USB 适配器,并将我的 PS3 连接为视频源。在
vlc
上,图像看起来很清晰,但我听不到声音,而且视频真的很不稳定。检查“信息”部分中的编解码器选项卡,我看到我以 5 fps 的速度获得 1080p。我以为我的加密狗有缺陷,但决定检查其他应用程序。 tvtime
/xawtv
给了我很好的帧速率,但分辨率低,我无法更改,cheese
允许我设置所有选项,并且我获得了良好的帧速率和良好的分辨率(但没有声音),并且然后我终于尝试了obs
,这给了我一个完美的结果。很明显,加密狗没问题,问题出在 vlc
。
请参阅下面我的答案,了解所有这些问题(以及更多问题!)的解决方案
通过大量研究和实验,我发现
vlc
中的视频断断续续的原因是因为它使用了chroma
的默认“YUV2
”,如果我没记错的话,它是未压缩的。 (您可以通过运行以下命令来检查网络摄像头/加密狗的功能:v4l2-ctl --list-formats-ext -d /dev/video0
,其中 /dev/video0 是您的设备)
克服这个问题的正确设置是
mjpg
。然而,这会导致大量错误:
[mjpeg @ 0x7f4e0002fcc0] No JPEG data found in image
这是由于默认分辨率和帧速率(1080p@60fps)压倒了我猜是 mjpeg 解码器的事实造成的。将其设置为 720p,或将帧速率降低到 30fps 可防止出现错误。
接下来,声音消失了,这是因为我正在使用
pulseaudio
并且 vlc 无法确定要使用哪个源。
我通过运行找到了脉冲源:
pactl list short sources
产生:
alsa_input.usb-MACROSILICON_USB_Video-02.multichannel-input
您可以通过运行来测试这是否是正确的源:
vlc pulse://alsa_input.usb-MACROSILICON_USB_Video-02.multichannel-input
我发现要将
v4l2
视频源与正确的脉冲音频接收器结合起来,您必须通过 input-slave
参数将音频设置为 vlc,但不幸的是,这对我来说不起作用,如指南中指定的那样,而是我必须将视频源设置为从属。对我有用的最终命令是:
720p:
vlc pulse://alsa_input.YOUR-SOURCE-HERE-input --input-slave=v4l2:///dev/video0:chroma=mjpg:width=1280:height=720
1080p@30fps:
vlc pulse://alsa_input.YOUR-SOURCE-HERE-input --input-slave=v4l2:///dev/video0:chroma=mjpg:fps=30
勇敢! Con grande fatica avevo trovato una soluzione più complessa che non semper suonava l'audio and comunque otteneva un conconcente (e variabile!) ritardo con il video. 不是这样的,我们的功能是零噪音音频。 谢谢!