How to exchange and transfer from the device / dev / videoX from Chromium to the host and Chromium to the docker container

Environment

  • The host running Ubuntu 14.04.5 LTS
  • Dock version 17.09.0-ce, build afdb6d4
  • Chromium 62.0.3202.89
  • 2 web cams: /dev/video0,/dev/video1

Cameras

# v4l2-ctl --list-devices
Venus USB2.0 Camera (usb-0000:00:1a.0-1.2.2):
    /dev/video1

USB 2.0 Camera (usb-0000:00:1a.0-1.3):
    /dev/video0

I need to share web cameras on Ubuntu 14.04 the host with the container Ubuntu 16.04 dock , and receive video streams (WebRTC getUserMedia) from each camera on each instance of chromium, respectively, running on the host and the container.

To check getUserMedia, I look at https://www.onlinemictest.com/webcam-test/


How to play

Dockerfile

Dockerfile 
FROM ubuntu:16.04

# Install chromium
RUN apt-get update \
    && apt-get install sudo chromium-browser alsa-base -y \
    && rm -rf /var/lib/apt/lists/*

# Create a normal user to run chromium as
RUN useradd --create-home browser \
    && adduser browser video \
    && adduser browser audio \
    && usermod -aG sudo browser
USER browser
WORKDIR /home/browser

CMD ["/usr/bin/chromium-browser"]

docker-compose up

$ more docker-compose.yml 
version: '3'
services:
  chromium:
    build:
      context: .
      dockerfile: Dockerfile
    image: ubuntu-cr:0.1

    privileged: true

    environment:
        DISPLAY: $DISPLAY
        XAUTHORITY: /.Xauthority

    volumes:
        - /tmp/.X11-unix:/tmp/.X11-unix
        - ~/.Xauthority:/.Xauthority:ro

1. Start Chrome in a docker container

export DISPLAY=:0.0 
docker-compose up

Images

docker images
REPOSITORY      TAG            IMAGE ID            CREATED             SIZE
ubuntu-cr       0.1            a61f5506b1f9        9 minutes ago       764MB
ubuntu          16.04          747cb2d60bbe        2 months ago        122MB

2. Chromium , https://www.onlinemictest.com/webcam-test/

! !

3. Chromium URL-

:( ERROR

. .

, Chromium , (getUserMedia). Chromium , ERROR, NavigatorUserMediaError > TrackStartError.

Chromium

navigator.mediaDevices.getUserMedia({audio: true, video: true})

TrackStartError, Chromium.

, , , - ?

  • NotReadableError: , , .

  • , 2 Chromium ( ), (getUserMedia), 2 Chromium, , . , , . - . , tring, , .

+6

All Articles