*

GStreamer Tips #2 / Overlay (Text/Clock/Time)

   

GStreamer Tips : GStreamerに関わる忘備録
第二回目の今回は、オーバーレイ表示について動作確認してみます。

オーバーレイといってもさまざまなオーバーレイがあり今回は、文字の表示/日付時刻の表示/(再生)時間を画像上にオーバーレイさせることにします。

使用実機(PC) : x86_64 Ubuntu 16.04.3 LTS
GStreamer Version : 1.12.3(2017/10時点のstable)

【textoverlay】
文字のオーバーレイ表示は textoverlay element を使用します。

export VF=/xxxx/lena256.bmp

gst-launch-1.0 uridecodebin uri=file://$VF ! imagefreeze \
! textoverlay text=”Text Overlay” halignment=center valignment=center font-desc=”Sans bold 60px” color=0xff0000ff draw-shadow=false draw-outline=false \
! videoconvert ! ximagesink

これで 文字列”Text Overlay”を 画像の中央 フォント”Sans”太字 サイズ60px でオーバレイします。
フォントカラーのdefaultは白です。
この textoverlay element のプロパティには、文字の位置決め / 装飾(影/下線)等多くのプロパティがあります。
このelementを使ってプログラミングし、文字の位置決めプロパティやcolorプロパティのアルファ値をうまく使うと、テロップのような動きや、文字の点滅、フェードアウトなんかも細工できそうです。
動画ファイルでも同じで、VFに動画ファイルを指定し、imagefreeze element を外せば 動画再生中に文字表示が可能になります。

 

【clockoverlay】
日付時刻のオーバーレイ表示は clockoverlay element を使用します。

export VF=/xxxx/lena256.bmp

gst-launch-1.0 uridecodebin uri=file://$VF ! imagefreeze ! clockoverlay text=”Clock Overlay” time-format=”%Y/%m/%d %H:%M:%S” halignment=center valignment=center font-desc=”Sans bold 60px” color=0xff00ff00 draw-shadow=false draw-outline=false ! videoconvert ! ximagesink

これで 日付時刻が表示できます。
なんだか textoverlay elementのプロパティと酷似していますね。これについては後ででてきます。

 

【timeoverlay】
(再生)時間のオーバーレイ表示は timeoverlay element を使用します。 

export VF=/xxxx/lena256.bmp

gst-launch-1.0 uridecodebin uri=file://$VF ! imagefreeze ! timeoverlay text=”Time Overlay” halignment=center valignment=center font-desc=”Sans bold 60px” color=0xffff0000 draw-shadow=false draw-outline=false ! videoconvert ! ximagesink

これで 再生時間が表示できます。
clockoverlay elementとの違いは time-formatプロパティがなく固定のフォーマット”00:00:00.000″となっていることです。
これも textoverlay elementntに酷似しています。

実はこの3elementは Pango Pluginに含まれたいわば兄弟elementで、文字表示を専門に扱うelementとなっています。ソースをみると共通使用している部分が多く見受けられます。もともと時刻にしろ時間にしろ最終的には文字で表現するので当然かもしれませんね。

最後にフォント指定<font-desc>ですが、Pango準拠になっています。こちらの環境で使用できるフォントファミリーは以下のようになっていました。

There are 169 families
Family 0: wasy10
Family 1: Latin Modern Mono Slanted
Family 2: TeX Gyre Pagella
Family 3: TG Pagella Math
Family 4: Padauk Book
Family 5: Latin Modern Mono
Family 6: Century Schoolbook L
Family 7: OpenSymbol
Family 8: Khmer OS System
Family 9: Ubuntu
Family 10: msam10
Family 11: Latin Modern Sans Demi Cond
Family 12: Trebuchet MS
Family 13: Meera
Family 14: Andale Mono
Family 15: Droid Sans Mono
Family 16: Symbola
Family 17: Atavyros
Family 18: Webdings
Family 19: Vemana2000
Family 20: KacstQurn
Family 21: Latin Modern Mono Prop
Family 22: Latin Modern Math
Family 23: Droid Sans Ethiopic
Family 24: Tibetan Machine Uni
Family 25: Maya
Family 26: Umpush
Family 27: Droid Sans Thai
Family 28: Arial Black
Family 29: Purisa
Family 30: esint10
Family 31: Pothana2000
Family 32: TeX Gyre Heros Cn
Family 33: msbm10
Family 34: DejaVu Sans Mono
Family 35: KacstBook
Family 36: KacstLetter
Family 37: TakaoEx明朝
Family 38: cmr10
Family 39: Norasi
Family 40: Musica
Family 41: Loma
Family 42: Verdana
Family 43: Takao明朝
Family 44: KacstDigital
Family 45: KacstTitleL
Family 46: mry_KacstQurn
Family 47: Latin Modern Roman
Family 48: URW Palladio L
Family 49: Droid Arabic Naskh
Family 50: Alexander
Family 51: Latin Modern Roman Unslanted
Family 52: Phetsarath OT
Family 53: Sawasdee
Family 54: Tlwg Typist
Family 55: Padauk
Family 56: Unidings
Family 57: URW Gothic L
Family 58: TeX Gyre Cursor
Family 59: Dingbats
Family 60: TeX Gyre Schola
Family 61: Gardiner
Family 62: URW Chancery L
Family 63: FreeSerif
Family 64: Times New Roman
Family 65: Ubuntu Condensed
Family 66: ori1Uni
Family 67: DejaVu Sans
Family 68: KacstOffice
Family 69: Kedage
Family 70: Latin Modern Roman Caps
Family 71: Analecta
Family 72: Aroania
Family 73: DejaVu Serif
Family 74: Kinnari
Family 75: Latin Modern Roman Dunhill
Family 76: Latin Modern Roman Slanted
Family 77: KacstArt
Family 78: NanumMyeongjo
Family 79: Lohit Punjabi
Family 80: Utopia
Family 81: rsfs10
Family 82: TlwgMono
Family 83: Avdira
Family 84: Latin Modern Sans
Family 85: Symbol
Family 86: Latin Modern Sans Quotation
Family 87: Bitstream Charter
Family 88: TeX Gyre Adventor
Family 89: NanumGothic
Family 90: KacstOne
Family 91: Anatolian
Family 92: Comic Sans MS
Family 93: Khmer OS
Family 94: cmmi10
Family 95: TeX Gyre Termes
Family 96: Liberation Sans Narrow
Family 97: Droid Sans Georgian
Family 98: Liberation Mono
Family 99: Droid Sans Japanese
Family 100: Courier 10 Pitch
Family 101: Nimbus Sans L
Family 102: TlwgTypewriter
Family 103: Takaoゴシック
Family 104: Takao Pゴシック
Family 105: TakaoExゴシック
Family 106: Akkadian
Family 107: Rachana
Family 108: Anaktoria
Family 109: Droid Serif
Family 110: Droid Sans Hebrew
Family 111: Droid Sans Fallback
Family 112: NanumBarunGothic
Family 113: TeX Gyre Chorus
Family 114: Standard Symbols L
Family 115: Lohit Gujarati
Family 116: KacstPen
Family 117: Nimbus Mono L
Family 118: Takao P明朝
Family 119: Latin Modern Mono Caps
Family 120: TG Termes Math
Family 121: KacstDecorative
Family 122: Liberation Serif
Family 123: Mallige
Family 124: Courier
Family 125: LKLUG
Family 126: Nimbus Roman No9 L
Family 127: TeX Gyre Bonum
Family 128: Latin Modern Mono Prop Light
Family 129: eufm10
Family 130: KacstPoster
Family 131: Liberation Sans
Family 132: Alfios
Family 133: Mukti Narrow
Family 134: Aegyptus
Family 135: FreeSans
Family 136: cmex10
Family 137: Latin Modern Mono Light
Family 138: Georgia
Family 139: Lohit Devanagari
Family 140: KacstNaskh
Family 141: Lohit Tamil
Family 142: Aegean
Family 143: Tlwg Typo
Family 144: KacstFarsi
Family 145: Lohit Bengali
Family 146: Arial
Family 147: Abyssinica SIL
Family 148: Waree
Family 149: KacstTitle
Family 150: gargi
Family 151: Courier New
Family 152: Saab
Family 153: TeX Gyre Heros
Family 154: Garuda
Family 155: Rekha
Family 156: KacstScreen
Family 157: Latin Modern Mono Light Cond
Family 158: Impact
Family 159: Droid Sans Armenian
Family 160: Latin Modern Roman Demi
Family 161: URW Bookman L
Family 162: FreeMono
Family 163: cmsy10
Family 164: Ubuntu Mono
Family 165: Droid Sans
Family 166: Sans
Family 167: Serif
Family 168: Monospace

今回はここまでです。

 - 未分類