标签: v4l2loopback

GStreamer + V4L2loopback兼容Chrome兼容网络摄像头

我正在尝试使用v4l2loopback在Chrome中创建虚拟相机,其中传入的视频是通过RTP输入的H264.

我在Chrome中识别GStreamer测试视频方面取得了一些成功MediaStreamTrack.getSources:

$ sudo modprobe v4l2loopback
$ gst-launch-1.0 videotestsrc ! v4l2sink device=/dev/video0
Run Code Online (Sandbox Code Playgroud)

这很有效,Chrome会显示视频测试源.

但是,当我使用传入的h264/RTP源时,设备不会显示MediaStreamTrack.getSources.例如:

gst-launch-1.0 -v tcpclientsrc host=<IPADDRESS> port=5000  ! gdpdepay !  rtph264depay ! avdec_h264 ! videoconvert ! v4l2sink device=/dev/video0
Run Code Online (Sandbox Code Playgroud)

这是什么原因?解决方案是什么?

我原本以为这可能与视频格式有关,也许需要通过v4l2loopback设置正确的上限.

google-chrome gstreamer v4l2loopback

9
推荐指数
1
解决办法
4532
查看次数

如何写/管道到V4L2loopback模块创建的虚拟网络摄像头?

我编写了一个应用程序,它从网络摄像头读取并使用Linux上的OpenCV处理帧.现在我想将应用程序的输出传输到由V4L2loopback模块创建的虚拟网络摄像头,以便其他应用程序能够读取它.我用C编写了应用程序.我不知道如何处理这个问题.你能给我一些提示吗?

c++ linux opencv v4l2 v4l2loopback

6
推荐指数
1
解决办法
3570
查看次数

FFmpeg 将输出更改为特定像素格式?

我正在开发一个 openCV 项目,我有一个稳定运行的变体,它从 HDMI 采集卡获取输入并使用 FFmpeg 输出到 v4L2 环回设备 (/dev/video0) 我的 openCV 项目从 /dev/video0 获取输入.

当我尝试使用 rtsp 提要时出现问题,以下命令可将提要发送到我的环回设备:

ffmpeg -rtsp_transport tcp -i rtsp://@192.168.1.27:552//stream1 -acodec rawvideo -vcodec rawvideo -f v4l2 /dev/video0
Run Code Online (Sandbox Code Playgroud)

而且我可以使用 VLC(在 /dev/video0 上)查看该提要没问题,但是当我将其提供给我的 openCV 应用程序时,出现以下错误:

VIDEOIO ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
Run Code Online (Sandbox Code Playgroud)

当我v4l2-ctl -d /dev/video0 --all在工作和非工作变体上运行时,这就是我得到的:

工作输出

Format Video Output:
Width/Height      : 1920/1080
Pixel Format      : 'UYVY'
Field             : None
Bytes per Line    : 3840
Size Image        : 4147200
Colorspace        : sRGB …
Run Code Online (Sandbox Code Playgroud)

opencv ffmpeg v4l2 v4l2loopback

6
推荐指数
1
解决办法
2万
查看次数

如何在loopback 4上为模型设置mysql表名?

我知道默认情况下,loopback 4会从模型类或存储库类中推断出mysql数据库表的名称.如何将表名设置为自定义字符串值?可能我必须使用装饰器,我无法在文档中找到任何东西.谢谢.

node.js v4l2loopback

5
推荐指数
1
解决办法
1003
查看次数

使用“npm i -g @loopback/cli”成功安装环回 CLI 后,环回“lb4”命令不起作用

我已经使用npm i -g @loopback/cli成功安装了 Loopback CLI ,之后我尝试使用lb4 app命令终端创建应用程序,它显示Command 'lb4' not find。只有lb 应用程序适用于版本 3 和 2,但我想创建与环回版本 4 兼容的应用程序。

node.js npm loopbackjs v4l2loopback npm-install

5
推荐指数
1
解决办法
4483
查看次数

Chrome 检测到 v4l2loopback 设备,Zoom 或 Firefox 未发现

我正在尝试从我的网络摄像头创建一个环回设备,以便可以从 Zoom 和浏览器访问。我创建了三个 v4l2loopback 设备:

sudo modprobe v4l2loopback devices=3 video_nr=10,11,12 card_label="Loopback_1","Loopback_2","Virtual_cam" exclusive_caps=1,1,0
Run Code Online (Sandbox Code Playgroud)

其次是:

ffmpeg -i /dev/video0 -f v4l2 -vcodec rawvideo -pix_fmt yuv420p /dev/video10 -f v4l2 /dev/video11
Run Code Online (Sandbox Code Playgroud)

Chrome 可以检测到这两种设备,但 Zoom 和 Firefox 都无法检测到。根据 stackoverflow 上其他问题的建议,我尝试使用 v4l2loopback-ctl 设置设备属性,使用v4l2loopback-ctl set-caps "video/x-raw,format=UYVY,width=640,height=480" /dev/video10,并得到响应:

将管道设置为暂停...错误:管道不想暂停。错误:来自元素 /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:设备“/dev/video10”不是输出设备。附加调试信息:v4l2_calls.c(636):gst_v4l2_open():/GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:功能:0x85208000将管道设置为NULL...释放管道...输出到/dev/video10失败

我还尝试使用 gst-launch-1.0:

gst-launch-1.0 v4l2src device=/dev/video0 ! v4l2sink device=/dev/video10
Run Code Online (Sandbox Code Playgroud)

这告诉我 /dev/video10 不是输出设备:

将管道设置为暂停...错误:管道不想暂停。错误:来自元素 /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:设备“/dev/video10”不是输出设备。附加调试信息:v4l2_calls.c(636):gst_v4l2_open():/GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:功能:0x85208000将管道设置为NULL...释放管道...

我正在运行 Xubuntu 20.04、内核版本 5.4.0-52-generic、v4l2loopback-dkms v.0.12.3-1ubuntu0.1 和 v4l2loopback-utils。

我的目标是让桌面 Node.js 服务器使用一个设备,该服务器将使用xdg-open(因此需要 Chrome 和 Firefox)打开一个 Web 应用程序,该应用程序将输出可被视频使用的已处理视频流聊天应用程序,例如 Zoom 或 Jitsi。

任何帮助将不胜感激。

ffmpeg gstreamer v4l2 v4l2loopback

5
推荐指数
2
解决办法
5919
查看次数

虚拟视频设备 - v4l2loopback - webRTC

我需要播放多个视频来测试视频服务器。我正在使用 lubuntu 14.04 并安装了V4l2loopback来制作设备文件( /dev/videoN )

我正在使用 mplayer 从该设备播放视频,如mplayer cam 所述

我已经对源代码进行了修改并成功播放了视频并使用 xawtv 和 flashplayer(在 Firefox 28 上)进行了查看。我曾尝试使用 webRtc 查看,但无法正常工作。

你有什么想法可以做到这一点吗?在 examples/yuv4mpeg_to_v4l2.c 中定义了一些特定的像素格式?

.....

我正在尝试使用此脚本直接访问资源来查找问题:

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">

    <title>Test rtc</title>
    <script type="text/javascript" charset="utf-8">

    navigator.getUserMedia = 
    ( 
        navigator.getUserMedia ||
        navigator.webkitGetUserMedia ||
        navigator.mozGetUserMedia ||
        navigator.msGetUserMedia
    );

    var constraints = 
    {
        audio: true,
        video:true,
        video: 
        {               
            mandatory: 
            {
              minWidth: 640,
              minHeight: 360
            }
        }
    };

    if( navigator.getUserMedia ) 
    {
        navigator.getUserMedia(

            // constraints
            constraints ,

            // successCallback
            function(localMediaStream) …
Run Code Online (Sandbox Code Playgroud)

webcam v4l2 webrtc vline v4l2loopback

4
推荐指数
2
解决办法
1万
查看次数

如何将 mjpeg 从网络摄像头更改为 yuyv422 到 v4l2loopback?

背景故事:我使用的一个直播网站不够智能,无法检测我的网络摄像头(Logitech Brio,4k)的功能,而是使用默认的每秒帧数设置,即 5fps。

(答案中的完整解决方案演练)

我能想到的最佳解决方案(除了更改直播提供商之外)是使用 v4l2loopback 创建一个环回虚拟网络摄像头,我可以强制使用我想在该直播网站上使用的确切设置。

对于 brio,更高的帧率来自 mjpeg,而不是默认的 yuyv。

问题1:

我可以很容易地阅读 mjpeg,但不幸的是我的头一直撞在墙上,因为 v4l2loopback 显然只想要 yuyv。

我试过这样的事情:

ffmpeg -f v4l2              \
       -input_format mjpeg  \
       -framerate 30        \
       -video_size 1280x720 \
       -i /dev/video0       \
       -vcodec copy         \
       -f v4l2 /dev/video6
Run Code Online (Sandbox Code Playgroud)

ffmpeg -f v4l2              \
       -input_format mjpeg  \
       -framerate 30        \
       -video_size 1280x720 \
       -i /dev/video0       \
       -vcodec yuyv422      \ # this line changed (even tried "copy")
       -f v4l2 /dev/video6
Run Code Online (Sandbox Code Playgroud)

但他们不会工作。我收到如下错误:

与 yuvj422p 等效的未知 V4L2 像素格式

...使用过时的像素格式,请确保您正确设置了范围...

...V4L2 输出设备仅支持单个原始视频流... …

linux ffmpeg live-streaming v4l2 v4l2loopback

4
推荐指数
1
解决办法
6953
查看次数

与 yuvj420p 等效的未知 V4L2 像素格式

我正在尝试将位于 Videos/video.mp4 中的 mp4 视频通过管道传输到位于 /dev/video0 的虚拟网络摄像头设备。

我尝试运行: ffmpeg -re -i Videos/video.mp4 -map 0:v -f v4l2 /dev/video0 并且我不断收到以下错误:

[video4linux2,v4l2 @ 0x5580cf270100] Unknown V4L2 pixel format equivalent for yuvj420p
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 -- 
Conversion failed!
Run Code Online (Sandbox Code Playgroud)

完整日志:

ffmpeg version 4.2.2-1+b1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9 (Debian 9.2.1-28)
  configuration: --prefix=/usr --extra-version=1+b1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa …
Run Code Online (Sandbox Code Playgroud)

linux bash video ffmpeg v4l2loopback

4
推荐指数
1
解决办法
2782
查看次数

回送4什么是存储库?

我很难理解Loopback 4中存储库的概念,该文档说:

存储库表示专门的服务接口,该接口针对基础数据库或服务提供域模型的强类型数据访问(例如CRUD)操作。

但是这种描述并不能帮助我完全理解其背后的思想,有人可以简单地解释它的确切含义,并提供其他框架中类似概念的一些示例吗?

loopback v4l2loopback

3
推荐指数
1
解决办法
381
查看次数