ターミナルから 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
以上です。
これで幸せになる人がいるかはちょっと疑問ですが...