# Publish metadata to RedisSink

The use case extracts the ML metadata and sends it to the client through RedisSink. Redis stores this data allowing real-time analytics and dashboards to display up-to-date insights.

The steps to run the use case are as follows:

1. Set up RedisSink. Installing RedisSink is a one-time set up process.

docker pull redis:7.2.4-alpine
        Copy to clipboard
2. Run the Docker:

docker run --name redis -p 6379:6379 --hostname redis -d redis:7.2.4-alpine redis-server
        Copy to clipboard
3. Run the `redis-cli` and subscribe to sample-redis-channel:

docker exec -it redis redis-cli
        Copy to clipboard

PSUBSCRIBE sample-redis-channel
        Copy to clipboard
4. Open a new command shell on the target device and run the following command:

export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1
        Copy to clipboard

gst-launch-1.0 -e \
        qtivcomposer name=vcomposer \
        sink_0::position="<0, 0>" sink_0::dimensions="<1280, 720>" ! waylandsink fullscreen=true \
        qtimlvconverter name=stage_01_preproc \
        qtimltflite name=stage_01_inference delegate=external external-delegate-path=libQnnTFLiteDelegate.so \
        external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/etc/models/yolov8_det_quantized.tflite \
        qtimlpostprocess name=stage_01_postproc1 settings="{\"confidence\": 50.0}" results=10 module=yolov8 labels=/etc/labels/yolov8.json \
        qtimlpostprocess name=stage_01_postproc2 settings="{\"confidence\": 50.0}" results=10 module=yolov8 labels=/etc/labels/yolov8.json \
        qtiqmmfsrc name=camsrc ! video/x-raw,format=NV12_Q08C,width=1280,height=720,framerate=30/1 ! queue ! tee name=t_split_1 \
        t_split_1. ! queue ! metamux_1. \
        t_split_1. ! queue ! stage_01_preproc. stage_01_preproc. ! queue ! stage_01_inference. stage_01_inference. ! queue ! \
        stage_01_postproc1. stage_01_postproc1. ! text/x-raw ! queue ! metamux_1. \
        qtimetamux name=metamux_1 ! queue ! qtivoverlay ! tee name=t_redis_1 \
        t_redis_1. ! queue ! vcomposer. \
        t_redis_1. ! qtimlmetaparser module=json ! queue ! qtiredissink sync=false async=false channel="sample-redis-channel" host="127.0.0.1" port=6379
        Copy to clipboard

To stop the use case, use **CTRL + C**.

The following figure demonstrates AI processing and object detection on camera source. The processed result and input stream displays on Wayland and delivers the metadata to Redis channel simultaneously.

<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="1200" height="280" viewbox="0 0 1200 280" aria-label="../../_images/publish-metadata-redissink.svg">
  <g>
    <rect x=".5" y=".5" width="1199" height="279" rx="7.5" ry="7.5" style="fill: #fafafa;"></rect>
    <path d="M1192,1c3.86,0,7,3.14,7,7v264c0,3.86-3.14,7-7,7H8c-3.86,0-7-3.14-7-7V8C1,4.14,4.14,1,8,1h1184M1192,0H8C3.58,0,0,3.58,0,8v264c0,4.42,3.58,8,8,8h1184c4.42,0,8-3.58,8-8V8C1200,3.58,1196.42,0,1192,0h0Z" style="fill: #d2d7e1;"></path>
  </g>
  <g>
    <g>
      <text transform="translate(1006.36 256.41)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
      <rect x="986.1" y="243.32" width="16" height="16" rx="2" ry="2" style="fill: #2a2aea;"></rect>
    </g>
    <g>
      <text transform="translate(1104.94 256.41)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
      <rect x="1084.69" y="243.32" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
    </g>
  </g>
  <g>
    <rect x="16.57" y="35.49" width="137.16" height="55.52" rx="4" ry="4" style="fill: #2a2aea;"></rect>
    <text transform="translate(43.68 67.83)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtiqmmfsrc</tspan></text>
    <rect x="176.59" y="35.49" width="100" height="55.52" rx="4" ry="4" style="fill: #007884;"></rect>
    <g>
      <line x1="276.59" y1="63.25" x2="631.31" y2="63.25" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="630.15 67.24 637.05 63.25 630.15 59.26 630.15 67.24"></polygon>
    </g>
    <text transform="translate(215.5 67.83)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">tee</tspan></text>
    <rect x="637.97" y="35.49" width="140" height="112.45" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(665.27 96.39)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtimetamux</tspan></text>
    <g>
      <line x1="153.73" y1="63.25" x2="170.85" y2="63.25" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="169.68 67.24 176.59 63.25 169.68 59.26 169.68 67.24"></polygon>
    </g>
    <rect x="800.83" y="35.49" width="100" height="55.52" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(839.74 67.83)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">tee</tspan></text>
    <g>
      <line x1="777.97" y1="63.25" x2="795.09" y2="63.25" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="793.92 67.24 800.83 63.25 793.92 59.26 793.92 67.24"></polygon>
    </g>
    <rect x="923.69" y="35.49" width="137.16" height="55.52" rx="4" ry="4" style="fill: #2a2aea;"></rect>
    <text transform="translate(933.38 67.83)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtimlmetaparser</tspan></text>
    <g>
      <line x1="900.83" y1="63.25" x2="917.95" y2="63.25" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="916.78 67.24 923.69 63.25 916.78 59.26 916.78 67.24"></polygon>
    </g>
    <rect x="1083.43" y="35.49" width="100" height="55.52" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(1101.37 67.83)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">redissink</tspan></text>
    <g>
      <line x1="1060.85" y1="63.25" x2="1077.97" y2="63.25" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="1076.8 67.24 1083.71 63.25 1076.8 59.26 1076.8 67.24"></polygon>
    </g>
    <rect x="16.57" y="141.26" width="137.16" height="55.52" rx="4" ry="4" style="fill: #2a2aea;"></rect>
    <text transform="translate(29.68 173.6)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
    <rect x="336.61" y="141.26" width="100" height="55.52" rx="4" ry="4" style="fill: #007884;"></rect>
    <rect x="176.59" y="141.26" width="137.16" height="55.52" rx="4" ry="4" style="fill: #2a2aea;"></rect>
    <g>
      <line x1="313.75" y1="169.02" x2="330.87" y2="169.02" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="329.7 173.01 336.61 169.02 329.7 165.03 329.7 173.01"></polygon>
    </g>
    <text transform="translate(375.52 174.38)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">tee</tspan></text>
    <g>
      <polyline points="436.61 159.77 446.2 159.77 446.2 135.94 457.29 135.94" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
      <polygon points="456.13 139.93 463.04 135.94 456.13 131.95 456.13 139.93"></polygon>
    </g>
    <g>
      <polyline points="436.61 178.28 446.2 178.28 446.2 201.04 457.29 201.04" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
      <polygon points="456.13 205.03 463.04 201.04 456.13 197.06 456.13 205.03"></polygon>
    </g>
    <rect x="463.04" y="108.73" width="151.16" height="55.52" rx="4" ry="4" style="fill: #2a2aea;"></rect>
    <text transform="translate(476.34 141.16)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
    <rect x="463.04" y="173.8" width="151.16" height="55.52" rx="4" ry="4" style="fill: #2a2aea;"></rect>
    <text transform="translate(476.34 206.24)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
    <rect x="637.97" y="173.8" width="140" height="55.52" rx="4" ry="4" style="fill: #2a2aea;"></rect>
    <text transform="translate(659.11 206.92)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtivcomposer</tspan></text>
    <g>
      <line x1="614.19" y1="136.49" x2="632.23" y2="136.49" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="631.06 140.48 637.97 136.49 631.06 132.5 631.06 140.48"></polygon>
    </g>
    <g>
      <line x1="614.19" y1="201.56" x2="632.23" y2="201.56" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="631.06 205.55 637.97 201.56 631.06 197.57 631.06 205.55"></polygon>
    </g>
    <rect x="801.75" y="173.8" width="140" height="55.52" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(827.85 206.92)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">waylandsink</tspan></text>
    <g>
      <line x1="777.97" y1="201.56" x2="796.01" y2="201.56" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="794.84 205.55 801.75 201.56 794.84 197.57 794.84 205.55"></polygon>
    </g>
    <text transform="translate(210.99 173.6)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtimltflite</tspan></text>
    <g>
      <line x1="153.73" y1="169.02" x2="170.85" y2="169.02" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="169.68 173.01 176.59 169.02 169.68 165.03 169.68 173.01"></polygon>
    </g>
    <g>
      <polyline points="228.8 91.01 228.8 113.47 85.15 113.47 85.15 135.52" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
      <polygon points="81.16 134.36 85.15 141.26 89.14 134.36 81.16 134.36"></polygon>
    </g>
  </g>
  <g>
    <polyline points="853.33 91.01 853.33 158.79 707.97 158.79 707.97 168.06" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
    <polygon points="703.98 166.89 707.97 173.8 711.96 166.89 703.98 166.89"></polygon>
  </g>
</svg>
**Figure : Pipeline for publish metadata to RedisSink**

The flow of the use case execution is as follows:

1. The camera source facilitates the input video stream, which is split into two using tee. One stream attaches to the qtimetamux and the other stream undergoes inferencing.
2. tee splits the output inference stream in two and postprocesses both the streams.

    - One stream attaches to the qtivcomposer. The Waylandsink uses this stream to render processed result on the Wayland server.
    - qtimetamux uses the other stream to attach the inference result. This stream passes to the qtimlmetaparser to extract the ML metadata and RedisSink to stream metadata over the Redis channel.

![../../_images/sample-output-redissink.png](data:image/png;base64,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)

**Figure : Sample output on redis channel**

Last Published: Apr 02, 2026

[Previous Topic
Multi model daisychain detection classification](https://docs.qualcomm.com/bundle/publicresource/80-70029-50/topics/multi-model-daisychain-detection-classification.md) [Next Topic
Run multimedia use cases](https://docs.qualcomm.com/bundle/publicresource/80-70029-50/topics/multimedia-use-cases.md)