【GStreamer】mac上でローカルにあるmp4をgst-launch-1.0のplaybinで再生する
ひとこと
macでGStreamerの導入方法し、gst-launch-1.0のplaybinを利用してmp4の動画を視聴する日本語の記事がなかったのでメモ。
目次
環境
- macOS Catalina バージョン 10.15.5
インストール
インストールには、homebrew
を使います。以下のコードでGStreamer関連のものをインストール[1]。
$ brew install gstreamer gst-plugins-base gst-plugins-good \ gst-plugins-bad gst-plugins-ugly gst-libav gst-rtsp-server \ gst-editing-services
インストールには結構な時間がかかります。インストールができたか確認するには、以下のコマンドを実行します。
$ gst-launch-1.0 --version
私が上記コマンドを実行すると、以下のように表示されました。
gst-launch-1.0 version 1.16.2 GStreamer 1.16.2 Unknown package origin
実行
インストールが問題なくできたなら、gst-launch-1.0 playbin
を実効できるはずです。
ちなみにplaybin
とは[2]、
オーディオプレーヤーやビデオプレーヤーにスタンドアロンのオールインワンアブストラクションを提供しており、オーディオとビデオの両方のファイルと機能を処理できる
以下のコマンドでmp4の動画を視聴できるようになります。
$ gst-launch-1.0 playbin uri=file:///<絶対パス>
例:macのユーザー名がhogehoge
で、デスクトップにsample.mp4
というファイルがある場合は、以下のようになります。
$ gst-launch-1.0 playbin uri=file:///Users/hogehoge/Desktop/sample.mp4
上記コマンドを実行すると、動画を表示するウインドウが出現して、動画が再生されます。
つまったところ
gst-launch-1.0 playbin
の次の文字列にはパスが入るはずなのだけれども、ローカルのファイルのパスを入力しても以下のように表示されて動画を視聴することができなかった。
パイプラインを一時停止 (PAUSED) にしています... ERROR: Pipeline doesn't want to pause. ERROR: from element /GstFileSrc:source: リソースが見つかりません
これの原因が、uri=
のつけ忘れだったり、file:///
のつけ忘れだったり、絶対パスをいれなければならないところに相対パスを入力してしまったりと正しく動画のパスを入力できていないことです。これに気づいたのが、記事[3]です。
参考文献
- GStreamer / gstreamer-rs · GitLab, 入手先 https://gitlab.freedesktop.org/gstreamer/gstreamer-rs
- playbin, 入手先 https://gstreamer.freedesktop.org/documentation/playback/playbin.html?gi-language=c
- python - gstreamer uri vs files: Cannot play local video file - Stack Overflow, 入手先 https://stackoverflow.com/questions/35195591/gstreamer-uri-vs-files-cannot-play-local-video-file