textoverlay

textoverlay — Adds text strings on top of a video buffer

Synopsis




            GstTextOverlay;
enum        GstTextOverlayVAlign;
enum        GstTextOverlayHAlign;
enum        GstTextOverlayWrapMode;

Object Hierarchy


  GObject
   +----GstObject
         +----GstElement
               +----GstTextOverlay
                     +----GstTimeOverlay
                     +----GstClockOverlay

Properties


  "deltax"               gint                  : Read / Write
  "deltay"               gint                  : Read / Write
  "font-desc"            gchararray            : Write
  "halign"               gchararray            : Write
  "shaded-background"    gboolean              : Read / Write
  "text"                 gchararray            : Read / Write
  "valign"               gchararray            : Write
  "wrap-mode"            GstTextOverlayWrapMode  : Read / Write
  "xpad"                 gint                  : Read / Write
  "ypad"                 gint                  : Read / Write
  "halignment"           GstTextOverlayHAlign  : Read / Write
  "valignment"           GstTextOverlayVAlign  : Read / Write

Description

This plugin renders text on top of a video stream. This can be either static text or text from buffers received on the text sink pad, e.g. as produced by the subparse element. If the text sink pad is not linked, the text set via the "text" property will be rendered. If the text sink pad is linked, text will be rendered as it is received on that pad, honouring and matching the buffer timestamps of both input streams.

The text can contain newline characters and text wrapping is enabled by default.

Here is a simple pipeline that displays a static text in the top left corner of the video picture:

gst-launch -v videotestsrc ! textoverlay text="Room A" valign=top halign=left ! xvimagesink

Here is another pipeline that displays subtitles from an .srt subtitle file, centered at the bottom of the picture and with a rectangular shading around the text in the background:

gst-launch -v filesrc location=subtitles.srt ! subparse ! txt.   videotestsrc ! timeoverlay ! textoverlay name=txt shaded-background=yes ! xvimagesink

If you do not have such a subtitle file, create one looking like this in a text editor:

1
00:00:03,000 --> 00:00:05,000
Hello? (3-5s)
 
2
00:00:08,000 --> 00:00:13,000
Yes, this is a subtitle. Don't
you like it? (8-13s)
 
3
00:00:18,826 --> 00:01:02,886
Uh? What are you talking about?
I don't understand  (18-62s)

Element Information

plugin pango pango pangoauthorDavid Schleef <ds@schleef.org>David Schleef <ds@schleef.org>classFilter/Editor/VideoFilter/Editor/Video
plugin pango
author David Schleef <ds@schleef.org>
class Filter/Editor/Video

Details

GstTextOverlay

typedef struct _GstTextOverlay GstTextOverlay;

Opaque textoverlay object structure


enum GstTextOverlayVAlign

typedef enum {
    GST_TEXT_OVERLAY_VALIGN_BASELINE,
    GST_TEXT_OVERLAY_VALIGN_BOTTOM,
    GST_TEXT_OVERLAY_VALIGN_TOP
} GstTextOverlayVAlign;

Vertical alignment of the text.

GST_TEXT_OVERLAY_VALIGN_BASELINEGST_TEXT_OVERLAY_VALIGN_BASELINE draw text on the baseline draw text on the baseline GST_TEXT_OVERLAY_VALIGN_BOTTOMGST_TEXT_OVERLAY_VALIGN_BOTTOM draw text on the bottom draw text on the bottom GST_TEXT_OVERLAY_VALIGN_TOPGST_TEXT_OVERLAY_VALIGN_TOP draw test on top draw test on top
GST_TEXT_OVERLAY_VALIGN_BASELINE draw text on the baseline
GST_TEXT_OVERLAY_VALIGN_BOTTOM draw text on the bottom
GST_TEXT_OVERLAY_VALIGN_TOP draw test on top

enum GstTextOverlayHAlign

typedef enum {
    GST_TEXT_OVERLAY_HALIGN_LEFT,
    GST_TEXT_OVERLAY_HALIGN_CENTER,
    GST_TEXT_OVERLAY_HALIGN_RIGHT
} GstTextOverlayHAlign;

Horizontal alignment of the text.

GST_TEXT_OVERLAY_HALIGN_LEFTGST_TEXT_OVERLAY_HALIGN_LEFT align text left align text left GST_TEXT_OVERLAY_HALIGN_CENTERGST_TEXT_OVERLAY_HALIGN_CENTER align text center align text center GST_TEXT_OVERLAY_HALIGN_RIGHTGST_TEXT_OVERLAY_HALIGN_RIGHT align text right align text right
GST_TEXT_OVERLAY_HALIGN_LEFT align text left
GST_TEXT_OVERLAY_HALIGN_CENTER align text center
GST_TEXT_OVERLAY_HALIGN_RIGHT align text right

enum GstTextOverlayWrapMode

typedef enum {
    GST_TEXT_OVERLAY_WRAP_MODE_NONE = -1,
    GST_TEXT_OVERLAY_WRAP_MODE_WORD = PANGO_WRAP_WORD,
    GST_TEXT_OVERLAY_WRAP_MODE_CHAR = PANGO_WRAP_CHAR,
    GST_TEXT_OVERLAY_WRAP_MODE_WORD_CHAR = PANGO_WRAP_WORD_CHAR
} GstTextOverlayWrapMode;

Whether to wrap the text and if so how.

GST_TEXT_OVERLAY_WRAP_MODE_NONEGST_TEXT_OVERLAY_WRAP_MODE_NONE no wrapping no wrapping GST_TEXT_OVERLAY_WRAP_MODE_WORDGST_TEXT_OVERLAY_WRAP_MODE_WORD do word wrapping do word wrapping GST_TEXT_OVERLAY_WRAP_MODE_CHARGST_TEXT_OVERLAY_WRAP_MODE_CHAR do char wrapping do char wrapping GST_TEXT_OVERLAY_WRAP_MODE_WORD_CHARGST_TEXT_OVERLAY_WRAP_MODE_WORD_CHAR do word and char wrapping do word and char wrapping
GST_TEXT_OVERLAY_WRAP_MODE_NONE no wrapping
GST_TEXT_OVERLAY_WRAP_MODE_WORD do word wrapping
GST_TEXT_OVERLAY_WRAP_MODE_CHAR do char wrapping
GST_TEXT_OVERLAY_WRAP_MODE_WORD_CHAR do word and char wrapping

Property Details

The "deltax" property

  "deltax"               gint                  : Read / Write

Shift X position to the left or to the right. Unit is pixels.

Default value: 0


The "deltay" property

  "deltay"               gint                  : Read / Write

Shift Y position up or down. Unit is pixels.

Default value: 0


The "font-desc" property

  "font-desc"            gchararray            : Write

Pango font description of font to be used for rendering. See documentation of pango_font_description_from_string for syntax.

Default value: ""


The "halign" property

  "halign"               gchararray            : Write

Horizontal alignment of the text (deprecated; use halignment).

Default value: "center"


The "shaded-background" property

  "shaded-background"    gboolean              : Read / Write

Whether to shade the background under the text area.

Default value: FALSE


The "text" property

  "text"                 gchararray            : Read / Write

Text to be display.

Default value: ""


The "valign" property

  "valign"               gchararray            : Write

Vertical alignment of the text (deprecated; use valignment).

Default value: "baseline"


The "wrap-mode" property

  "wrap-mode"            GstTextOverlayWrapMode  : Read / Write

Whether to wrap the text and if so how.

Default value: wordchar


The "xpad" property

  "xpad"                 gint                  : Read / Write

Horizontal paddding when using left/right alignment.

Allowed values: >= 0

Default value: 25


The "ypad" property

  "ypad"                 gint                  : Read / Write

Vertical padding when using top/bottom alignment.

Allowed values: >= 0

Default value: 25


The "halignment" property

  "halignment"           GstTextOverlayHAlign  : Read / Write

Horizontal alignment of the text.

Default value: center


The "valignment" property

  "valignment"           GstTextOverlayVAlign  : Read / Write

Vertical alignment of the text.

Default value: baseline

See Also

GstTextRender, GstClockOverlay, GstTimeOverlay, GstSubParse