mpg123

MPEG 1.0/2.0 形式のオーディオファイルの演奏 (レイヤ 1, 2, 3 対応)

mpg123 - MPEG 1.0/2.0 形式のオーディオファイルの演奏 (レイヤ 1, 2, 3 対応)
mpg123 [ -tscvqy01m24 ] [ -b size ] [ -k num ] [ -n num ] [ -f factor ] [ -r rate ] [ -g gain ] [ -a dev ] [ -o s | -o h | -o l ] [ -d n ] [ -h n ] [ -p proxy ] [ -@ file ] file ... | URL ... | -
mpg123 は file や URL を読み込み(いずれも複数指定可。また``-'' を指定すると標準入力から読 み込みます)、これらをオーディオデバイスで演奏するか(デフォルトの動作)、 標準出力に出力します。 file / URL は MPEG-1/2 のオーディオビットストリームであるものとします。
mpg123 のオプションは、伝統的な POSIX 形式でも GNU 形式の長いオプション名でも 指定できます。POSIX 形式のオプションは ``-'' で始まり、GNU 形式の オプションは ``--'' で始まります。
-t , --test
テストモード。オーディオストリームをデコードしますが、出力は行いません。
-s , --stdout
デコードしたオーディオのサンプル音を標準出力に出力します。 オーディオデバイスを使った演奏は行いません。 お使いのハードウェアが mpg123 でサポートされていなければ、このオプションを使わなければなりません。 出力フォーマットは raw (ヘッダ無し)形式、16 ビット、ステレオの PCM オー ディオデータであり、そのバイト順はホストに従います。
-c , --check
フィルタレンジの違反をチェックし、これが起こるとフレームごとに報告しま す。
-v , --verbose
詳しいメッセージを出力するようにします。例えば、デコード中に フレーム番号を表示します。
-q , --quiet
静かに動作するようにします。診断メッセージを表示しなくなります。
-y , --resync
入力ファイルでエラーが起きた場合に、再び同期を取ってデコートを継続しよ うと試みます。ヘッダが特定の壊れ方をしている場合にも回復を試みます。 このオプションは、 mpg123 が通常 `Illegal header' と表示して処理をあきらめる壊れた MPEG ファイル がある場合に役に立ちます。ただし、このオプションは慎重に使ってください。 MPEG ファイルに壊れた位置情報があると鋭い音や激しい音が鳴ることがある ので、ボリュームが大きすぎるとスピーカーを傷めてしまうかもしれません。
-0 , --single0 ; -1 , --single1
チャンネル 0 (左)またはチャンネル 1 (右)だけをデコードします。 これらのオプションが使えるのは、ステレオの MPEG ストリームの場合だけで す。
-m , --singlemix
両方のチャンネルを合成します。このオプションが使えるのは、ステレオの MPEG レイヤ-3 ストリームの場合だけです。CPU に負荷がかかる負荷は フルステレオでデコードするよりも小さくなります。
-2 , --2to1 ; -4 , --4to1
2:1 (22kHz) または 4:1 (11kHz) の割合で出力ストリームの ダウンサンプリングを行います。CPU の負担は小さくなりますが、少なくとも 4:1 のダウンサンプリングを行うとまともに聞けない音になります。
-b size, --buffer size
オーディオの出力バッファを size K バイト使用します。これは一時的にシステム動作が重くなった時の影響を回 避する際に便利です。というのも、このような状況ではオーディオ出力に割り 込みが入ることが通常だからです。 バッファのサイズには少なくとも 1024 (つまり 1MB。これは 6 秒分のオーディ オデータに相当します)を指定すべきです。300 以下だとほとんど意味があり ません。 デフォルト値は 0 (バッファリングが無効)です。
-k num, --skip num
最初の num フレームを飛ばします。デフォルトではデコードは最初のフレームから行われ ます。
-n num, --frames num
num フレームだけをデコードします。デフォルトでは、フレーム全てをデコードし ます。
-f factor, --scale factor
スケール係数を変更します(デフォルト値は 32768)。
-r rate, --rate rate
サンプリングレートを設定します(デフォルトでは自動設定)。MPEG の ストリームレートとは独立の固定のビットレートが必要ならば、この設定を変 更するとよいでしょう。mpg123 は自動的にレートを変換します。 このオプションは --stereo または --mono と組み合わせるべきでしょう。

-g gain, --gain gain
オーディオハードウェアの出力ゲインを設定します (デフォルトでは変更を行いません)。
-a dev, --audiodevice dev
使用するオーディオデバイスを指定します。デフォルト値はシステム依存です (普通は /dev/audio または /dev/dsp)。複数のオーディオデバイスがあり、 デフォルトのデバイスを使いたくない場合にこのオプションを使ってください。
-o s , --speaker
オーディオ出力をスピーカーに送ります。
-o h , --headphones
オーディオ出力をヘッドフォン端子に送ります。
-o l , --lineout
オーディオ出力をラインアウト端子に送ります。
-d n, --doublespeed n
n フレームおきにしか再生を行いません。これにより MPEG ストリームの再生は n 倍速になり、特殊な効果を出すことができます。 --halfspeed オプションと組み合わせて 4 フレーム中の 3 フレームを演奏するといったこ ともできます。ただし、このオプションを使う時は音質には期待しないでくだ さい。
-h n, --halfspeed n
各フレームを n 回演奏します。これにより、MPEG ストリームの再生速度は 1 / n になります(n 倍遅くなります)。これを使って特殊な効果を出すことができま す。 --doublespeed オプションと組み合わせて 3 つごとのフレームの長さを倍にするといったこ とが可能です。 ただし、このオプションを使う時は音質には期待しないでください。
-p URL | none, --proxy URL | none
HTTP のリクエストの際に、指定された proxy を用います。 これは完全な URL (``http://ホスト名.ドメイン:ポート番号/'' の形式)で指 定しなければなりませんが、``http://'' プレフィックスとポート番号、最後 のスラッシュは省略してもかまいません(ポート番号のデフォルト値は 80)。 none を指定すると、プロキシを使わずにそれぞれのサーバから直接ファイルを取得 します。``HTTP のサポート'' セクションも参照してください。
-u auth, --auth auth
HTTP 経由でファイルを取得する際に用いる HTTP 認証を指定します。 指定は「ユーザ名:パスワード」の形式で行います。
-@ file, --list file
コマンドラインで指定したファイルまたは URL (もしあれば)に加え、 file に記述されているファイルや URL のオーディオストリームを読み込みます。 file は通常ファイルでも適切なリストファイルを指す URL でも構いませんし、 ファイル名や URL のリストを標準入力から読み込むことを示す ``-'' を指 定することもできます。 注意: -@ オプションは 1 回しか指定することができません(複数回指定すると、最後に 行った指定だけが認識されます)。
-z , --shuffle
シャッフル演奏を行います。コマンドラインとリストファイルで指定された ファイルをランダムにシャッフルします。
--stereo
強制的にステレオ出力にします。
--reopen
1 曲ごとにオーディオデバイスをオープンし直します。
--8bit
強制的に 8 ビット出力にします。
-Z , --random
完全にランダムな演奏を行います。
mpg123 は以下のオペランドをサポートしています:
file (複数可)
入力ファイルのパス名(複数個指定することもできます)。これは MPEG-1/2 オーディオのレイヤ-1, 2, 3 の正しいビットストリームでなければ なりません。 ``-'' を指定すると MPEG データは標準入力から読み込まれます。また、 ``http://'' で始まる名前は全て URL として認識されます(次のセクションを参照してください)。
mpg123 は通常ファイルや標準入力から MPEG オーディオストリームを読み込むだけで なく、HTTP プロトコル経由での MPEG オーディオファイルの取得もサポート しています。このプロトコルは World Wide Web (WWW)で使われています。こ のようなファイルはいわゆる URL (Universal Resource Locator) を用いて指 定します。URL は ``http://'' で始まります。このプレフィックスを持つ ファイルがあると、 mpg123 はこのファイルを取得してデコードおよび再生を行うために、サーバに対する HTTP 接続をオープンしようとします。 WWW のキャッシュ、つまりいわゆるプロキシを通してファイルを取得すると便 利なこともよくあります。これを行うために、 mpg123 は環境変数 MP3_HTTP_PROXY , http_proxy , HTTP_PROXY をここに挙げた順番で調べます。設定されている最初の変数の値がプロキシの 指定として使われます。これを上書きするには、コマンドラインオプションの -p を用います(``オプション'' セクションを参照)。 -p none を指定すると、たとえ先に述べた環境変数が設定されていても、プロキシを全 く使わずに直接サーバと接続します。 WWW サーバから取り寄せた MPEG オーディオを再生するには、サーバとの接続 が十分高速でなければならない点に注意してください。例えば 128k ビット/秒 の MPEG ファイルは、プロトコルのオーバーヘッドに加えて 少なくとも 128k ビット/秒(16k バイト/秒)のネットワーク接続を必要としま す。ネットワークが一時的に止まることが原因で問題が起きる場合には、 -b オプション(バッファ容量設定)でネットワーク停止を避けてみましょう。 ネットワーク接続の全体的な速度が MPEG オーディオファイルのリアルタイム 演奏に十分でなければ、最初に( lynx (1) 等を用いて)ファイルをローカルのハードディスクにダウンロードしてからファ イルを再生してください。 -u user:pass. WWW サーバ上のファイルにアクセスするために認証が必要ならば、 -u ユーザ名:パスワード を使って指定することができます。
mpg123 は Ctrl-C を押すことにより、いつでも中断させることができます。複数のファ イルの再生中であれば、現在のファイルの再生が止まり、次のファイルの再生 が始まります。次のファイルにスキップせずに即座に全ての再生を終えるには、 Ctrl-C を (約 1 秒以内に)2 回連続で押します。 Ctrl-C を押しても聞こえる音がすぐ変わるわけではない点に注意してくださ い。これはオーディオデバイス内にオーディオデータがバッファリングされて いるためです。この遅れはシステムによって違いますが、普通は 1, 2 秒以内 です。
lynx (1), sox (1), intro (1)
MPEG オーディオ(特にレイヤ-3)のデコードにはかなりの CPU 性能が必要です。 これをリアルタイムでデコードするには、少なくとも Pentium, Alpha, SuperSparc あるいはこれらと同等のプロセッサでなければなりません。 ですが、 -singlemix オプションを用いてモノラルのみの再生を行う方法もあります。このオプショ ンを使うとレイヤ-3 ストリームに対する CPU 負荷がある程度小さくなります。 -2 オプションと -4 オプションも参照してください。 これ以外の問題が起きた場合には、 -s オプションを使ってデコード結果を標準出力に出力し、これをファイルに リダイレクトしてください。そしてこのファイルを適切なユーティリティを使っ て再生してください。 mpg123 の出力をお使いのオーディオプレイヤーで再生できるように変換するには、 sox (1) 等のツールが必要となるかもしれません。 mpg123 は必ず 16 ビットステレオのデータを生成する点にも注意してください( -single * オプション群のいずれかを使った場合でも、全く同じステレオチャンネルが 2 つ生成されます)。お使いのハードウェアがこれ以外のフォーマット(例えば 8 ビットモノラル)を要求するのなら、やはり sox (1) 等のコンバータが必要となります。 お使いのシステムが普段は十分リアルタイム再生ができる速さでも、一時的に システム負荷が高くなり(cron のジョブやユーザのリモートログイン、 「巨大な」プログラムの起動など)、オーディオ出力に割り込みがかかるよう な場合には、 -b オプションを使って最低 1000K バイトのバッファを確保すべきです。
既知のバグと制限事項:
MPEG-2 のレイヤ 1, 2 のテストは行っていません。動作しないかもしれませ ん。(レイヤ 3 は動作するはずです。) フリーフォーマットのストリームには対応していません。 レイヤ 1 対応のテストは十分ではありません。 CRC エラーのチェックは行っていません。 現在は DEC Digital Unix, Ultrix, IBM AIX のオーディオハードウェアには 対応していません。したがって、これらのプラットフォームでは -s オプションを使わなければなりません。
リーダー:
Michael Hipp <hippm@informatik.uni-tuebingen.de>
以下のコード(または少なくともアイディア)を利用しています:
MPEG Software Simulation Group (基本パッケージ) Philipp Knirsch <phil@mpik-tueb.mpg.de> (DCT36/manual の展開) Tobias Bading <bading@cs.tu-berlin.de> (副バンドの合成) Jeff Tsay <ctsay@pasteur.eecs.berkeley.edu> (DCT36) Thomas Woerner (SGI のオーディオへの対応) Damien Clermonte <clermond@esiee.fr> (HP-UX のオーディオ用の修正) Oliver Fromme <oliver.fromme@heim3.tu-clausthal.de> インターネット上での参照ページ: http://www.sfs.nphil.uni-tuebingen.de/~hipp/mpg123.html http://www.heim3.tu-clausthal.de/~olli/mpg123/ (mpg123 メーリングリストに関する情報があります) 最新版は以下の場所からも入手できます: ftp.tu-clausthal.de:/pub/unix/audio/mpg123 http://ftp.tu-clausthal.de/pub/unix/audio/mpg123