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 <[email protected]>
- 以下のコード(または少なくともアイディア)を利用しています:
-
MPEG Software Simulation Group
(基本パッケージ)
Philipp Knirsch <[email protected]> (DCT36/manual
の展開)
Tobias Bading <[email protected]>
(副バンドの合成)
Jeff Tsay <[email protected]> (DCT36)
Thomas Woerner (SGI
のオーディオへの対応)
Damien Clermonte <[email protected]> (HP-UX
のオーディオ用の修正)
Oliver Fromme <[email protected]>
インターネット上での参照ページ:
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