Stream Genymotion中的v4l2loopback SMPTE颜色条

Stream Genymotion中的v4l2loopback SMPTE颜色条,stream,genymotion,v4l2loopback,Stream,Genymotion,V4l2loopback,我正在Ubuntu 18.04机器上运行v4l2loopback,并安装了virtualbox 我使用下面的命令初始化环回摄像头: sudo modprobe v4l2loopback video_nr=2 card_label="Hello world" exclusive_caps=1 devices=1 v4l2-ctl --device=/dev/video2 --all 上述第二个命令的输出为: Driver Info (not using libv4l2): Driver

我正在Ubuntu 18.04机器上运行
v4l2loopback
,并安装了
virtualbox

我使用下面的命令初始化环回摄像头:

sudo modprobe v4l2loopback video_nr=2 card_label="Hello world" exclusive_caps=1 devices=1
v4l2-ctl --device=/dev/video2 --all
上述第二个命令的输出为:

Driver Info (not using libv4l2):
    Driver name   : v4l2 loopback
    Card type     : Hello world
    Bus info      : platform:v4l2loopback-000
    Driver version: 5.3.18
    Capabilities  : 0x85208000
        Video Memory-to-Memory
        Read/Write
        Streaming
        Extended Pix Format
        Device Capabilities
    Device Caps   : 0x05208000
        Video Memory-to-Memory
        Read/Write
        Streaming
        Extended Pix Format
Priority: 0
Format Video Output:
    Width/Height      : 416/720
    Pixel Format      : 'YU12'
    Field             : None
    Bytes per Line    : 416
    Size Image        : 449280
    Colorspace        : sRGB
    Transfer Function : Default (maps to sRGB)
    YCbCr/HSV Encoding: Default (maps to ITU-R 601)
    Quantization      : Default (maps to Limited Range)
    Flags             : 
Streaming Parameters Video Capture:
    Frames per second: 30.000 (30/1)
    Read buffers     : 2
Streaming Parameters Video Output:
    Frames per second: 30.000 (30/1)
    Write buffers    : 2

User Controls

                    keep_format 0x0098f900 (bool)   : default=0 value=0
              sustain_framerate 0x0098f901 (bool)   : default=0 value=0
                        timeout 0x0098f902 (int)    : min=0 max=100000 step=1 default=0 value=0
               timeout_image_io 0x0098f903 (bool)   : default=0 value=0
现在我可以从我的桌面输入

sudo ffmpeg -f x11grab -r 25 -s 416x768 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video2
或我的流OBS:

ffmpeg -f flv -listen 1 -i rtmp://localhost:1935/live/app -f v4l2 /dev/video2
两者都很完美;因为我可以使用
WebRTC
Chrome
Firefox
ffplay
查看输出:

ffplay /dev/video2
我的机器还有一个运行在
/dev/video0
上的网络摄像头,它与
genymotion
完美配合

但当我选择“Hello world”时,
genymotion
会输出噪声(SMPTE颜色条)


我的手机怎么了?我发现UVC输出和v4l2loopback之间存在差异。

您能提供Genymotion Emulator的日志吗,位于这里
~/.Genymobile/Genymotion/deployed//Genymotion player.log
,这里可能有一些有趣的见解。

这里有一些猜测:1-Genymotion查找我的配置没有提供的摄像头元数据。2-v4l2输出格式不是最佳选择。3-Genymotion与UVC摄像头进行某种类型的握手以打开它们。作为更新,我必须说,我刚刚安装了AnBox以检查是否可以连接环回摄像头,我发现AnBox不支持摄像头!它还基于x86 arch。○ [调试]“Hello world(/dev/video5)”被CameraView(0x1682350)获取计数:1○ [警告]“摄像头Hello world(/dev/video5)状态:2”○ [警告]“摄像头Hello world(/dev/video5)状态:4”○ [警告]无法查询参数信息:“无效参数”○ [警告]“摄像头Hello world(/dev/video5)状态:6”○ [警告]摄像头错误:“内部数据流错误。”