text overlays fade-in/out effect

Lawrence Siden lsiden at gmail.com
Tue Feb 21 22:37:08 UTC 2017


Hi, I have a simple pipeline that mixes subtitles over a pre-made video:

  5     gst-launch-1.0 \
>   6         filesrc location=sample_videos/my-video.mp4 ! decodebin !
> mixer.sink_0 \
>   7         filesrc location=subtitles.srt ! subparse ! textrender !
>  mixer.sink_1 \
>   8         videomixer name=mixer sink_0::zorder=2 sink_1::zorder=3
> sink_1::ypos=-25 sink_1::alpha=1 \
>   9             ! video/x-raw, height=540 \


My client wants the subtitles to fade in and fade out.

I have spent the past few days reading Gstreamer docs (I'm a newbie to
Gstreamer and to video processing) and am still not sure of how best to
implement this.

The videomixer element has a sink pad with an alpha parameter that I
believe can be modified at runtime. Therefore, I could implement a *control
source* (see section 16.2 of gstreamer-manual.pdf) that can independently
parse the SRT file. Then I can connect that to the appropriate mixer sink
pad to "slide" its alpha parameter when a subtitle first appears to achieve
a fade-in effect. Ditto for the fade-out effect when the duration of the
subtitle is about to end. (I can easily parameterize the length of the fade
effects.)

But I am wondering if there might be a better approach. For example, the
subparse element already parses the SRT file so I could clone it and write
a new plugin that also creates the above-mentioned control-source, which I
can then access from my app and connect to the mixer sink pad.

Or, I could clone the textrender element to add a fade-in fade-out effect
when subtitles change. This seems like it might be the cleanest and most
sensible way to achieve my goal, but I don't have enough experience to know
for sure.

Does anyone have an opinion on the pros and cons of the different
approaches?

Thanks,

-Larry Siden, http://plus.google.com/+LarrySiden
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170221/d292a047/attachment-0001.html>


More information about the gstreamer-devel mailing list