【Icecast】Winampからストリーミングすると日本語が文字化け

オープンソースの音声ストリーミングサーバー「Icecast」とWinampを連携して音声を配信するときに、MP3のタグ情報が日本語のときに文字化けしてしまうのを何とかしたときのメモ。

環境はCentOS5, Winamp + edcast

Icecastのコンパイルとインストールはこちらの記事を参考に。ちなみにバージョン2.3.1だと文字化けしないらしい。

Icecast + Winamp + edcastの設定はこちらの記事を参考に。

基本文字化けはIcecastの設定ファイルのmountタグにcharsetを記述すれば大丈夫。

    <mount>
        <mount-name>/stream</mount-name>
        <charset>windows-31j</charset>
    </mount>

だけどmountポイントはクライアント側で自由に設定できるので、一致しない可能性が高い。デフォルトのcharsetを指定したいけど、この方法はないらしい。

仕方ないのでIcecastのソースファイルを変更することに。

変更したのはicecast-2.3.2/src/format_mp3.cの225行目あたり

    if (format->charset == NULL)
        //format->charset = strdup ("ISO8859-1");
        format->charset = strdup ("windows-31j");

これでコンパイルとインストール
# ./configure
# make
# make install

さらにIceSを使ってサーバーのmp3ファイルを再生させている場合は、タグ情報がないとファイル名がtitleになる。このときにファイル名が日本語の場合文字化けするので、IceSのマウントポイントを直接icecast.xmlに設定する。

あとices.confに日本語を設定した場合もUTF-8で表示しないと文字化けする。

<mount>
    <mount-name>/ices</mount-name>
    <charset>UTF-8</charset>
</mount>

あまりないと思うけど参考に。

 

<関連リンク>

【Icecast】別ポートでIcecastサーバーを複数起動する
【Icecast】出力されるstream_startのフォーマットを変更する
【Linux】Icecast serverのクライアントIceSをコンパイル、インストール
Icecast + winamp + edcastで音声のストリーミング(ラジオ局)
Icecastのコンパイルとインストール