shonen.hateblo.jp

やったこと,しらべたことを書く.

gstreamer 触りだけ

note: 本記事は 2019/10/06 に執筆されたまま下書きに眠っていました

gstreamerとは

GStreamer: a flexible, fast and multiplatform multimedia framework

gstreamer.freedesktop.org

パイプのようなストリームベースで動作を記述するCUIのツールが面白くて触ってみました。

確認環境

Ubuntu 19.04

インストール方法

ここに書いてあります

gstreamer.freedesktop.org

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 を見つけられるはず。

gstreamer.freedesktop.org

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