使用网络摄像头/HDMI-USB加密狗时,fps低(视频不稳定)、没有声音、图像中没有JPEG数据 [英] Low fps (choppy video), no sound, "No JPEG data found in image" when using webcam/hdmi-usb dongle

查看:0
本文介绍了使用网络摄像头/HDMI-USB加密狗时,fps低(视频不稳定)、没有声音、图像中没有JPEG数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我花了太长时间才弄明白,所以希望能帮助任何处理这些问题的人,我想发布解决方案。但首先,问题是:

我买了一个便宜的HDMI-&USB加密狗,并将我的PS3连接起来作为视频源。在vlc上,图像看起来很清晰,但我听不到任何声音,而且视频确实起伏不定。查看信息部分的编解码器选项卡,我看到我以5 fps的速度获得了1080p的效果。我以为我得到了一个有缺陷的加密狗,但决定检查其他应用程序。tvtime/xawtv给了我很高的帧速率,但分辨率很低,我无法更改,cheese允许我设置所有选项,我获得了很好的帧速率和分辨率(但没有声音),然后我最终尝试了obs,得到了一个完美的结果。因此,很明显,加密狗是正常的,问题出在vlc

有关所有这些问题(以及更多问题)的解决方案,请参阅下面的答案

推荐答案

我通过大量的研究和实验发现,视频在vlc中起伏不定的原因是因为它使用的是YUV2的默认";chroma";,如果我没有弄错的话,它是未压缩的。(您可以通过运行以下命令来检查您的网络摄像头/加密狗的能力: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视频源和正确的PulseAudio接收器,您必须通过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

这篇关于使用网络摄像头/HDMI-USB加密狗时,fps低(视频不稳定)、没有声音、图像中没有JPEG数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆