WinAmp Streaming
 ストリーミング配信 for WinAmp バナー

ストリーミング再生が面白そうなのでいろいろと試していたら,
試行錯誤はあったモノの比較的簡単にストリーミング鯖を建てられそうなので,
ここで鯖を建てるまでのややこしかった作業を一挙公開します.



■ストリーミングとは?

MP3 などの音楽ファイルは,一旦ローカルな HDD に音楽ファイルをダウンロード後,あらためてプレイヤーで聴くという一連の作業を行います.
しかし,例えば HDD の空き容量がないとか,視聴してみて気に入った曲のみをダウンロードしたいという場合には,大きなファイルをいちいちダウンロードしていたのでは時間の無駄です.

そこで便利なのがストリーミング.
これはネットワーク上を圧縮された音楽データが流れています.それをプレイヤーでキャッチしてプレイヤーで再生するというモノ.
これだと音楽データをダウンロードしながら聞けるわけで,HDD 上には音楽データは残りません.
で,気に入ったモノであればそのファイルが置いてあるサイトに飛んでファイルを GET すればいいわけです.

ストリーミングの構造は,簡単に言えばネットワークを流れている音楽データをプレイヤーに通して,プレイヤーでそれを音楽として復元 (デコード) するわけです.
つまり,ニュースの翻訳と同じです.あれは外国人の方が英語をしゃべっていると同時に翻訳者がマイクに向かって日本語でしゃべっています.
この場合,外国人のしゃべっている英語がネットワークを流れている音楽データになり,翻訳者はプレイヤー (デコーダー) になります.
ただ単にネットワークを流れている音楽データをデコードしているだけですから,HDD 上にはファイルという単位のものはできませんし,ダウンロードが終わるまでその音楽が聴けないということもありません.

■ストリーミングして便利なことと不便 (弊害) なことは?
  • 便利なこと
    複数のマシンを別の場所で使っている場合,WinAmp さえあればストリーミング鯖に接続すれば音楽が聴けます.
    複数のマシンに音楽ファイルをぶち込んで,「あれ?あのファイルがない」っちゅーことも起こりません.(^^;
    さらに,鯖に音楽ファイルをぶち込んでおけるので,クライアントのディスクを圧迫するようなことはありません.

    私は時々親父のマシンを借りてちょろちょろと何かしらの作業をすることがあるのですが,そんなときに限って音楽が聴きたくなります.
    そんなときにストリーミング鯖があると,そのマシンに WinAmp さえあればすぐに音楽が聴けます.
    なお,親父は WinAmp の格納場所を知らないので大丈夫です.(なにが?(笑 // 最下段参照)
    たとえバレでも使い方がわからないだろうし.使い方がわかっても親父が聴くような音楽じゃないですから.(^^;;;;

  • 不便なこと (弊害含む)
    まず,ネットワーク上を流すわけですから,ネットワーク負荷が大きくなります.
    で,ネットワーク負荷の減らし方.

    1. スイッチングハブを導入
    ぉぃぉぃ(^^;
    スイッチングハブを入れると,通信ラインは 1対1 になるので,他のラインに影響が出ません.
    ここいらで思い切ってスイッチングハブを入れるのも手!?
    2. 配信時にデータ圧縮率を上げる
    音がショボくなります.(−−;
    その代わりにスイッチングハブ代が浮きます.(笑)
    しかし,ネットワーク負荷が上がっている時にさらに負荷をかけるようなことをすると,やはり音楽が途中で切れてしまいます.
    スイッチングハブを入れることが一番最適な解決方法かもしれません.

    まぁ,私は便利性と面白いからということでストリーミング再生してますが,音を求めるのであれば MP3 なんて使ってません.(うわぁ,問題発言
    (音に迫力がないんだよね,MP3 って.ヘッドホンとかでよく聞き込んだらわかるよ)

    -- 参考 --
    この音の悪さですが,「WHITE ALBUM」の「POWDER SNOW」という曲の最初の鈴の音でイッパツでわかります.(^^;
    (56kbps 24KHz Stereo)
    っちゅーか高音出させるとイッパツでバレバレやね.(汗)
    ----------

  • ■今回構築するストリーミング鯖のブロックダイアグラム

    [ Streaming Server ]
    [ WinAmp ]
    (音楽出力デバイス)


    [ DSP Module (WinAmp Plug-in) ]
    (ここですべての音が Layer 3 にエンコードされる)


    [ SHOUTcast Server ]
    (WinAmp からの出力をネットワークに流す)


    Network
    (LAN,Internet,etc...)


    [ Music Client ]
    [ WinAmp ]
    (デコード及び再生)

  • www.shoutcast.com ではここに更に SHOUTcast Directory が入り,SHOUTcast Directory は SHOUTcast Server と相互通信する.
  • SHOUTcasr Directory は,ストリーミング鯖の IP アドレス及び配信中の曲リストを収集するためのディレクトリ鯖.
  • SHOUTcast にはもっと詳しいブロックダイアグラムがあったけど,アレ見て初めて WinAmp も鯖に必要なのかと気が付いた.(^^;ブロックダイアグラムは大切であることを痛感した出来事だった・・・.
  • ■必要なモノ
    WinAmp Ver-2.05 以上
    SHOUTcast Server に音楽データを送るための出力デバイス.

    SHOUTcast WIN32 server v1.01
    WinAmp から出力された音楽データをネットワーク上に流すストリーミングサーバー.

    SHOUTcast DSP Plug-in for Winamp 2.05 and later
    SHOUTcast Server に音楽データを渡すためのソフトウェアインターフェイス.

    Layer 3 Codec (Licensed by Microsoft for Netshow Server Tools)
    SHOUTcast Server に音楽データを送る際に Layer 3 に変換するためのプラグイン.(Microsoft Netshou Server)

    NULL Output Plug-in for Winamp 2.05 and later
    音楽出力デバイスをカット (厳密には null 出力) するためのプラグイン.

    上記のものはすべて SHOUTcast Download から GET できます.
    どうも FTP に直接リンクを張っているようなので,ブラウザで入れない方は FTP クライアントで winamp.cybersand.com に潜り,/pub/winamp/shoutcast/ 下の該当するファイルを GET してください.
    (Layer 3 Codec だけは違う場所から HTTP 経由で GET 出来るようになっています)

    ■セッティング
    1. GET したファイルの展開 - SHOUTcast Server
    GET した SHOUTcast WIN32 server を適当なディレクトリに展開します.
    設定はデフォルトで OK です.

    2. GET したファイルの展開 - WinAmp
    1. GET した WinAmp を適当なディレクトリに展開します.

    2. GET した SHOUTcast DSP Plug-in for WinampNULL Output Plug-in for WinampWinAmp を展開したディレクトリの下にある PlugIn に展開します.

    3. GET した Layer 3 Codec をインストールします.インストールオプションは「すべてインストール」を選択して下さい (ラジオボタンの場所で言うと,家のラジオボタンになります).
    なお,このプログラムは英語版なのでご注意ください.:P
    インストールした後は一応念のために再起動しておきましょう.

    2. ストリーミング鯖上の WinAmp の設定
    1. [Option][Preferense][Plug-ins][DSP/Effect][SHOUTcast Source for WinAmp V1.0b (dsp_sc.dll)]をセレクトします.

    DSP Plug-in Select

    2. Configure をクリックし,設定画面を出します.

    SHOUTcast Source Configure

    3. [Change] ボタンをクリックして Layer-3 圧縮率を変更します.
     ここでは家庭内 LAN での使用を考えていますので,[56 kBit/s, 24,000 Hz, Stereo 6KB/秒] をセレクトして OK ボタンを押します.

    Layer 3 Settings

    4. [Option][Preferense][Plug-ins][Output][Nullsoft NULL Output Plug-in v1.0 beta [x86] (out_null.dll)] を選択して,出力デバイスを Null 出力にします.
    出力デバイスを Null にしない場合は,鯖側に負荷がかかるのか,配信データがとぎれとぎれになるので注意.

    WinAmp Null out Plug-in

    4. 設定完了
    後はすべてのウィンドウで OK を押して設定画面を抜け,WinAmp 及び SHOUTcast Server を再起動します.

    ■配信開始
    1. ストリーミング鯖上で WinAmp と SHOUTcast Server を起動します.
    起動順序はどちらが先でもかまいません.

    2. SHOUTcast Server が起動し終えたらストリーミング鯖上の WinAmp で演奏を開始します.
    SHOUTcast Server が起動していないうちに WinAmp で演奏を始めると「鯖が見つからへん.」とエラーが出ます (大阪弁では出ないので安心して下さい (を)).

    3. クライアント側の WinAmp でストリーミングデータを受信します.
    WinAmp の適当なところ (タイトルバー部分が適切) を右クリックして [ Play Location ] を選択するか,WinAmp のプレイヤーをアクティブにして CTRL + L でロケーションウィンドウを開きます.

    WinAmp Location Window

    ロケーションウィンドウのテキストボックス内にストリーミング鯖のアドレス及びポート番号を記述します.
    記述方法は

    host.domain.co.jp:8000
    となります.
    アドレスは FQDN 形式でもかまいませんし,LAN 内ではホスト名とポート番号だけで OK です.
    IP アドレスでも指定可能です.
    我が家の場合では
  • wyvern.griffonworks.or.jp:8000
  • wyvern:8000
  • 192.168.1.2:8000
  • 上記のうち何れかの方法で受信が可能になっています.

    [ Open ] をクリックするとロードが始まり,一定量のデータをため込んだ後,演奏が開始されます.

    ■エラコレ

    まぁなんですか.エラーコレクションの略ですわ.(^▽^;>

  • ICY 401 - Service Unavailable - Connection Closed. (for Client)
    鯖側で WinAmp のストリーミング配信が停止しています.
    また,鯖の設定を変更した後にもこのエラーが出ます.どうやら鯖側の設定を変更した後はクライアント側の WinAmp も再起動させなくてはならないようです.クライアントの WinAmp を再起動して下さい.

  • Error connecting to server (for Server)
    SHOUTcast Server がまだ起動していないうちに鯖側の WinAmp の演奏を開始しました.先に SHOUTcast Server を起動し,起動が確認されてから WinAmp を再生して下さい.
  • ■ストリーミング鯖構築に際しての注意

    SHOUTcast Server は標準でポート 8000 で配信,ポート 8001 でクライアントプレイヤーとのコネクションを行っています.
    ルーター使用者の方はこのポートに穴を開けないで下さい.穴を開けると外にストリームデータが漏れてしまうので危険です.
    プロキシ鯖上でストリーミング鯖を兼用している場合は,ポート 8000 及び 8001 をふさいでおいて下さい.

    まぁ,早い話が「外に漏れないように気を付けよう」っちゅーこってす.

    なお,著作権とか法律とかそんな難しいことは自分で判断して下さい.
    何もわからない子供じゃないでしょうから.

    (「この MP3 をゲットした方は xx時間以内にその CD を買ってください」ってときたま〜に見かけるけど,3秒ルール (*)じゃないんだから.(笑))
    (どこで勘違いしたんだか・・・)

    そういうファイルは GET した時点で違法です.
    もちろん配信もしくはアップロードした側も違法ね.
    「個人での使用」の範囲を超えてるわけですから.

    と書いたところで ZDNN の記事を見てみると,どうも「配信した方は縛に付くが,GET するほうはモラルの問題である」ということらしい.
    (だからといって GET しないように (笑))

    (*) 3秒ルール
    何かミスをしたときに 3秒以内に訂正すると許されるというもの.
    頻繁な用例としては,食べ物を落とした際に 3秒以内に拾って食べれば粗相 (そそう) にはならない,と.(^^;

    レンタル CD の場合はどうなんだろう・・・?

    くわしいことは ZDNN の記事を見て下さい.



    ←戻る Made with Original Machine "MIRAGE" Go to ASUS Web Page
    Made by HyperEdit for Windows Go to HyperEdit Web Page