This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SK-AM62A-LP: Docker with gst plugins

Part Number: SK-AM62A-LP

Tool/software:

Hello,

we want to use use gstreamer pipeline from within docker on target. Gst plugins like tiovx should be useable.

Are there any ready docker images for target availbale?

If not, how to create docker image for target incl. gst plugins?

  • Shawn,

    While the standard SK-AM62A-LP filesystem image "tisdk-edgeai-image-am62a-evm.wic.xz" includes some Docker binaries it isn't setup to run and work out of the box (for example, /usr/bin/dockerd isn't getting started during boot), and this feature is not supported by the SDK (there's no documentation topic on this).

    So if you want to use Docker on AM62A you would need to setup and configure a custom Yocto build for this, modeling after how Docker is configured and setup on AM62 (non-A) devices for example. You can find Docker related information in the AM62 docs here: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/10_01_10_04/exports/docs/linux/Foundational_Components/Virtualization/Docker.html#docker-linux-container-runtime  This might be a non-trivial amount of work to get this going on AM62A and it is not something we can support in the context of the E2E forum here.

    For simplicity I'd recommend to use the SDK and gstreamer etc as-is, without Docker.

    Regards, Andreas

  • Hi Andreas,
    we managed to have docker available with yocto build.
    WE also can execute docker images.
    What is missing, is a docker image with preinstalled gstreamer plugins.
    Are there any availbale, or can you send us dockerfile how to create docker
    wie gstreamer plugins?

  • Can you help here?

  • Shawn,

    The customization/tailoring of Docker images is not something we can support here in the context of the E2E forums however it is something one should be able to figure out using publicly available information.

    Some pointers here

    • First, you can start up a Docker container and then interact with it (shell) to manually install gstreamer components you need and any required dependencies
    • You should be able to install those components using Yocto's `opkg` package manager
    • To figure out gstreamer related package dependencies, you can use the below commands as an example.

      # List of packages the gstreamer library itself needs
      root@am62axx-evm:/# opkg depends gstreamer1.0
      gstreamer1.0 depends on:
              libc6 (>= 2.39+git3+dcaf51b41e)
              libglib-2.0-0 (>= 2.78.6)
      
      # List of packages that are using the gstreamer library (pick what you need)
      root@am62axx-evm:/# opkg whatdepends gstreamer1.0
      Root set:
        gstreamer1.0
      What depends on root set
              libopencv-videoio409 4.9.0-r0.21        depends on gstreamer1.0 (>= 1.22.12)
              gstreamer1.0-plugins-bad-mpegtsdemux 1.22.12-r0.161     depends on gstreamer1.0 (>= 1.22.12)
              gstreamer1.0-plugins-bad-vmnc 1.22.12-r0.161    depends on gstreamer1.0 (>= 1.22.12)
              gstreamer1.0-plugins-bad-audiobuffersplit 1.22.12-r0.161        depends on gstreamer1.0 (>= 1.22.12)
              gstreamer1.0-plugins-good-rtp 1.22.12-r0.arago0.155     depends on gstreamer1.0 (>= 1.22.12)
              gstreamer1.0-plugins-bad-videoframe-audiolevel 1.22.12-r0.161   depends on gstreamer1.0 (>= 1.22.12)
              gstreamer1.0-plugins-good-videobox 1.22.12-r0.arago0.155        depends on gstreamer1.0 (>= 1.22.12)
              gstreamer1.0-plugins-good-imagefreeze 1.22.12-r0.arago0.155     depends on gstreamer1.0 (>= 1.22.12)
              gstreamer1.0-plugins-bad-hls 1.22.12-r0.161     depends on gstreamer1.0 (>= 1.22.12)
              gstreamer1.0-plugins-base-apps 1.22.12-r0.165   depends on gstreamer1.0 (>= 1.22.12)
              gstreamer1.0-plugins-bad-bz2 1.22.12-r0.161     depends on gstreamer1.0 (>= 1.22.12)
              gstreamer1.0-plugins-good-cairo 1.22.12-r0.arago0.155   depends on gstreamer1.0 (>= 1.22.12)
      <...snip...>


    • Once you figured out which packages you need and get a working Docker container, you can automate the generation of future gstreamer-enabled Docker containers by customizing the Dockerfile with appropriate install commands....

      # Install package(s)
      RUN opkg install <pkgs>


    Regards, Andreas

  • It is no problem to create docker with gstreamer1.0. This can be installed with apt-get.
    The question ist, hot to get gstreamer plugins fro AM62A?
    Is there any tutorial how to easiyl get this into docker:
    https://github.com/TexasInstruments/edgeai-gst-plugins

    I think this is what is missing.

  • The question ist, hot to get gstreamer plugins fro AM62A?

    We don't have any guidance specifically for this aspect; but you should be able to adopt the approach outlined earlier to install plugins. You probably want to use both gstreamer and plugins from the same source.

    Regards, Andreas