# UI Overlay on Gstreamer

**URL:** <https://forums.developer.nvidia.com/t/ui-overlay-on-gstreamer/384730>\
**Category:** Jetson Orin Nano\
**Tags:** nvbugs, gstreamer\
**Created:** [September 30, 2026, 5:25am UTC](https://forums.developer.nvidia.com/t/ui-overlay-on-gstreamer/384730 "2026-09-30T05:25:36Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![elsa.maria](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@elsa.maria](https://forums.developer.nvidia.com/u/elsa.maria)\
**Post date:** [September 30, 2026, 5:25am UTC](https://forums.developer.nvidia.com/t/ui-overlay-on-gstreamer/384730/1 "2026-09-30T05:25:36Z")

</div>

Hi,

Could someone recommend the best solution to render dynamic overlays in video in gstreamer.

---

<div class="post-metadata">

**Author:** ![DaneLLL](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/danelll/32/14043_2.png) [@DaneLLL](https://forums.developer.nvidia.com/u/DaneLLL)\
**Post date:** [September 30, 2026, 6:23am UTC](https://forums.developer.nvidia.com/t/ui-overlay-on-gstreamer/384730/4 "2026-09-30T06:23:52Z")

</div>

Hi,  
There is no existing sample. A possible solution is to access the NvBufSurface and use cairo APIs to put UI to the NvBufSurface. You can convert the surface to RGBA through _nvvidconv_ plugin, and implement the UI code in the plugin.

Source code of nvvidconv is in

> [Jetson Linux Release 36.5.2 | NVIDIA Developer](https://developer.nvidia.com/embedded/jetson-linux-r3652)  
> Driver Package (BSP) Sources

Sample of using cairo APIs:  
[Tx2-4g r32.3.1 nvivafilter performance - #16 by DaneLLL](https://forums.developer.nvidia.com/t/tx2-4g-r32-3-1-nvivafilter-performance/157736/16)

---

<div class="post-metadata">

**Author:** ![elsa.maria](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@elsa.maria](https://forums.developer.nvidia.com/u/elsa.maria)\
**Post date:** [October 6, 2026, 4:49am UTC](https://forums.developer.nvidia.com/t/ui-overlay-on-gstreamer/384730/5 "2026-10-06T04:49:18Z")

</div>

> [@DaneLLL](#):
>
> A possible solution is to access the NvBufSurface and use cairo APIs to put UI to the NvBufSurface. You can convert the surface to RGBA through _nvvidconv_ plugin, and implement the UI code in the plugin.

Cairo utilizes CPU to draw the UI right?

Is there some hardware accelerator options for rendering the UI?

Further, I could not find any proper documentation for Cairo APIs

FYI: I am using Jetson Orin Nano with Jetpack 6.2.1

---

<div class="post-metadata">

**Author:** ![wichiu](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/wichiu/32/500156_2.png) [@wichiu](https://forums.developer.nvidia.com/u/wichiu)\
**Post date:** [October 7, 2026, 3:41am UTC](https://forums.developer.nvidia.com/t/ui-overlay-on-gstreamer/384730/7 "2026-10-07T03:41:13Z")

</div>

Hi,

For your questions,

1. Yes.
2. No. If you want, you could write CUDA code to implement it by yourself.

And I implemented a sample patch for your scenario based on our existing pipeline.  
You could refer to the attached Cairo overlay sample. We tested it on an AGX Orin Developer Kit running Jetson Linux r39.2.1.  
[cario\_sample\_patch.tar.xz](https://forums.developer.nvidia.com/uploads/short-url/hSDhdCglAAu6jI5H8fM9CVV4pNo.xz) (2.8 KB)

Thanks.

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/system/32/68080_2.png) [@system](https://forums.developer.nvidia.com/u/system)\
**Post date:** [November 11, 2026, 1:36am UTC](https://forums.developer.nvidia.com/t/ui-overlay-on-gstreamer/384730/9 "2026-11-11T01:36:49Z")

</div>

Closed on November 11, 2026, 1:36am UTC

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
