投稿

【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になる。このときにファイル名が日本語の場合文字化けす...

自分のブログを製本する

イメージ
Bulogger Buzz で見つけたネタ。ブログを本にしてくれるサービスがあるらしい。 Blog2Print 対応しているのは Blogger Typepad Wordpress 実際にこのブログを入力してみた。製本イメージをflashで確認できる。 1万3000円ぐらい(131.85ドル)。日本に発送してくるかは不明。 デジタル(ダウンロード)形式だと800円ぐらい(7.95ドル)。 自分が死んだときに活用してほしいサービス・・・と思った。 ・・・ここで、「同じサービスが日本でもあるんじゃねぇ?」と思ってGoogle先生に聞いてみた。 ・・・やはりありました。下記サイトを参考に。 ブログ製本サービスの比較まとめサイト 1年分のブログを ブログ出版局 で作った場合の料金は 240(20日×12ヶ月)×34円 = 8160円 上製本代3800円と送料500円を足して合計12,460円 製本代はグレードを下げれば安くできる。 これぐらいなら毎年作っても面白いかも。

【PHP】Zend_Mailを使ってメールを送信する(SMTP)(日本語対応)

前 は Zend_Mail を使ってメールを受信する方法。今度はメールを送信してみたときのメモ。 Zend Frameworkのバージョンは1.9.2 サンプルコードは次のような感じ。そのまま貼り付けているので、各メソッドに渡すパラメータは適宜書き換える必要有り。基本は 公式ドキュメント を参考に。 require_once('Zend/Mail.php'); $objMail = new Zend_Mail('ISO-2022-JP'); $objMail->setFrom($aMail['from']['address']); $objMail->addTo($aMail['to']['address']); foreach ($aMail['cc'] as $aItem) { $objMail->addCc($aItem['address']); } foreach ($aMail['bcc'] as $aItem) { $objMail->addBcc($aItem['address']); } $objMail->setSubject(MailUtil::getEncodeString($aMail['subject'])); $objMail->setBodyText(MailUtil::getEncodeString($aMail['body'])); $objMail->send(); class MailUtil { /** * メール送信用にISO-2022-JPエンコードする * * @param string $sString エンコード文字列 * @param string $sFromEncode 元の文字コード * @return string エンコードした結果 */ public static function getEncodeString($sStrin...

【PHP】Zend_Mailを使ってメールを受信する(POP3)(日本語対応)

Zend Framework の Zend_Mail を使って、メールの受信を実装したときのメモ。 Zend_MailはGoogle先生に聞いてみると、ソースをいじらないと日本語に対応できないというお答えが返ってくるので、ちょっと嫌な感じはしたけど、実際やってみたらソースに手を加えずに受信も送信もできた。 Zend Frameworkのバージョンは1.9.2 メール受信するサンプルコードは次のような感じ。 $mail = new Zend_Mail_Storage_Pop3(array('host' => 'localhost', 'user' => 'test', 'password' => 'test')); echo $mail->countMessages() . " messages found\n"; foreach ($mail as $message) { echo "Mail from '{$message->from}': {$message->subject}\n"; } この辺は 公式マニュアル を読んだ方が分かりやすい。 件名が文字化けするのは内部エンコードに問題があるらしいので、次のような感じでデコードする。 /** * メールの件名をdecodeする * * @param string $sSubject エンコードされた件名 * @param string $sEncode 最後にエンコードする文字コード * @return string デコードした件名 */ public static function decodeSubject($sSubject, $sEncode = 'UTF-8') { ...

【Icecast】別ポートでIcecastサーバーを複数起動する

Icecastを複数起動して、管理画面も別のアドレスで参照したかったので設定したメモ。 icecastのインストールの仕方は 前の記事 を参考に。以下は既にicecastのコンパイルとインストールが終わっている前提。 ポート8001用のicecastにする場合は次のようにする。 プログラムをコピーする # cp /usr/local/bin/icecast /usr/local/bin/icecast8001 起動スクリプトをicecast8001用に書き換える #!/bin/sh # # icecast This shell script takes care of starting and stopping # the icecast multimedia streaming systen. # # chkconfig: - 85 15 # description: icecast is a multimedia streaming daemon. It is used to \ # relay and offer multimedia streaming content. # processname: icecast # pidfile: /var/run/icecast/icecast.pid DAEMON=/usr/local/bin/icecast8001 CONFIGFILE="/usr/local/etc/icecast8001.xml" LOCKFILE="/var/lock/subsys/icecast8001" PIDNAME=icecast8001 # Source function library. . /etc/rc.d/init.d/functions [ -x $DAEMON ] || exit 0 # See how we were called. case "$1" in start) # Start daemon. echo -n $"Starting $PIDNAME streaming daemon: " daemon "$DAEM...

【Icecast】出力されるstream_startのフォーマットを変更する

Icecast の管理画面を見やすくしようとxsltをいじっていたときのメモ。 Icecastのコンパイルとインストールは 前の記事 を参照。 ストリーミングが開始された時間はstream_startという属性にもっているのだけど、これが「Sun, 23 Sep 2009 08:01:01 +8000」というような表示なので見やすくない。 これをxsltでうまいこと表示させようと思ったけど大変そうだったので、ソースを変更することにした。 変更するのは、icecast-2.3.2/src/stats.cの586行目あたり //strftime (buffer, sizeof (buffer), "%a, %d %b %Y %H:%M:%S %z", &local); strftime (buffer, sizeof (buffer), "%Y/%m/%d %H:%M:%S", &local); 編集したら再コンパイルとインストールする。icecast.xmlは上書きされない。 これで「2009/09/23 08:01:01」という感じで表示されるようになる。 strftimeの詳細は こちら を参考に。   関連リンク 【Linux】Icecast serverのクライアントIceSをコンパイル、インストール Icecast + winamp + edcastで音声のストリーミング(ラジオ局) Icecastのコンパイルとインストール

円とスリランカ ルピーを両替する

調べたときのメモ。 時間と両替する場所によって変わるけど、目安として知っておくと便利。 YAHOO! FINANCEのページ が分かりやすい(計算しやすい)。

.htaccessで特定のファイルだけ参照不可(禁止)にする

XMLファイルに設定情報を記述すると読みやすいけど、ファイルのアドレスを指定されると外部から参照できてしまうので、どうしようかなと思ったときのメモ。 .htaccessが使えるなら特定のファイルだけ参照できないように設定が可能。 xmlだけ参照不可にする場合は次のように記述する <Files ~ "\.xml$">   deny from all </Files> 詳しくは ここのサイト を参考に。 .htaccessはほとんどのレンタルサーバーで使えると思うけど、自前のサーバーの場合はAllowOverride Allの設定を忘れずに Alias /site /opt/www/ <Directory "/opt/www/">    AllowOverride All    Order allow,deny    Allow from all </Directory> 前の記事も参考に。 .htaccessと.htpasswdで簡易ユーザ認証 Googleカレンダーにicalを読み込ませるapacheの設定を前に書いたので、そっちも参考になるかも。 GoogleカレンダーにだけiCal形式のファイル参照を許可する

【Linux】Icecast serverのクライアントIceSをコンパイル、インストール

イメージ
前の記事 で音楽(mp3など)ファイルをストリーミング配信(インターネットラジオ)する Icecast のコンパイルとインストールを書いたけど、そのIcecast Serverに接続してストリーミング配信の設定するクライアントユーティリティIceSをコンパイル、インストールしてみた。 環境はCentOS 5.3 ちなみにWindows環境でwinampからIcecast Serverに接続する方法は こちらの記事 を参考に。 ソースを ここ からダウンロード→解凍→コンパイル→インストール。コンパイルに必要なソフトは icecast serverをインストールした記事 を参考に。 # tar xzvf ices-2.0.1.tar.gz # cd ices-2.0.1 # ./configure # make # make install /usr/local/bin/icesと/usr/local/share/iceができる。 /usr/local/share/iceに簡単なマニュアルと設定サンプルXMLが配置される。 例えば/opt/musicディレクトリに配信したい音楽ファイルを置いてストリーミング配信したい場合は次のような感じ。 プレイリストを作成 # find /opt/music/ -iname "*.mp3" > /opt/music/playlist.txt /usr/local/share/ices/ices-playlist.xmlを編集 # vi /usr/local/share/ices/ices-playlist.xml <input>     <param name="file">/opt/music/playlist.txt</param> </input> <instance>     <password>password</password> </instance> パスワードはicecast...

オンラインストレージをネットワークドライブとしてマウントする

イメージ
Gladinet Cloud Desktopというソフトを使うと無料でSkyDriveなどのオンラインストレージをネットワークドライブとしてマウントできることを知った。 ダウンロードは ここ から。 フリーのstarterをダウンロード→インストールする。 英語だけど直感的に分かる。 ローカルのファイルと変わらずに操作できるので便利。日本語も文字化けせずに表示できる。 今まで使いこなせてなかったGoogle DocsとSkyDriveをフル活用できそうな予感。 簡易的なバックアップツールとして役に立ってくれそう。