• Assistance Needed for Standalone Streaming Setup on Multiple OAK PoE Cameras

HI @nikul
I tested you script and it works great on Oak-D-Pro Poe. It does not flicker at all. Are you experiencing the flickering in host mode or just in standalone? Does it help removing the color_cam.initialControl.setManualFocus(100) # 0..255?

"0.0.0.0" IP won't work, you have to specify the IP of the device directly. Camera not detected error stems from the fact that OAK-1 poe only has 1 camera (on socket 0). Stereo needs cameras on socket 1 and 2.

Thanks,
Jaka

    jakaskerl
    I tested you script and it works great on Oak-D-Pro Poe. It does not flicker at all. Are you experiencing the flickering in host mode or just in standalone? Does it help removing the color_cam.initialControl.setManualFocus(100) # 0..255?

    It flickers only on Standalone. I have applied the same code to the all my four OAK PoE cameras however effect of this code color_cam.initialControl.setManualFocus(100) # 0..255is only appearing on OAK-D-Pro. and none other.

    "0.0.0.0" IP won't work, you have to specify the IP of the device directly. Camera not detected error stems from the fact that OAK-1 poe only has 1 camera (on socket 0). Stereo needs cameras on socket 1 and 2.

    0.0.0.0 is just for security purpose I am using device IP while running in into my system. I aware of the fact that I need OAK-D or OAK-D-Pro to stream depth view. i do have both of them connected to my network.

    Hi @nikul
    Which Oak-D-pro Poe is this? This is what /examples/ColorCamera/rgb_preview.py prints out for a camera I tested and which had no issues with flickering:

    Connected cameras: [{socket: CAM_A, sensorName: IMX378, width: 4056, height: 3040, orientation: AUTO, supportedTypes: [COLOR], hasAutofocus: 1, hasAutofocusIC: 1, name: color}, {socket: CAM_B, sensorName: OV9282, width: 1280, height: 800, orientation: AUTO, supportedTypes: [MONO], hasAutofocus: 0, hasAutofocusIC: 0, name: left}, {socket: CAM_C, sensorName: OV9282, width: 1280, height: 800, orientation: AUTO, supportedTypes: [MONO], hasAutofocus: 0, hasAutofocusIC: 0, name: right}]
    Usb speed: UNKNOWN
    Bootloader version: 0.0.26
    Device name: OAK-D-PRO-POE  Product name: OAK-D-PRO-POE-AF

    I flashed the application you have sent to the device and experienced no issues.

    Thanks,
    Jaka

    @jakaskerl
    Hi, Thank you for getting back.
    Can I set the focus manually. To the OAK 1.
    Here is description of my device.
    [{socket: CAM_A, sensorName: IMX378, width: 4056, height: 3040, orientation: AUTO, supportedTypes: [COLOR], hasAutofocus: 0, hasAutofocusIC: 1, name: color}]

    Thank you @jakaskerl
    1. I am unable to setManualFocus with this.
    # Start defining a pipeline

    pipeline = dai.Pipeline()

    # Define a source - color camera

    cam = pipeline.create(dai.node.ColorCamera)

    cam.setResolution(dai.ColorCameraProperties.SensorResolution.THE_1080_P)

    cam.initialControl.setManualFocus(2)

    [{socket: CAM_A, sensorName: IMX378, width: 4056, height: 3040, orientation: AUTO, supportedTypes: [COLOR], hasAutofocus: 0, hasAutofocusIC: 1, name: color}, {socket: CAM_B, sensorName: OV9282, width: 1280, height: 800, orientation: AUTO, supportedTypes: [MONO], hasAutofocus: 0, hasAutofocusIC: 0, name: left}, {socket: CAM_C, sensorName: OV9282, width: 1280, height: 800, orientation: AUTO, supportedTypes: [MONO], hasAutofocus: 0, hasAutofocusIC: 0, name: right}]

    This camera does comes with Auto Focus features.
    https://docs.luxonis.com/projects/hardware/en/latest/pages/NG9097pro/

    1. I am getting error while installing depthAI viewer.
    Requirement already satisfied: pip in c:\users\nikunayi\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages\depthai_viewer\venv-0.1.6\lib\site-packages (23.2.1)
    
    Collecting pip
    
    Obtaining dependency information for pip from https://files.pythonhosted.org/packages/8a/6a/19e9fe04fca059ccf770861c7d5721ab4c2aebc539889e97c7977528a53b/pip-24.0-py3-none-any.whl.metadata
    
    Downloading pip-24.0-py3-none-any.whl.metadata (3.6 kB)
    
    Downloading pip-24.0-py3-none-any.whl (2.1 MB)
    
    ---------------------------------------- 2.1/2.1 MB 9.6 MB/s eta 0:00:00
    
    Installing collected packages: pip
    
    Attempting uninstall: pip
    
    Found existing installation: pip 23.2.1
    
    Uninstalling pip-23.2.1:
    
      Successfully uninstalled pip-23.2.1
    
    Successfully installed pip-24.0
    
    Looking in indexes: https://pypi.org/simple, https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/
    
    Collecting depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475
    
    Using cached https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/depthai-sdk/depthai_sdk-1.13.1.dev0%2Bb0340e0c4ad869711d7d5fff48e41c46fe41f475-py3-none-any.whl (225 kB)
    
    Collecting opencv-contrib-python>4 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached opencv_contrib_python-4.9.0.80-cp37-abi3-win_amd64.whl.metadata (20 kB)
    
    Collecting blobconverter>=1.4.1 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached blobconverter-1.4.2-py3-none-any.whl.metadata (7.5 kB)
    
    Collecting pytube>=12.1.0 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached pytube-15.0.0-py3-none-any.whl (57 kB)
    
    Collecting depthai==2.22.0 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached depthai-2.22.0.0-cp311-cp311-win_amd64.whl.metadata (8.9 kB)
    
    Collecting PyTurboJPEG==1.6.4 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached PyTurboJPEG-1.6.4-py3-none-any.whl
    
    Collecting marshmallow==3.17.0 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached marshmallow-3.17.0-py3-none-any.whl (48 kB)
    
    Collecting xmltodict (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached xmltodict-0.13.0-py2.py3-none-any.whl (10.0 kB)
    
    Collecting sentry-sdk==1.21.0 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached sentry_sdk-1.21.0-py2.py3-none-any.whl (199 kB)
    
    Collecting depthai-pipeline-graph==0.0.5 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached depthai_pipeline_graph-0.0.5-py3-none-any.whl.metadata (8.8 kB)
    
    Collecting ahrs==0.3.1 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached AHRS-0.3.1-py3-none-any.whl (197 kB)
    
    Collecting numpy>=1.21 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached numpy-1.26.3-cp311-cp311-win_amd64.whl.metadata (61 kB)
    
    Collecting Qt.py>=1.3.0 (from depthai-pipeline-graph==0.0.5->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached Qt.py-1.3.10-py2.py3-none-any.whl.metadata (25 kB)
    
    Collecting packaging>=17.0 (from marshmallow==3.17.0->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
    
    Collecting certifi (from sentry-sdk==1.21.0->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
    
    Collecting urllib3>=1.26.11 (from sentry-sdk==1.21.0->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached urllib3-2.2.0-py3-none-any.whl.metadata (6.4 kB)
    
    Collecting requests (from blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
    
    Collecting PyYAML (from blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached PyYAML-6.0.1-cp311-cp311-win_amd64.whl.metadata (2.1 kB)
    
    Collecting boto3 (from blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Downloading boto3-1.34.34-py3-none-any.whl.metadata (6.6 kB)
    
    Collecting types-PySide2 (from Qt.py>=1.3.0->depthai-pipeline-graph==0.0.5->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached types_pyside2-5.15.2.1.6-py2.py3-none-any.whl.metadata (8.1 kB)
    
    Collecting botocore<1.35.0,>=1.34.34 (from boto3->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Downloading botocore-1.34.34-py3-none-any.whl.metadata (5.7 kB)
    
    Collecting jmespath<2.0.0,>=0.7.1 (from boto3->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached jmespath-1.0.1-py3-none-any.whl (20 kB)
    
    Collecting s3transfer<0.11.0,>=0.10.0 (from boto3->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached s3transfer-0.10.0-py3-none-any.whl.metadata (1.7 kB)
    
    Collecting charset-normalizer<4,>=2 (from requests->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl.metadata (34 kB)
    
    Collecting idna<4,>=2.5 (from requests->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
    
    Collecting python-dateutil<3.0.0,>=2.1 (from botocore<1.35.0,>=1.34.34->boto3->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
    
    Collecting urllib3>=1.26.11 (from sentry-sdk==1.21.0->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached urllib3-2.0.7-py3-none-any.whl.metadata (6.6 kB)
    
    Collecting six>=1.5 (from python-dateutil<3.0.0,>=2.1->botocore<1.35.0,>=1.34.34->boto3->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
    
    Using cached depthai-2.22.0.0-cp311-cp311-win_amd64.whl (10.0 MB)
    
    Using cached depthai_pipeline_graph-0.0.5-py3-none-any.whl (123 kB)
    
    Using cached blobconverter-1.4.2-py3-none-any.whl (10 kB)
    
    Using cached numpy-1.26.3-cp311-cp311-win_amd64.whl (15.8 MB)
    
    Using cached opencv_contrib_python-4.9.0.80-cp37-abi3-win_amd64.whl (45.3 MB)
    
    Using cached packaging-23.2-py3-none-any.whl (53 kB)
    
    Using cached Qt.py-1.3.10-py2.py3-none-any.whl (34 kB)
    
    Downloading boto3-1.34.34-py3-none-any.whl (139 kB)
    
    ---------------------------------------- 139.3/139.3 kB 1.0 MB/s eta 0:00:00
    
    Using cached certifi-2024.2.2-py3-none-any.whl (163 kB)
    
    Using cached PyYAML-6.0.1-cp311-cp311-win_amd64.whl (144 kB)
    
    Using cached requests-2.31.0-py3-none-any.whl (62 kB)
    
    Downloading botocore-1.34.34-py3-none-any.whl (11.9 MB)
    
    ---------------------------------------- 11.9/11.9 MB 19.8 MB/s eta 0:00:00
    
    Using cached urllib3-2.0.7-py3-none-any.whl (124 kB)
    
    Using cached charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl (99 kB)
    
    Using cached idna-3.6-py3-none-any.whl (61 kB)
    
    Using cached s3transfer-0.10.0-py3-none-any.whl (82 kB)
    
    Using cached types_pyside2-5.15.2.1.6-py2.py3-none-any.whl (572 kB)
    
    Installing collected packages: types-PySide2, xmltodict, urllib3, six, Qt.py, PyYAML, pytube, packaging, numpy, jmespath, idna, depthai, charset-normalizer, certifi, sentry-sdk, requests, PyTurboJPEG, python-dateutil, opencv-contrib-python, marshmallow, depthai-pipeline-graph, ahrs, botocore, s3transfer, boto3, blobconverter, depthai-sdk
    
    Creating virtual environment...
    
    Error occurred during dependency installation: Command '['C:\\Users\\nikunayi\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\depthai_viewer\\venv-0.1.6\\Scripts\\python', '-m', 'pip', 'install', 'depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475', '--extra-index-url', 'https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/']' returned non-zero exit status 1.
    
    Traceback (most recent call last):
    
    File "C:\Users\nikunayi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\depthai_viewer\install_requirements.py", line 85, in create_venv_and_install_dependencies
    
    subprocess.run(
    
    File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.2032.0_x64__qbz5n2kfra8p0\Lib\subprocess.py", line 571, in run
    
    raise CalledProcessError(retcode, process.args,
    
    subprocess.CalledProcessError: Command '['C:\\Users\\nikunayi\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\depthai_viewer\\venv-0.1.6\\Scripts\\python', '-m', 'pip', 'install', 'depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475', '--extra-index-url', 'https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/']' returned non-zero exit status 1.
    
    Deleting partially created virtual environment: C:\Users\nikunayi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\depthai_viewer\venv-0.1.6
    
    Requirement already satisfied: pip in c:\users\nikunayi\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages\depthai_viewer\venv-0.1.6\lib\site-packages (23.2.1)
    
    Collecting pip
    
    Obtaining dependency information for pip from https://files.pythonhosted.org/packages/8a/6a/19e9fe04fca059ccf770861c7d5721ab4c2aebc539889e97c7977528a53b/pip-24.0-py3-none-any.whl.metadata
    
    Using cached pip-24.0-py3-none-any.whl.metadata (3.6 kB)
    
    Using cached pip-24.0-py3-none-any.whl (2.1 MB)
    
    Installing collected packages: pip
    
    Attempting uninstall: pip
    
    Found existing installation: pip 23.2.1
    
    Uninstalling pip-23.2.1:
    
      Successfully uninstalled pip-23.2.1
    
    Successfully installed pip-24.0
    
    Looking in indexes: https://pypi.org/simple, https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/
    
    Collecting depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475
    
    Using cached https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/depthai-sdk/depthai_sdk-1.13.1.dev0%2Bb0340e0c4ad869711d7d5fff48e41c46fe41f475-py3-none-any.whl (225 kB)
    
    Collecting opencv-contrib-python>4 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached opencv_contrib_python-4.9.0.80-cp37-abi3-win_amd64.whl.metadata (20 kB)
    
    Collecting blobconverter>=1.4.1 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached blobconverter-1.4.2-py3-none-any.whl.metadata (7.5 kB)
    
    Collecting pytube>=12.1.0 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached pytube-15.0.0-py3-none-any.whl (57 kB)
    
    Collecting depthai==2.22.0 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached depthai-2.22.0.0-cp311-cp311-win_amd64.whl.metadata (8.9 kB)
    
    Collecting PyTurboJPEG==1.6.4 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached PyTurboJPEG-1.6.4-py3-none-any.whl
    
    Collecting marshmallow==3.17.0 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached marshmallow-3.17.0-py3-none-any.whl (48 kB)
    
    Collecting xmltodict (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached xmltodict-0.13.0-py2.py3-none-any.whl (10.0 kB)
    
    Collecting sentry-sdk==1.21.0 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached sentry_sdk-1.21.0-py2.py3-none-any.whl (199 kB)
    
    Collecting depthai-pipeline-graph==0.0.5 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached depthai_pipeline_graph-0.0.5-py3-none-any.whl.metadata (8.8 kB)
    
    Collecting ahrs==0.3.1 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached AHRS-0.3.1-py3-none-any.whl (197 kB)
    
    Collecting numpy>=1.21 (from depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached numpy-1.26.3-cp311-cp311-win_amd64.whl.metadata (61 kB)
    
    Collecting Qt.py>=1.3.0 (from depthai-pipeline-graph==0.0.5->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached Qt.py-1.3.10-py2.py3-none-any.whl.metadata (25 kB)
    
    Collecting packaging>=17.0 (from marshmallow==3.17.0->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
    
    Collecting certifi (from sentry-sdk==1.21.0->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
    
    Collecting urllib3>=1.26.11 (from sentry-sdk==1.21.0->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached urllib3-2.2.0-py3-none-any.whl.metadata (6.4 kB)
    
    Collecting requests (from blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
    
    Collecting PyYAML (from blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached PyYAML-6.0.1-cp311-cp311-win_amd64.whl.metadata (2.1 kB)
    
    Collecting boto3 (from blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached boto3-1.34.34-py3-none-any.whl.metadata (6.6 kB)
    
    Collecting types-PySide2 (from Qt.py>=1.3.0->depthai-pipeline-graph==0.0.5->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached types_pyside2-5.15.2.1.6-py2.py3-none-any.whl.metadata (8.1 kB)
    
    Collecting botocore<1.35.0,>=1.34.34 (from boto3->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached botocore-1.34.34-py3-none-any.whl.metadata (5.7 kB)
    
    Collecting jmespath<2.0.0,>=0.7.1 (from boto3->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached jmespath-1.0.1-py3-none-any.whl (20 kB)
    
    Collecting s3transfer<0.11.0,>=0.10.0 (from boto3->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached s3transfer-0.10.0-py3-none-any.whl.metadata (1.7 kB)
    
    Collecting charset-normalizer<4,>=2 (from requests->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl.metadata (34 kB)
    
    Collecting idna<4,>=2.5 (from requests->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
    
    Collecting python-dateutil<3.0.0,>=2.1 (from botocore<1.35.0,>=1.34.34->boto3->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
    
    Collecting urllib3>=1.26.11 (from sentry-sdk==1.21.0->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached urllib3-2.0.7-py3-none-any.whl.metadata (6.6 kB)
    
    Collecting six>=1.5 (from python-dateutil<3.0.0,>=2.1->botocore<1.35.0,>=1.34.34->boto3->blobconverter>=1.4.1->depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475)
    
    Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
    
    Using cached depthai-2.22.0.0-cp311-cp311-win_amd64.whl (10.0 MB)
    
    Using cached depthai_pipeline_graph-0.0.5-py3-none-any.whl (123 kB)
    
    Using cached blobconverter-1.4.2-py3-none-any.whl (10 kB)
    
    Using cached numpy-1.26.3-cp311-cp311-win_amd64.whl (15.8 MB)
    
    Using cached opencv_contrib_python-4.9.0.80-cp37-abi3-win_amd64.whl (45.3 MB)
    
    Using cached packaging-23.2-py3-none-any.whl (53 kB)
    
    Using cached Qt.py-1.3.10-py2.py3-none-any.whl (34 kB)
    
    Using cached boto3-1.34.34-py3-none-any.whl (139 kB)
    
    Using cached certifi-2024.2.2-py3-none-any.whl (163 kB)
    
    Using cached PyYAML-6.0.1-cp311-cp311-win_amd64.whl (144 kB)
    
    Using cached requests-2.31.0-py3-none-any.whl (62 kB)
    
    Using cached botocore-1.34.34-py3-none-any.whl (11.9 MB)
    
    Using cached urllib3-2.0.7-py3-none-any.whl (124 kB)
    
    Using cached charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl (99 kB)
    
    Using cached idna-3.6-py3-none-any.whl (61 kB)
    
    Using cached s3transfer-0.10.0-py3-none-any.whl (82 kB)
    
    Using cached types_pyside2-5.15.2.1.6-py2.py3-none-any.whl (572 kB)
    
    Installing collected packages: types-PySide2, xmltodict, urllib3, six, Qt.py, PyYAML, pytube, packaging, numpy, jmespath, idna, depthai, charset-normalizer, certifi, sentry-sdk, requests, PyTurboJPEG, python-dateutil, opencv-contrib-python, marshmallow, depthai-pipeline-graph, ahrs, botocore, s3transfer, boto3, blobconverter, depthai-sdk
    
    Creating virtual environment...
    
    Error occurred during dependency installation: Command '['C:\\Users\\nikunayi\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\depthai_viewer\\venv-0.1.6\\Scripts\\python', '-m', 'pip', 'install', 'depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475', '--extra-index-url', 'https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/']' returned non-zero exit status 1.
    
    Traceback (most recent call last):
    
    File "C:\Users\nikunayi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\depthai_viewer\install_requirements.py", line 85, in create_venv_and_install_dependencies
    
    subprocess.run(
    
    File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.2032.0_x64__qbz5n2kfra8p0\Lib\subprocess.py", line 571, in run
    
    raise CalledProcessError(retcode, process.args,
    
    subprocess.CalledProcessError: Command '['C:\\Users\\nikunayi\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\depthai_viewer\\venv-0.1.6\\Scripts\\python', '-m', 'pip', 'install', 'depthai-sdk==1.13.1.dev0+b0340e0c4ad869711d7d5fff48e41c46fe41f475', '--extra-index-url', 'https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/']' returned non-zero exit status 1.
    
    Deleting partially created virtual environment: C:\Users\nikunayi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\depthai_viewer\venv-0.1.6
    
    
    Thank you.

    jakaskerl

    Hi @Jackmarks Thank you for getting back.

    Couple weeks back when I tried, I was able to set focus. I did not try all the parameters but set focus to 0 and it was all blur.

    Thank you

    Hi @nikul
    Are you sure it was the same camera?
    Try with https://docs.luxonis.com/projects/api/en/latest/samples/ColorCamera/rgb_camera_control/.

    Control:      key[dec/inc]  min..max
      exposure time:     I   O      1..33000 [us]
      sensitivity iso:   K   L    100..1600
      focus:             ,   .      0..255 [far..near]
      white balance:     N   M   1000..12000 (light color temperature K)

    Thanks,
    Jaka

    Turns out the setResolution() also something which not really working for me. whatever perameter I set in my video surveillance system it is showing 1080.

    Also I want to crop the streaming and want to get only center of the video, can you show my how can I apply this considering the code I have provided above.

    Thank you.

      nikul Turns out the setResolution() also something which not really working for me. whatever perameter I set in my video surveillance system it is showing 1080.

      Please add a MRE of this issue so we can pinpoint the culprit.

      nikul Also I want to crop the streaming and want to get only center of the video, can you show my how can I apply this considering the code I have provided above.

      • Create a ImgManip node
      • Link camRgb as input, and pipe the output to whatever you need (streaming/NN/etc)
      • use Imagemanip's manip.initialConfig.setCropRect() or manip.initialConfig.setCenterCrop()
        Keep in mind, values for the second one are normalized (0-1)

      Thanks,
      Jaka

        jakaskerl Thank You.

        import depthai as dai
        import time
        
        # Start defining a pipeline
        pipeline = dai.Pipeline()
        # Define a source - color camera
        cam = pipeline.create(dai.node.ColorCamera)
        cam.setFps(60)
        cam.setResolution(dai.ColorCameraProperties.SensorResolution.THE_720_P)
        cam.initialControl.setManualFocus(185) # 0..255
        
        manip = pipeline.create(dai.node.ImageManip)
        manip.initialConfig.setCropRect(0.3917, 0.3574, 0.6083, 0.7426)
        
        # VideoEncoder
        jpeg = pipeline.create(dai.node.VideoEncoder)
        jpeg.setDefaultProfilePreset(cam.getFps(), dai.VideoEncoderProperties.Profile.MJPEG)
        
        
        # Script node
        script = pipeline.create(dai.node.Script)
        
        script.setProcessor(dai.ProcessorType.LEON_CSS)
        script.setScript("""
            import time
            import socket
            import fcntl
            import struct
            from socketserver import ThreadingMixIn
            from http.server import BaseHTTPRequestHandler, HTTPServer
        
            PORT = 8080
        
            def get_ip_address(ifname):
                s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
                return socket.inet_ntoa(fcntl.ioctl(
                    s.fileno(),
                    -1071617759,  # SIOCGIFADDR
                    struct.pack('256s', ifname[:15].encode())
                )[20:24])
        
            class ThreadingSimpleServer(ThreadingMixIn, HTTPServer):
                pass
        
            class HTTPHandler(BaseHTTPRequestHandler):
                def do_GET(self):
                    if self.path == '/':
                        self.send_response(200)
                        self.end_headers()
                        self.wfile.write(b'<h1>[DepthAI] Hello, world!</h1><p>Click <a href="img">here</a> for an image</p>')
                    elif self.path == '/img':
                        try:
                            self.send_response(200)
                            self.send_header('Content-type', 'multipart/x-mixed-replace; boundary=--jpgboundary')
                            self.end_headers()
                            fpsCounter = 0
                            timeCounter = time.time()
                            while True:
                                jpegImage = node.io['jpeg'].get()
                                self.wfile.write("--jpgboundary".encode())
                                self.wfile.write(bytes([13, 10]))
                                self.send_header('Content-type', 'image/jpeg')
                                self.send_header('Content-length', str(len(jpegImage.getData())))
                                self.end_headers()
                                self.wfile.write(jpegImage.getData())
                                self.end_headers()
        
                                fpsCounter = fpsCounter + 1
                                if time.time() - timeCounter > 1:
                                    node.warn(f'FPS: {fpsCounter}')
                                    fpsCounter = 0
                                    timeCounter = time.time()
                        except Exception as ex:
                            node.warn(str(ex))
        
            with ThreadingSimpleServer(("", PORT), HTTPHandler) as httpd:
                node.warn(f"Serving at {get_ip_address('re0')}:{PORT}")
                httpd.serve_forever()
        """)
        
        # Connections
        # Linking
        cam.video.link(manip.inputImage)  # Link camera to ImageManip
        manip.out.link(jpeg.input)  # Link ImageManip to VideoEncoder
        jpeg.bitstream.link(script.inputs['jpeg'])

        I was able to crop the frame but resolution issue is still the same.

        Hi @nikul
        I think 720P is not supported on IMX378, that's why it's defaulting to 1080p. Other (higher) resolution should work as intended.
        And you should be getting a warning for unsupported resolution in the depthai during bootup.

        Thanks,
        Jaka

          jakaskerl Thank you.
          Is there anyway we can reduce the bitrate in MJPEG streaming.