CocoaYP

最終更新日:2009-12-19 : RSS

このページの内容はPowerPC G4、Mac OS X 10.4.x、10.5.xで確認したことが書いてありますが、2009年夏にやっとintel macをゲットしたのでテスト環境は今後intelになります。それ以外の環境では駄目な場合があるかもしれません。

CocoaYPについて

Mac OS X用のPeercastのイエローページ表示ツールです。

現在は10.6.x intelで動作確認してます。

ダウンロード

CocoaYPの古いバージョン

変更内容は同梱のChangeLog.txtを読んでください。機能説明もあるので読むのをお勧めします。

初めての方は利用ガイドを読んでください。

保存ボタンを利用する場合はCocoaYPで保存するを読んで必要なソフトを指定の場所に入れておいてください。保存時の接続が切れた時の処理はあまりテストしてないです。

CocoaYP使用時にあった方がいいかもしれないソフト

PeerCast Qt(お勧め)
これのRev.13、Rev.14で動作確認してます。リレー状態の取得などでhtmlにアクセスしているのでこのバージョンとhtmlの仕様が変わっているとリレー情報などを表示できなくなります。視聴するだけならどれでも大丈夫だと思います。
PeerCast Qtのビルド方法に自分がビルドしたときのメモを書いておきました。参考までに自分がビルドした物も置いておきました。
PCRaw(pcraw_srv)
特殊なイエローページを見る時に使います。
pcraw_srvのビルド方法pcraw_srvの使い方も参考にしてください。
ソースコードで配布されているので自分でビルドする必要がありますが、再配布可能なライセンスなのでよくわからないという人向けにビルド済みのpcraw.zipを置いておきます。PowerPC版ですが動けばintelの方でも大丈夫でないでしょうか。
Growl(お勧め)
レートが5のチャンネル、フィルタ1にマッチするチャンネルがあるとGrowlでお知らせします。自動更新でお気に入りのチャンネルが現れたかバックグラウンドで知りたい時に使用します。大量にあるチャンネルの中にお気に入りのチャンネルがあるかどうかチェックするのにも便利です。
コンタクトURLの掲示板の新着レスを調べてGrowlで表示できます。Growlの表示スタイルはいろいろありますが「Candybar」「Crystal」「Plain」などが長いテキスト表示に向いています。
Flip4Mac
QuickTimeでwmvを再生する時に使用。
VLC
ogg、mp3の再生で使用。nsvの再生でも使用します。再生は自動的に始まらないので自分で再生ボタンを押してください。wmvも再生できますがVersion 0.8.6cでは再生ボタンを押して再生が始まるまで1分ほどかかります。
Windows Media Player 9 for Mac OS X
wmvを再生する時に使用。
MPlayer OSX(お勧め)
MPlayer OSX Extended rev12でも動きますし、こっちの方が新しいようです。MPlayer OSX Extended rev13は内部構造が変わっているので動きません。rev12を使ってください。
内部にあるmplayerを使用してwmvをasfで、oggをoggで保存できます。wmv、nsvの再生もできるようになりました。パスが「/Applications/MPlayer OSX.app」となるように置いてください。
PowerPCの人もPPC版でなくMPlayer OSX (Universal).pkgをインストールしてください。
バージョンが変わると内部の構成が変わってCocoaYPから利用できなくなるかもしれません。
MPlayer OSXでの再生は環境によってはできないことがあるかもしれません。詳しいことはよくわかりません。
mplayer cui(お勧め)
wmv、nsvの再生、保存する時に使用。詳しくは下の方に書いてあります
ffmpeg
保存する時に使用。詳しくは下の方に書いてあります
Afloat
無くても問題ないけどQuickTime Player、mplayer cui版、VLCなどのウインドウを常に最前面に出来る。VLCとmplayerは自分で最前面表示ができます。

利用ガイド

視聴までの簡単な手順

2009/1/9現在pcraw_srvを使ったイエローページは稼働してない気がします。詳しいことはわかりません。

  1. CocoaYP、PeerCast Qt、pcraw_srvをダウンロードします。全部アプリケーションフォルダに入れてください。特にpcraw_srvはアプリケーションフォルダ直下(サブフォルダにいれると駄目です)に入れないとCocoaYPがpcraw_srvを起動できません。入手先のURLは上の方に書いてあります
  2. PeerCast Qtを使うためにQtをインストールします。qt-mac-opensource-4.5.1.dmgにあります。いろんなバージョンのがありますが最新版でいいと思います。
  3. ルータを使ってる人はポート7144を開放します。OS 10.4、10.3でFirewallを使ってる場合は7144を開ける必要があります。10.5ではPeerCastの初回起動時にポートを開放するか聞いてきます。
  4. CocoaYPを起動して設定ウインドウを開きます。「起動時にPeerCastとpcraw_srvを起動する」にチェックを入れます。次にイエローページの設定ですが知っているならそれを入力、よく分からないならリセットボタンでいくつか登録されます。最後にフィルタワードですがこれもリセットボタンでいくつか設定されます。
  5. 設定を変えたらpcraw_srvを起動させる為にCocoaYPを再起動させてください。ちなみにCocoaYPが起動させるpcraw_srvのindex.txtのURLは「http://127.0.0.1:7149/」になります。リセットボタンでイエローページを設定すると自動的に記入されますが無い場合はこれも追加しておいてください。
  6. 視聴ソフトは個人的にはmplayer系がお勧めです。MPlayer OSX Extended rev12(rev13では動きません。)をアプリケーションフォルダに入れてプレイヤーの種類をmplayerにするとMPlayer OSX Extended rev12内のmplayerを使って再生できるようになります。MacっぽいソフトならQuickTime Player + Flip4Macでしょうか。10.4の人は再生可能なプレイヤーがすべて揃ってないと再生時にエラーが出るようです。全部インストールしてください。10.5は揃ってなくても大丈夫な気がしますが駄目なら全部インストールしてください。
  7. 視聴するにはチャンネルを選んで「Play」ボタンかリストをダブルクリックします

使用時、視聴時の注意点

CocoaYPの仕様

cui版mplayerのコンパイル方法

  1. Xcodesvnを入れる。svnは10.5だと最初から入っていました。
  2. ターミナルで次のコマンドを実行してソースをダウンロードする
    $ svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/
  3. $ cd trunk/
    でダウンロードしたソースのあるtrunkフォルダに移動して次のコマンドを順に実行する。
    $ ./configure
    $ make
    $ sudo make install
  4. これでmplayerがインストールされてCocoaYPのPlayから再生できるようになります。
    mplayerの特徴としてはパソコンに負荷がかかっても音ずれしない、ただし起動直後にバッファがあると音ずれする、WMV9APの動画を再生できる、その代わりに再生できないものもごくまれにある、ひどいバッファになるとアプリが落ちる、それなりに軽い

2009年6月頃の話。XQuartzを入れた場合に上の方法でビルドしたmplayerが動かなくなる場合の解決方法がメーリングリストに書いてありました。$ ./configure --disable-glで大丈夫でした。

PeerCast Qtのビルド方法

PeerCast Qtのページに書いてあるqmakemakeだけではできなかったのでメモしておきます。G4 + 10.5.1でやりました。

ここにxcodebuildを使ったやり方が書いてありました。この方法だと.bashrcに書き込まなくてもいいみたいです。

  1. Xcodeをインストールします
  2. Qtをインストールします。自分はqt-mac-opensource-4.5.1.dmgが最新版だったのでこれをインストールしました。
  3. Qtの環境変数(というのかな?)を設定します。Beginning OS X 10.5 > インフラ整備編のQtの項目を参考に
    export QTDIR=/usr/local/Qt4.3
    export QMAKESPEC=$QTDIR/mkspecs/macx-g++
    を.bashrcに書きました。ちなみに.bashrcはホームフォルダにある不可視ファイルですがターミナルでopen -a mi ~/.bashrcを実行するとmiで開くことができます。
  4. PeerCast Qtのページからソースコードをダウンロードします。自分は「 * Rev.10 (Qt4.2): peercast-qt0013.tar.gz (2007/12/27)」をダウンロードしました。
  5. PeerCast Qtのページに書いてあるビルド方法の通りにターミナルでui/qt4フォルダに移動して
    $ qmake
    $ make
    を実行します。
  6. するとmakegui.h:31:26: error: Qt/q3listbox.h: No such file or directory というエラーが「gui.h」と「listitem.h」で出ました。includeするファイルのパスが見つからないようなので、「gui.h」と「listitem.h」の「#include <Qt/q3listbox.h>」を「#include <q3listbox.h>」に書き換えて再度makeを実行したらこのエラーは出なくなりました。どっかでパスを設定すればいいのかもしれませんが分からないので直接書き換えました。
  7. 再度makeするとld: library not found for -lcrt1.10.5.oというエラーになりました。今度はMakefileをテキストエディタで開いて「LFLAGS」の行の「-syslibroot」の直後の「/Developer/SDKs/MacOSX10.4u.sdk」を「/Developer/SDKs/MacOSX10.5.sdk」に書き換えるとビルドが成功しました。これは10.4では必要ありませんでした。

10.6でpeercast.proを変更してビルドする方法メモ。macxの部分を以下の通りにしました。qt-mac-cocoa-opensource-4.6.0.dmgを入れたら64bitでビルドできました。とりあえずi386とppcは消して64bitのみにしました。

macx {
 LIBS += -framework Carbon -framework AppKit
 DEFINES += _APPLE
 ICON = peercast.icns
 TARGET = PeerCast
 CONFIG += x86_64 sdk
 QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.5.sdk

 system(mkdir -p PeerCast.app/Contents/MacOS)
 system(cp -r ../html PeerCast.app/Contents/MacOS)
 system(cp peercast.xpm PeerCast.app/Contents/MacOS)
}

参考までにこれでできたものを置いておきます。上の方が新しいです。

  1. PeerCastQt0014_qtcocoa64bitOnly.zip(下の64bit版。64bit対応intel Macでしか動きません。とりあえずビルドしただけで動作確認は全然してません。qt-mac-cocoa-opensource-4.6.0.dmg以降が動作に必要だと思われます。)
  2. PeerCastQt0014_qtcocoa.zip(10.6 + qt-mac-cocoa-opensource-4.5.2でビルドしたもの。413さんのパッチ適用済み。ffserverのasfが繋がるようにちょっと改造。64bitでビルドできるか試した時にCarbon部分のソースを削除しました。この為、ウインドウを閉じたときに再起動以外でウインドウの再表示ができません。64bitでのビルドにはバイナリでインストールしたqtが64bitに対応してないらしく失敗しました。)
  3. PeerCastQt0014_413patch.zip(413さんのパッチを当てたもの。LadioCastでmp3やoggで配信する時にビットレートがちゃんと表示される様になった。
  4. PeerCastQt0014.zip
  5. PeerCastQt0013.zip

なお、これを使う場合にはQtのフレームワークが必要なのでqt-mac-opensource-4.3.3.dmg(最新版があればそれでも)をインストールしておいてください。無いと起動しません。

pcraw_srvのビルド方法

  1. Xcodeをインストールする。あまり古いXcodeだとビルド時にエラーになるようです。自分は2.4.1でビルドしました。
  2. GDCをインストールします。ビルドするpcraw_srvが「Ver.0.3.1.6 Rev.7 (D 1.007)」の場合は「GDC 0.23 for Mac OS X, based on DMD 1.007」の「GDC 0.23 for Tiger」をインストールします。自分はこの組み合わせでビルドしました。試したこと無いですけど「Ver.0.3.1.6 Rev.7 (D 1.020)」をビルドするなら「GDC 0.24 for Mac OS X, based on DMD 1.020」の「 GDC 0.24 for Tiger」でいいんでないでしょうか。
  3. pcraw_srvのソースを解凍します。ターミナルでそのフォルダに移動してmakeでpcraw_srvが完成です。Xcodeのバージョンが低かったり、GDCのバージョンとpcraw_srvのソースの組み合わせが悪いとビルド時にエラーが出るようです。

pcraw_srvの使い方

oggの再生方法

VLCで再生できますがXiphQTを使ってQuickTime Playerで再生も可能です。XiphQTの方がVLCより曲間で途切れる時の安定度が高いようです。ただしチャンネルによってはVLCでも安定して聞くことが出来ます。

wmvの保存方法

QuickTime Player Proで保存

Flip4Mac + QuickTime Playerで再生すると動画が自由にシーク、選択できるようになります。再生しているウインドウでは保存できませんが、一度コピーしてから新しいプレイヤーを作ってそこにペーストすると保存可能です。自分がちょっと試した所15分ぐらいの動画だとすぐに保存できて、できあがったmovもちゃんと再生できたのですが、20分ぐらいの動画になると保存に凄い時間がかかった上、できあがったmovがちゃんと再生できませんでした。ただあまり試していないのでたまたまかもしれません。

mencoderで保存

  1. mencoderをインストールします。mplayerをコンパイルしていれたら一緒に入るようです。
  2. 動画のURLを調べます。http://127.0.0.1:7144/stream/HOGE.wmvの形式のURLです。PeercastのチャンネルURLをブラウザ保存したファイルをテキストエディタで開くと書いてあると思います。mmsだったらhttpに置き換えてください。
  3. 次のコマンドをターミナルで実行すると保存が開始されます。
    mencoder -quiet -ovc copy -oac copy http://127.0.0.1:7144/stream/HOGE.wmv -o test.avi
  4. 上のコマンドで保存したaviファイルはVLCでは開いて再生可能、シークも可能、mplayerで再生できますがシークが出来ません。QuickTime Playerでは開くことが出来ません。
    mencoder -quiet -ovc copy -oac copy test.avi -o test2.avi

    上のコマンドを実行するとmplayerでシーク可能になります。ただ、この方法で変換しなくてもパラメータに-idxを指定して起動するとファイル読み込み時にインデックスを作成するのでシーク可能になります。GUI版の場合Advanced settingsで指定可能です。またこれで変換したaviはQuickTime Playerでも開くことができますが映像は再生できますが音は鳴りませんでした。

保存時のmencoderのCPU負荷はG4 1.4GHzで0.3%程です。

VLCでaviを再生すると今ひとつ音声の品質が良くないです。VLC、mplayerともに直接再生した時にはなかったノイズがでることがある気がします。

mplayerで保存

mplayer -dumpstream -dumpfile test.asf http://127.0.0.1:7144/stream/HOGE.wmv

で保存できます。この場合Windows Media Player、VLC、mplayer、QuickTime Playerで開くことが出来ました。

シークはQuickTime Playerでは出来ましたがそれ以外のプレイヤーでは出来ませんでした。

QuickTime Playerの場合Flip4Macの「Open local files immediately」のチェックをオンにするとシークまでの待ち時間が無くなります。そのかわりファイルが大きいと開くのに時間がかかるようになります。

QuickTime Playerで再生可能なのはファイルを開いた時に保存されている部分までです。

mplayerで保存中のファイルを開くとシークは出来ませんが新たに保存された部分も再生できます。見ながら保存する場合は保存しているasfを再生すれば保存がちゃんと出来ているか確認しつつ見ることが出来ると思います。

保存時のmplayerのCPU負荷はG4 1.4GHzで0.3%程です。

その他

mplayerやmencoderでストリームのタイプがASFと表示されているのでASFRecorderXで保存できないかと試してみましたが無理でした。

aviとasfどっちで保存すればいいかですが、QuickTime Playerで再生できるならasf、QuickTime Playerで再生できない場合はaviがいいかなと思います。というのもaviで保存して再生すると直接mplayerで再生した時には無かったノイズが見られるからです。ただしノイズの出やすさは保存時の安定度、動画の設定によると思います。

oggを保存

これもプラグインを入れればQuickTime Playerで再生できるのでPROにすれば簡単に保存できるかもしれません。

VLCの「ネットワークを開く」の「Streaming/Saving:」で保存できます。

mplayerを使う場合

mplayer -dumpstream -dumpfile test.ogg http://127.0.0.1:7144/stream/HOGE.ogg

で保存できます。wmvと同じです。下記のffmpegだと曲毎に切断されるのですがmplayerでは曲間で切断されることがないです。

ffmpegを使う場合

  1. ffmpegをインストールします。oggに対応しているffmpegを用意してください。自分はらけった ffmpeg SVN-r8638uにあるffmpegを使っています。
  2. oggのURLを調べます。http://127.0.0.1:7144/stream/HOGE.oggの形式のURLです。PeercastのチャンネルURLをブラウザ保存したファイルをテキストエディタで開くと書いてあると思います。
  3. 次のコマンドをターミナルで実行すると保存が開始されます。ただし曲が切り替わると保存が止まってしまいます。
    ffmpeg -i http://127.0.0.1:7144/stream/HOGE.ogg -acodec copy test.ogg
    mp3に変換しながら保存するには次のコマンドを使用します。
    ffmpeg -i http://127.0.0.1:7144/stream/HOGE.ogg -acodec mp3 -ab 128k test.mp3

G4 1.4GHzでoggで保存する場合はCPUを0.5%程、mp3に変換しながら保存する場合は15%ぐらいCPUを使用します。

ffmpegでoggで保存したものは再生時にブツブツ途切れることが多いです。 保存時にエラー(error, non monotone timestamps)が出ているからでしょうか。理由は分かりませんがmp3に変換して保存したものは途切れることは無いような気がします。(単にテスト時の保存時の状況が悪かっただけ?)

mp3を保存

oggを保存できるようにmplayer、ffmpegを用意しておくとmp3を保存できます。mplayerを選択しているとmplayer、ffmpegを選択しているとffmpegで保存します。自分が試したチャンネルではffmpegで保存してもoggの様に曲毎に途切れることは無かったです。

nsvを保存

mplayerで保存できます。保存したファイルはmplayerとVLCで再生できます。ただしコーデックによっては保存、再生できないかもしれません。

CocoaYPで保存する

上の方法で保存できますがコマンドを打ち込むのがめんどくさいのでCocoaYPからコマンドを実行して保存できるようにしてみました。ただしmencoder、mplayer、ffmpegは別途用意してください。

保存できるタイプ

wmv
aviかasfで保存します。
保存先はMoviesフォルダになります。保存ファイル名は「チャンネル名」+「時間」+「情報」になります。
aviはmplayerとVLCで再生できますがmplayerの方が再生品質がいいです。
保存中のaviを開くとタイムシフト再生が出来ます。VLCだと完全に自由にシークできますがmplayerはファイルを開いた時に保存されていた部分までしかシークできません。
asfはQuickTime Playerで開くとシークできます。保存しながら見ることは出来ません。
ogg
保存先はMusicフォルダになります。保存ファイル名は「チャンネル名」+「時間」+「情報」になります。
曲間でffmpegのogg読み込みが止まるので読み込みが止まったらffmpegを停止、起動させています。チャンネルによってはうまいぐあいに曲毎に保存できる場合もありますが、曲の前後1秒ぐらいが前後の曲にくっつく場合があります。
mp3に変換する場合のビットレートは128kbpsです。
mplayerで保存する場合は曲毎に切断されないので全部繋がった1個のファイルになります。
nsv
保存先はMoviesフォルダになります。保存ファイル名は「チャンネル名」+「時間」+「情報」になります。

wmaは保存できません。

必要なもの

mplayer
wmvをasfで保存する場合に必要です。oggを保存する時にも使います。
パスが「/usr/local/bin/mplayer」になるように置いてください。
上の方法でmplayerをコンパイルするとインストールされます。
GUI版のMPlayer OSXが「/Applications/MPlayer OSX.app」にある場合、内部にあるmplayerを使って保存可能です。1.0rc1で動作確認しています。バージョンが変わると内部構成が変わって保存できなくなるかもしれません。
GUI版とCUI版二つある場合はCUI版が優先されます。
mencoder
wmvをaviで保存する場合に必要です。
パスが「/usr/local/bin/mencoder」になるように置いてください。
上の方法でmplayerをコンパイルすると同時にインストールされると思います。
保存を終了してもmencoderのプロセスが残ることがあります。アクティビティモニタで確認、終了できます。killall mencoderで一括終了できます。
ffmpeg
oggを保存する時に必要です。
パスが「/Applications/ffmpeg」になるように置いてください。
oggに対応しているffmpegを置いてください。

いろいろなメモ

不安定な状態での保存について

回線状態がひどい状態で保存するとプレイヤーで開けないファイルになることがあります。保存前にプレイヤーで再生して安定して再生できるのを確認してから保存するといいと思います。「自動再保存」で自動的に再保存開始した時に再接続に手間取ると再生できないファイルになる可能性が高いので、確実に保存したい場合は視聴/、確認しながら保存することをお勧めします。

保存したasfをmp4に変換

保存したasfをmp4などに変更するのはFlip4Mac + MPEG Streamclip(もしくはQuickTime Player PROかな)でできるのですがFlip4Macが無料バージョンだと変換後の動画にクレジットが表示されてしまうようです。しかし、ffmpegでも変換できます。ffmpegのコマンドは奥が深くてのでよく知らないのですがmp4に変換するには次のコマンドで変換できます。

ffmpeg -y -i input.asf -vcodec mpeg4 -qscale 5 -g 300 -ab 128k -r 30 output.mp4

ポイントとしては-r 30のフレームレート指定です。試しに保存したasfは1000fpsと認識されたのでフレームレートを指定しないと変換に時間がかかる、サイズが大きくなるなどのデメリットがありました。なお、フレームレートは動画に合わせて調整してください。

Terminalのコマンド実行中以外のウインドウをすべて閉じるAppleScript

mplayerで再生しているとターミナルのウインドウがいっぱいになる場合がありますが全部閉じたい時に便利です。

tell application "Terminal"
    close (every window whose busy is false)
end tell

定期的に自動的にウインドウを閉じるAppleScriptアプリケーションのスクリプトを教えてもらいました。ターミナルがmplayer専用になってる人は便利かもしれません。 close_dont_busy_terminal_window.app.zip(教えてもらったのをちょっと変更しました)

レス表示向けGrowlの表示スタイルプラグイン

CSSで簡単にオリジナルの表示スタイルが作れるのを知ったのでレス表示に向いているものを作ってみました。レスを広く表示する為にアイコンが表示されません。

ResView.growlStyle.zip

ResView.growlStyleをダブルクリックするとインストールできるようです。フォントサイズ、色などの変更をしたい場合はパッケージの中にdefault.cssというファイルがあるのでそれを変更してください。変更したらGrowlを再起動すると変更が適用されます。

AA表示用のスタイルです。大きめのAAを表示できるように幅が広くなっています。AA表示用フォントはMS PGothicを使っていますので別のAA用フォントを使っている場合はdefault.cssを書き換えてください。

AAView.growlStyle.zip

Growl_ResViewAA

mplayerのキーボードショートカット

mplayerはメニューにウインドウサイズの変更ぐらいしか無いのですが、キーボードショートカットでいろいろできます。MPlayerの説明書(英語)に書いてありますが、PeerCast視聴時に便利そうなものをメモしておきます。

キー機能
/ and *音量の上げ下げ
9 and 0これも音量の上げ下げ。テンキーでは反応しないようです。
mミュート
fフルスクリーン表示
T(shift + t)常に最前面表示
oいろいろな情報を表示。押すたびに切り替わる
sスクリーンショットを保存。CocoaYPから起動した場合はデスクトップに保存されます。

Macのみで配信してみる

Macで配信テストに書いてみました。

アンケート

開発の参考にするかもしれません。

連絡用フォーム

[PR]Samurai Sounds

フォームへの返事