オーマイガー東京

オーマイガー東京というブログを24歳東京暮らし新卒2年目のエンジニアが書いています。

GStreamerのdecodebinが何やってるか探る

Gstreamerの中でも勝手に適切な処理を行ってくれる便利なdecodebinですが、
中身何やってるのか知りたくなる時があります。
そんな時にどうやって中身を知るのかをまとめました。

※対象はOSXです。

f:id:maru_33:20180304185821p:plain

まずツールのインストールします

$ brew install graphviz


開けるファイルを用意します

何かしら開けるファイルを自分のpcに送る、もしくは、作成します。
僕はraspiから以下のコマンドで送ってきてます。(raspiとpcは同一Lan上にあります。)

$ gst-launch-1.0 v4l2src ! videoconvert ! omxh264enc ! rtph264pay pt=96 config-interval=1 ! udpsink host=192.168.100.102 port=1234


置いておきたいディレクトリを作っておきます

$ mkdir ~/gst


そして、PCで受け取る時に一工夫

$ GST_DEBUG_DUMP_DOT_DIR=~/gst gst-launch-1.0 udpsrc port=1234 ! application/x-rtp ! rtph264depay ! decodebin ! autovideosink

これで、先ほど作成した~/gstに色々できてるはずです。


画像にする!

その中の、0.XX.XX.XXXXXXXXX-gst-launch.PAUSED_PLAYING.dotに対して

$ dot -T png -o gst_details.png 0.XX.XX.XXXXXXXXX-gst-launch.PAUSED_PLAYING.dot

こんな感じにすれば、同じフォルダ内に画像ができてるはずです! やったね!