Contents ======== * `Contents <#contents>`__ * `USB (V4l2) Camera <#usb-v4l2-camera>`__ * `Set Securiry Context to Enable USB Camera in Helm Environment <#set-securiry-context-to-enable-usb-camera-in-helm-environment>`__ USB (V4l2) Camera ----------------- .. note:: * If you want to enable resizing with a USB camera, use the ``videoscale`` element and specify the ``height`` and ``width`` of the parameters in the Gstreamer pipeline. .. code-block:: **An example pipeline to enable resizing with a USB camera:** `"pipeline":"v4l2src ! videoscale ! video/x-raw,format=YUY2,height=600,width=600 ! videoconvert ! video/x-raw,format=BGR ! appsink"` * If multiple USB cameras are connected, specify the camera using the ``device`` property in the configuration file. **An example pipeline to use the device property:** ``"pipeline": "v4l2src device=/dev/video0 ! video/x-raw,format=YUY2 ! videoconvert ! video/x-raw,format=BGR ! appsink"`` .. **Note:** Typically, a device node gets created when a USB device is connected to the system. When multiple USB cameras are connected, one needs to identify which device node is mapped to the camera and use that with the ``device`` property. Device nodes for the cameras usually gets created in a sequence of video0, video1, video2 etc. Set Securiry Context to Enable USB Camera in Helm Environment ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following are the steps to update the Security Context of VideoIngestion Helm Charts to allow K8s environment to access or detect USB cameras: * Open ``EII_HOME_DIR/IEdgeInsights/VideoIngestion/helm/templates/video-ingestion.yaml`` file * Update the following security context snippet: .. code-block:: yml securityContext: privileged: true in the yaml file as: .. code-block:: yaml ... ... ... imagePullPolicy: {{ $global.Values.imagePullPolicy }} securityContext: privileged: true volumeMounts: - name: dev mountPath: /dev ... * Re-run ``builder.py`` to apply these changes to your deployment helm charts.