はじめに
最近 VisualGDB という素晴らしいものがMSからリリースされたにも関わらず、msys2 を使って GStreamer と戯れる方法を書きます。ゴメンナサイ...
そして、いまだかつて Visual Studio Community Edition? で GStreamer と戯れたことがないので、アドベントカレンダー期間中に戯れることができたらいいな...と思ってます。
とはいっても、多くの人は gst-launch
を bash などが動く環境で触れたほうがだよね?ってことで
msys2 をインストール
- msys2: https://msys2.github.io/
pacman を使って gstreamer をインストール
以下、コピペでいけるはず
$ pacman -S \
mingw-w64-x86_64-gstreamer \
mingw-w64-x86_64-gst-libav \
mingw-w64-x86_64-gst-plugins-bad \
mingw-w64-x86_64-gst-plugins-base \
mingw-w64-x86_64-gst-plugins-good \
mingw-w64-x86_64-gst-plugins-ugly
-Qs
オプションを使って dpkg -l
みたいなことをして確認
$ pacman -Qs | grep gst
local/mingw-w64-x86_64-gst-libav 1.6.1-1
local/mingw-w64-x86_64-gst-plugins-bad 1.6.1-2
local/mingw-w64-x86_64-gst-plugins-base 1.6.1-1
local/mingw-w64-x86_64-gst-plugins-good 1.6.1-1
local/mingw-w64-x86_64-gst-plugins-ugly 1.6.1-1
local/mingw-w64-x86_64-gstreamer 1.6.1-1
しかし、この時点ではみんな大好きgst-launch
が使えません :(
PATH を通す
$ gst-launch-1.0.exe --help
bash: gst-launch-1.0.exe: command not found
$ echo 'PATH=/mingw64/bin:$PATH' >> .bashrc
$ bash
$ gst-launch-1.0.exe --help
Usage:
gst-launch-1.0 [OPTION...] PIPELINE-DESCRIPTION
Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gst Show GStreamer Options
Application Options:
-t, --tags Output tags (also known as metadata)
-c, --toc Output TOC (chapters and editions)
-v, --verbose Output status information and property notifications
-q, --quiet Do not print any progress information
-m, --messages Output messages
-X, --exclude=PROPERTY-NAME Do not output status information for the specified property if verbose output is enabled (can be used multiple times)
-f, --no-fault Do not install a fault handler
-e, --eos-on-shutdown Force EOS on sources before shutting the pipeline down
--version Print version information and exit
イケましたね! :)
おわり
ちなみに、pacman でインストールした gstreamer では、↓これらが使えます。
gst-device-monitor-1.0 gst-launch-1.0
gst-discoverer-1.0 gst-play-1.0
gst-inspect-1.0 gst-typefind-1.0
windows では v4l-utils
とかが使えないので、gst-device-monitor
が重宝します。
最後にノートPCを使っている私のような人のために Pipeline を1つだけ...
$ gst-launch-1.0 ksvideosrc device-index=0 ! decodebin ! autovideosink
gst-device-monitor
を使って、複数カメラが認識されてることを確認したうえで、device-index
の値を 1 や 2 にすると、使用するカメラを切り替えることができますのでお試しあれ!