SoX (Sound eXchange) 備忘録

サウンドファイルをコマンドラインで編集できる sox (Sound eXchange)

SoX – Sound eXchange | HomePage

を利用できれば便利かなと思い,Cygwin の標準パッケージのものを入れてみると mp3 等のサポートが無い.ということで,今度は Windows 版を入れてみると,mp3 のサポートは追加の DLL が必要とのことで,結局自分でコンパイルしてみました.

まずはソースを取ってきて展開します.

展開した中にある INSTLL を見てみるとオプションとして利用可能なライブラリの一覧があります.今回は出来る限り対応する方針でいきます.SoX のホームページの冒頭に

the Swiss Army knife of sound processing programs.

とあったので,それを実現したかっただけなのですが,当然面倒な訳で,途中で止めとけば良かったと思ったのですが後の祭りです(笑).

OpencoreAMR-NB/WB

まずは,OpencoreAMR-NB/WB からです.通常通りの手順でコンパイルとインストールが可能です.ファイル名を見て分かる通り,これは aac codec 関係ですね.無いと不便です.

opencore-amr
opencore-amr download. opencore-amr 2016-05-18 07:19:18.504000 free download. opencore-amr Audio codecs extracted from Android Open Source Project

インストールされるファイルのリストは以下の通り.

AMR-NB/WB

次は AMR-NB/WB です.AMR codec (ノキア等の音声関係コデックらしい)へ対応するためのものですね.これはたぶん使うことは無いなぁ…

AMR Codec Libraries for GNU-Linux

インストールされるファイルのリストは以下の通り.

ao

Xiph.org: libao: a cross platform audio library

libao: a cross platform audio library だそうです.これは GPL なので,Cygwin の標準パッケージに含まれています.なので,以下の3つを setup.exe から入れました.

  • libao
  • libao-devel
  • libao4

関連して libaudio0 なんかが一緒に入ってきますね.

flac

FLAC – Free Lossless Audio Codec

flac codec 関係.これも BSD ライセンスで Cygwin の標準パッケージに含まれています.従って以下の4つを setup.exe から入れました.

  • flac
  • flac-devel
  • flac-docs
  • libFLAC++6
  • libFLAC8

関係して libogg が一緒に入ってきますね.

LADSPA

元ページが消滅しています.音声にエフェクトを入れたりするときに使うプラグインの規格のようです.LGPL ライセンスなので,Cygwin の標準パッケージにあるのではないかと探してみると…ありますね.プラグインはともかくとして,

  • ladspa-sdk

のみ入れておくことにしました.

Lame MP3 encoder

LAME MP3 Encoder

これは LGPL ですが,Cygwin の標準パッケージにはありません.仕方ないのでコンパイルします.まず,vorbis 形式をサポートするためと高速化のため,以下の6つを setup.exe から追加します.

  • libvorbis
  • libvorbis-devel
  • libvorbis0
  • libvorbisenc2
  • libvorbisfile3
  • vorbis-tools
  • nasm

何故か libspeex 等もインストールされます.あとはいつもの通り ./configure & make & make install なのですが,–with-vorbis は認識できないと出てくる.INSTALL ファイルの情報が古いのかなぁ….まぁどうせ sox のために必要になるので良いのですが….あと,build target を –build=x86_64-pc-cygwin のように指定しないと configure できません.

途中で,

となりますが,

Windows(Cygwin)でも mpd + ncmpcppを使いたい – Qiita
mpdとは、音楽ファイルやプレイリストを管理するサーバーです。mpdは単体だけでは動きません。操作するクライアント(ncmpcpp等)が必要になります。今回紹介するのはmpdとncmpcppをCygwin上でのビルド方法です。mpdと…

によると,

のように修正して

で完了です.結果的に以下のファイルがインストールされました.

Twolame MP2 enc.

TwoLAME – MPEG Audio Layer 2 Encoder

mp2 用の encoder のようです.LGPL ですが,Cygwin の標準パッケージにはありませんので,ソースからコンパイルしますが,configure のメッセージから見る限り

  • libsndfile-util
  • libsndfile-devel
  • libsndfile1

が必要そうなので,事前に setup.exe で入れておきます.また,DLL ファイルが作られるように,libtwolame/Makfile を書き換えます.

これで以下のファイルがインストールされます.

libltdl

https://www.gnu.org/software/libtool/

これはさすがに標準パッケージに入っているはずです.setup.exe から

  • libtool

を入れて終了です.

MAD MP3 decoder/MP3 ID3 tags

Underbit: MAD (MPEG Audio Decoder)

GPL ですが libid3tag を除き Cygwin の標準パッケージとしては含まれていません.仕方ないのでコンパイルします.まずは libmad からです.

途中で

と怒られてしまいますが,このオプションは gcc ver 4.3 で削除されています.また,libmad の bug で DLL が作られないのを防ぐため,CFLAG=”-no-undefined” を追加します.

のように Makefile を書き換え,

します.次は libid3tag ですが,これは標準パッケージとして含まれていますので,setup.exe で

  • libid3tag-devel
  • libid3tag0

を追加します.libmad でインストールされるファイルは以下の通りとなります.

Magic

The Fine Free File Command

“a file type guesser” だそうです.所謂 file コマンドのことです.当然 Cygwin の標準パッケージに含まれていますが,念のため,

  • file-devel

のみ入れておきます.

Ogg Vorbis

Vorbis.com

lame を入れたときについでに入れたので何もやることはありません.

Opus

Opus Codec

Opus codec です.フリーの PBX (sip server) の Asterisk 等で,高音質な codec として使えるのを見たことがあります.Cygwin の標準パッケージに含まれているので,setup.exe で

  • libopus-devel
  • libopus0
  • libopusfile-devel
  • libopusfile0
  • libopus-doc
  • libopusfile-doc

を入れて終わりです.

PNG

http://www.libpng.org/pub/png/

PNG(Portagle Network Graphics)形式に対応するためのライブラリ.もちろん Cygwin の標準パッケージに含まれていますが,どうも 1.2 と 1.6系列があるようです.とりあえず 1.6系列に対応する

  • libpng-devel
  • libpng16
  • libpng16-devel

のみ setup.exe から入れました.

Sndfile

http://www.mega-nerd.com/libsndfile/

libsndfile ですね.これも Cygwin の標準パッケージに含まれていますし,この時点だと,上のどれかをインストールした際に依存関係からインストールされてしまうようです.従って何もする必要がありません.

WavPack

WavPack Audio Compression

Cygwin の標準パッケージに含まれています.setup.exe から以下の3つのファイルをインストールします.

  • wavpack
  • libwavpack1
  • libwavpack-devel
SOX

Optional のライブラリが全て揃いましたので,sox のコンパイルとインストールを行います.まずは,

  • dos2unix

を setup.exe を用いて Cygwin の標準パッケージからインストールしてから,configure & make & make install という手順と言いたいところですが,これでは上手くいきません.代わりに cygbuild という cygwin 環境でビルドする専用のスクリプトが用意されています.

で完了です.cygbuild の途中で表示される build option のリストより,ほぼ全ての機能が有効化されているいることも確認できます.インストールされるファイルは以下の通り.

なお,cygbuild の最後に,sox-14.4.2-cygwin32.zip というファイル名で sox を cygwin 環境下以外で動作させるために必要なファイルを纏めたものが作られます.ただし,ライセンスの関係か mp3 関係は除外されているようですね.mp3 のサポートを有効にするには

  • cygmad-0.dll
  • cygmp3lame-0.dll

をさらに追加します.

問題点

これで mp3 を含む様々なファイルに対応できたのですが,日本語を含むファイル名を持つファイルを読み込ませようとすると,

と表示され,エラーとなり止まります.う~ん.何が問題なのか今のところ分かっていません.どうしたものか….

スポンサーリンク
large rectangle advertisement

フォローする

スポンサーリンク
large rectangle advertisement