*

GStreamer Tips #3 / Overlay (Image/Subtitle)

   

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

前回、テキストのオーバーレイ表示についてみていきました。
今回は静止画像と字幕(オーバーレイと表現すべきかどうかは疑問ではありますが….)についてみていくことにします。

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

【Image】
静止画像のオーバーレイは、gdkpixbufoverlay element を使用します。
いつものlenaさんの前面にペンギン君をのせてみます。ペンギン君は、アルファ付きとアルファなしを使用します。

export VF=/xxxx/lena512.png
export OF=/xxxx/pen256.png (オーバーレイする画像)

gst-launch-1.0 -ev uridecodebin uri=file://$VF ! imagefreeze \
! gdkpixbufoverlay location=$OF alpha=1 relative-x=0.5 relative-y=0.5 ! videoconvert ! ximagesink

これでlenaさんの左下前面にペンギン君が表示されたと思います。
gdkpixbufoverlay element のプロパティには、画像ファイルをlocationで指定し、位置やサイズを指定するプロパティがあります。また alphaプロパティは、画像にアルファ値を与えて透過処理をおこなうことができます。
これらの位置/サイズを変化させるプログラムをつくれば、アニメーション的な動作、アルファ値を変化させればフェード効果をもたせることができます。

アルファなしペンギン君 アルファ付きペンギン君  アルファ付きペンギン君にalpha=0.5を指定

 

【Subtitle】
”subtitle”とは、本来 ”字幕” を意味します。
前回のテキスト文字のオーバーレイと同じような効果もあり、ご紹介しておきます。
こちらは再生時間に伴って表示文言を変更することができます。まさしく映画の字幕です。
表示文言は .srt ファイルに記述していきます。(srtファイルの例は最後に示します。)

export VF=/xxxx/lena512.png
export ST=/xxxx/subtitle.srt

gst-launch-1.0 -ev uridecodebin uri=file://$VF ! imagefreeze ! videoconvert ! textoverlay name=txt halignment=center valignment=bottom font-desc=”Sans bold 30px” ! ximagesink filesrc location=$ST ! subparse ! txt.

これは textoverlay element を使っています。
textoverlayは、第二回にでてきたelementです。 このtextプロパティに subparse elemet でパースした$STファイル内の文言を指定した時間に表示させることになります。
わかりにくいですが、
”textoverlay name=txt” の ”txt” と ”filesrc location=$ST ! subparse ! txt.” の ”txt.” が 紐ついています。

 

export VF=/xxxx/lena512.png
export ST=/xxxx/subtitle.srt

gst-launch-1.0 -ev uridecodebin uri=file://$VF ! imagefreeze ! videoconvert ! subtitleoverlay name=txt font-desc=”Sans bold 30px” ! ximagesink  filesrc location=$ST ! subparse ! txt.

これは subtitleoverlay element を使っています。
textoverlay element との違いは、表示位置の指定ができない(下段中央固定)ようです。

残念ながら、動画のupは控えておりお見せすることができませんが、こちらではlenaさんが ”君が代”を歌っています。

以下が今回使用した srt ファイル(subtitle.srt)です。

1
00:00:00,100 –> 00:00:5,200
「君が代」 斉唱

2
00:00:06,200 –> 00:00:11,200
君が代は

3
00:00:12,700 –> 00:00:22,700
千代に八千代に

4
00:00:23,200 –> 00:00:28,200
さざれ石の

5
00:00:28,700 –> 00:00:36,700
いわおとなりて

6
00:00:37,200 –> 00:00:47,200
こけのむすまで

srtファイルは、テキスト記述ですので変更修正は簡単です。 時間内に表示する文言を記述すれば良いだけですね。
このように自身で作成した動画に、字幕やコメントを簡単にオーバーレイ表示させることができます。

今回はここまで。

 

 

 - 未分類