MPlayerを使ったオーディオ/ビデオストリームの再生と録音法
MPlayerでサポートされているのは、RTSP、MMS、HTTP(プログレッシブ)その他のストリーミング用URLであり、またそうしたURLの直接再生をすることもできる。通常こうしたストリーミング用URLは、下記のような長大な文字列で構成されている。
mms://fjord.nationalgeographic.com/channel/highspeed/2005/03/20050314SecondsChernobyl.asf rtsp://rmv8.bbc.net.uk/radio4/religion/somethingunderstood.ra?BBC-UID=5417c0f422fe0bf9844e1d948050d9e3251e8b5800e09194b43fb6af22d49cdb_n&SSO2-UID= http://totalrock.com/streams/TRLive64.asx
問題はこの種のURLが、通常操作でコピーできる形態で公開されているとは限らないことだ。メタファイルの中からこうした情報を抽出するには.ramファイルを解体してrtsp://形式のURLを探し出すといった若干手間のかかる作業が必要となる。例えばBBC放送のRadio 4を聴きたい場合、同サイトで公開されている各プログラムの.ramファイルに対するリンクを取得する必要があるが、BBC Radioであればその再生用ページを開いて、まずは“Listen using stand-alone Real Player”に張られたリンクをコピーしておく。このリンクがポイントしている.ramファイルはwgetを使ってダウンロードすればいいが、こうしたファイル中には、先に見たようなRTSP URLが1つまたは複数個記述されているはずである。後はこれらのURLを取り出してMPlayerで開くと、ストリーミングデータのキャッシュ作成と必要なコーデックの読み込みが行われた上で、目的のプログラムが再生されるはずである。ただしMPlayerによるストリーム再生では再生位置の先送りはできず、後戻しできる範囲もキャッシュのサイズにより制限されることになる。またパスワード保護されたRTSPストリームの場合は、ユーザ名とパスワードをMPlayerのコマンドライン操作用オプションとして入力しなければならない。
ストリームコンテンツの保存とフォーマット変更
MPlayerはストリーム放送の録音機能も有しており、それには-dumpstream
オプションを付けて実行すればよく、その際には-dumpfile
オプションに指定したファイルにストリームデータ全体がダンプされる。この録音プロセスの終了までは最低でもオリジナルのストリーム再生と同じ時間を要するが、それも当該ストリーム放送のビットレートよりも高い帯域幅のネットワークを利用できることを前提としての話である。この要件を満たせない低速な接続環境の場合、ストリームのダンプ作業はかなり断片化されることを覚悟しておく必要があり、最終的に正常なデータを取得できるかはMPlayer側のキャッシュサイズ設定に左右されることになるだろう。
一般にプロプライエタリ系フォーマットのエンコーダおよびデコーダはリバースエンジニアリングにより入手されているため、その対応状況はプレーヤごとに異なるのが普通である。そのため先に解説したMPlayerの-dumpstream
オプションで入手した.rmファイルも、VLCその他の.rmファイルをサポートしたプレーヤでは正常に再生できないかもしれない。ダウンロードしたストリームデータを任意のプレーヤで再生したければ、これらのファイルをMP3やMPEGなどの標準フォーマットに変換しておくべきである。そうした変換作業には、MP3用のLAMEやMPEG用のMEncoderなど適切なエンコーダが必要となる。例えば、本稿で扱っている.rmファイルをMP3に変換する場合のコマンド指定は次のようになる。
mplayer -ao pcm:waveheader:file="su.wav" "somethingunderstood.rm" -vo null -vc dummy lame -h -ms "su.wav" "su.mp3"
この作業が成功すれば、本来はストリーム形式であったオーディオデータがMP3フォーマットに変換されているはずであり、その後は自分が愛用しているプレーヤでの再生や友人との共有が簡単に行えることになる。ストリームフォーマットからASFやWMVへの変換も、同様の手順で行えばいい。
Dipen Chaudharyは、インドのベロールに所在するVITにてLinuxユーザグループを主催している。