# News ticker for gstreamer

**URL:** <https://discourse.gstreamer.org/t/news-ticker-for-gstreamer/3427>\
**Category:** General Discussion\
**Created:** [October 19, 2024, 2:31pm UTC](https://discourse.gstreamer.org/t/news-ticker-for-gstreamer/3427 "2024-10-19T14:31:15Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![TVforME](https://discourse.gstreamer.org/user_avatar/discourse.gstreamer.org/tvforme/32/754_2.png) [@TVforME](https://discourse.gstreamer.org/u/TVforME)\
**Post date:** [October 19, 2024, 2:31pm UTC](https://discourse.gstreamer.org/t/news-ticker-for-gstreamer/3427/1 "2024-10-19T14:31:15Z")

</div>

Hello All,  
I believe is easy to create a new ticker in ffmpeg using for example :- `-filter_complex "[0:v]drawbox=x=0:y=1020:w=1920:h=40:color=white@0.6:t=fill drawtext=textfile='/home/dev/files/scroller.txt':x=(mod(-t*55\,(1920-200)+text_w)-text_w):y=1030:\ fontfile='/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf':fontsize=28:fontcolor=darkslategray:box=0[base];\ [2:v]scale=-1:40[logo];[base][logo]overlay=x=10:y=1020`

Is there any way to do the same in Gstreamer?

if not, how hard is it to develop a plugin?

---

<div class="post-metadata">

**Author:** ![slomo](https://discourse.gstreamer.org/user_avatar/discourse.gstreamer.org/slomo/32/4_2.png) [@slomo](https://discourse.gstreamer.org/u/slomo)\
**Post date:** [October 21, 2024, 1:42pm UTC](https://discourse.gstreamer.org/t/news-ticker-for-gstreamer/3427/2 "2024-10-21T13:42:31Z")

</div>

The easiest would probably be via the `overlaycomposition` element, and then you create the actual running text with e.g. Pango or skia.

---

<div class="post-metadata">

**Author:** ![TVforME](https://discourse.gstreamer.org/user_avatar/discourse.gstreamer.org/tvforme/32/754_2.png) [@TVforME](https://discourse.gstreamer.org/u/TVforME)\
**Post date:** [October 26, 2024, 11:19am UTC](https://discourse.gstreamer.org/t/news-ticker-for-gstreamer/3427/3 "2024-10-26T11:19:43Z")

</div>

Thanks @slomo

Is there a plan to develop a scroller element for gstreamer?

I did look at Skia which is new over using Pango… All a bit out of my development skill level.

Any example links and has anyone successfully do a scroller? using Textoverlay and dynamically changing the x, y position I’d suspect be waste of CPU cycles?

---

<div class="post-metadata">

**Author:** ![slomo](https://discourse.gstreamer.org/user_avatar/discourse.gstreamer.org/slomo/32/4_2.png) [@slomo](https://discourse.gstreamer.org/u/slomo)\
**Post date:** [October 27, 2024, 9:16am UTC](https://discourse.gstreamer.org/t/news-ticker-for-gstreamer/3427/4 "2024-10-27T09:16:32Z")

</div>

> [@TVforME](#):
>
> Is there a plan to develop a scroller element for gstreamer?

Not that I’m aware of but if someone wants to implement such an element…

> [@TVforME](#):
>
> has anyone successfully do a scroller

I’ve implemented that a couple of times with cairo and Pango

---

<div class="post-metadata">

**Author:** ![TVforME](https://discourse.gstreamer.org/user_avatar/discourse.gstreamer.org/tvforme/32/754_2.png) [@TVforME](https://discourse.gstreamer.org/u/TVforME)\
**Post date:** [October 27, 2024, 12:08pm UTC](https://discourse.gstreamer.org/t/news-ticker-for-gstreamer/3427/5 "2024-10-27T12:08:51Z")

</div>

Hello @slomo ,  
Do you happen to have an example snippet of code?

C is ok I can convert to Go. Sure there is cgo bindings for Cairo library.

---

<div class="post-metadata">

**Author:** ![slomo](https://discourse.gstreamer.org/user_avatar/discourse.gstreamer.org/slomo/32/4_2.png) [@slomo](https://discourse.gstreamer.org/u/slomo)\
**Post date:** [October 27, 2024, 12:35pm UTC](https://discourse.gstreamer.org/t/news-ticker-for-gstreamer/3427/6 "2024-10-27T12:35:27Z")

</div>

Sorry, I can’t. It’s all in proprietary code, and each of the cases had special requirements.

It’s not really hard though: look at how `textoverlay` renders text. Do something like that based on your requirements to get pixels with your text, and then clip and offset it over time when overlaying it on top of the video.

---

<div class="post-metadata">

**Author:** ![TVforME](https://discourse.gstreamer.org/user_avatar/discourse.gstreamer.org/tvforme/32/754_2.png) [@TVforME](https://discourse.gstreamer.org/u/TVforME)\
**Post date:** [October 28, 2024, 1:00am UTC](https://discourse.gstreamer.org/t/news-ticker-for-gstreamer/3427/7 "2024-10-28T01:00:52Z")

</div>

Hello again @slomo ,

> Blockquote Sorry, I can’t. It’s all in proprietary code, and each of the cases had special requirements.

Fully understand our situation for an example and NDA.

I found a gem in the ruff with the link below which gives the meat using cairooverlay element attaching a canvas to the element.

Need to translate to Go however.

[on-three/video-text-relay: Simple Gstreamer based video text overlay. Driven by JSON RPC calls.](https://github.com/on-three/video-text-relay)

Thanks
