【问题标题】:v4l2loopback SMPTE color bars in GenymotionGenymotion 中的 v4l2loopback SMPTE 彩条
【发布时间】:2020-08-09 01:28:03
【问题描述】:

我在安装了v4l2-ctlvirtualbox 的Ubuntu 18.04 机器上运行v4l2loopback

我使用下面的命令来初始化一个环回相机:

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

两者都能完美运行;因为我可以使用WebRTCChromeFirefoxffplay 查看输出:

ffplay /dev/video2

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

但是当我选择“Hello world”时,genymotion 会导出噪声(SMPTE 彩条)作为结果。

我的 Genymotion 出了什么问题?我发现UVC输出和v4l2loopback有区别。

【问题讨论】:

  • 这里有一些猜测: 1- Genymotion 查找我的配置未提供的相机元数据。 2- v4l2 输出格式不是最佳选择。 3- Genymotion 与 UVC 相机进行某种类型的握手以打开它们。
  • 作为一个更新我不得不说,我刚刚安装了 AnBox 来检查是否可以附加环回摄像头,我发现 AnBox 不支持摄像头!它也基于 x86 架构。

标签: stream genymotion v4l2loopback


【解决方案1】:

您能否提供 Genymotion 模拟器的日志,位于此处 ~/.Genymobile/Genymotion/deployed/<yourdevice>/genymotion-player.log,其中可能有有趣的见解。

【讨论】:

  • ○ [debug] CameraView(0x1682350) 获取的“Hello world (/dev/video5)”计数:1 ○ [warning]“Camera Hello world (/dev/video5) 状态:2” ○ [warning]“Camera Hello world (/dev/video5) status: 4” ○ [warning] 无法查询参数信息:“Invalid argument” ○ [warning] “Camera Hello world (/dev/video5) status: 6” ○ [警告] CameraBin 错误:“内部数据流错误。”
猜你喜欢
  • 2018-01-02
  • 1970-01-01
  • 2020-11-14
  • 2020-11-18
  • 1970-01-01
  • 2020-08-03
  • 2016-02-28
  • 2019-12-06
  • 1970-01-01
相关资源
最近更新 更多