gstreamer 触りだけ
note: 本記事は 2019/10/06 に執筆されたまま下書きに眠っていました
gstreamerとは
GStreamer: a flexible, fast and multiplatform multimedia framework
パイプのようなストリームベースで動作を記述するCUIのツールが面白くて触ってみました。
確認環境
Ubuntu 19.04
インストール方法
ここに書いてあります
apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
RaspberryPi では一部のパッケージが入っていませんでした。gstreamer1.0-qt5
等。
Hello World
基本。
gst-launch-1.0 videotestsrc ! autovideosink
videotestsrc から動画が出てきていて、autovideosinkに流し込むイメージです。
ありがちな?画面が出れば成功。
プラグイン一覧はここにある。videotestsrc と autovideosink を見つけられるはず。
crop
パラメータの渡し方。
gst-launch-1.0 videotestsrc ! videobox left=50 top=50 right=50 bottom=50 ! autovideosink
隅50pxをcropする。
https://gstreamer.freedesktop.org/documentation/videobox/index.html?gi-language=c#videobox
変換
videoconvertを使う。以下はフレームレートを2fpsに落としている。
gst-launch-1.0 videotestsrc ! videoconvert ! video/x-raw,framerate=2/1 ! autovideosink
フレームレートを弄るだけならvideorateでも良い(?)
gst-launch-1.0 videotestsrc ! videoconvert ! video/x-raw,framerate=2/1 ! autovideosink
画面キャプチャ
gst-launch-1.0 ximagesrc ! ximagesink
autovideosink
は使えませんでした。以下のようにvideoconvertを挟むと出来ます。
gst-launch-1.0 ximagesrc ! videoconvert ! autovideosink