ターミナルから GStreamer でフォルダー丸ごと再生してみよう

音質で定評があるターミナルコマンドの afplay ですが、フォルダー丸ごとの再生は苦手ですし、パイプ処理を受け付けてくれません。

ファイル1つ毎に面倒だという方は、GStreamer の音楽再生を試す価値はあります。動画もできるらしいですが、作業用 BGM が個人的な目的なので、勉強していません。

インストールは Homebrew を使えます。

$ brew install gstreamer

$ brew install gst-plugins-base

$ brew install gst-plugins-good

Apple Lossless Audio Codec (略称:ALAC) もお使いになる諸氏は、gst-libav も入れましょう。

$ brew install gst-libav

次に、適宜、ファイルのあるフォルダーまで `cd` で移動します。`filename.foo` という音楽のファイルを再生する場合は、

$ gst-launch-1.0 filesrc location=filename.foo  ! decodebin ! audioconvert ! autoaudiosink

と、言う感じです。 `! decodebin ! audioconvert ! autoaudiosink` でデコードして、変換して、スピーカーに埋め込まないと再生されないのは、`afplay` と比較すると少し悲し感じです。

では、フォルダーの中の m4a 形式のファイルを丸ごとというときは、zsh の for を使うと、意外と短く書けます。

$  for f (*.m4a) gst-launch-1.0 -q filesrc location=$f ! decodebin ! audioconvert ! autoaudiosink

下記でも同じです。

$ for f in  *.m4a ; do                                                                       
gst-launch-1.0 -q filesrc location=$f ! decodebin ! audioconvert ! autoaudiosink
done

以上です。

これで幸せになる人がいるかはちょっと疑問ですが...

B! LINE