@miyagawaがPlaggerの延長でRemedieというシステムを作っておられます。簡単に言っちゃえば、ネットのストリーミングで見られる動画を全部ブラウザ上の同一システムで見ちゃおうというものです。
連休前に買ったPS3をメディアサーバーと連携して遊びまくってましたが、気付いたらこれのためにいろんな周りのシステムまで整え始めて、PS3触ってる時間なんてなくなりました。それぐらいすごい。正直、これは体験しないとわからないし、体験するためには自鯖がいるという最初から壁が大きいシステムなので薦めはしません。ただ、その課程で出てきた情報は載せておく。出来たばかりでRemedieの情報少なすぎますからね。まあ、備忘録。注意書き:09年01月10日の22時頃分でUbuntu鯖・Windows視聴環境に関してなので、それ以降で内容は保証できません。すでにこの記事書いている時点でがんがん更新されてますので。
- プログラムの構造
- メインシステムは./lib内に収められてますけど、外から触るときは./root内。UIのJavaScript周りとかはきちんと切り離されてるので、スクレイピング出来るサイト増やすときなんかはこの辺触ればおk。
- 対応サイト
- GoogleCode内のWikiで逐次書かれていくようです。./root/plugins内なんかをのぞくとよりわかりやすいかも。
- XML関連でCPAN入らない
- たぶん自分の環境だけだけど、XML::LibXMLがおかしいせいでだった。CPAN通らないので、手動で上書き。使えてるからおk。
- 日本語ファイル通らないよ!
- UTF-8だろうがダメっぽい。Flashプレイヤーが読み込んだ瞬間にダメっぽいので、
./root/static/js/remedie.js内の520行目付近にdefaultPlayerを指定する項があるので、type.match(/quicktime/i)をtype.match(/quicktime|mp4/i)に書き換えてmp4ではQuickTimeを起動指定
でQuickTimeのウィンドウが出ます。自分の場合はMP4だけにしてますけど、Remedie使おうって人なら各自対応できると思います。この辺応用すれば、自前Flashとかも読めるかも。(後述) - 作業用BGMをRemedieに追加
- Shoutcast.xml。単に、手書きでShoutCastの放送局リスト化しただけなのでDLの方からしか呼び出せませんが、メディアコンテンツを集約するという意味ではあり。上記のremedie.js弄れば、ShoutCast対応の自前Flashプレーヤー呼び出しとか、サムネイル押したときのエラーは取れそうな気がする。
- FFmpegで作った動画のストリーミング対応(FastStart化)
- 自分の場合はPSP向けにがんがんエンコしているわけですが、MP4Box使えば一発。makeして、MP4Box -iPod hogehoge.mp4で読み込めます。FFmpeg内の予備ツールにも同等機能入ってるはずだけどよくわかんね。
- 日本語使える術見つけちゃったから関係なくなったkakasiとMP4Infoについて
- 上記で日本語ファイル通らないから、ファイルを英語化すればいいじゃない!ということで日本語ファイル名をローマ字に変換する ruby + kakasi script発動。すごいけど、あまり賢くはない。んで、この英語ファイル名と日本語タイトルを結びつけてPodCast化するためにgemのMP4Infoを使用。
info = MP4Info.open(filename)
Title = info.NAM
って感じで簡単に取り出せますね。(練習スクリプトをmp4info.rbなんて名前付けてしまい、関数見失いまくりで嵌ったのは内緒)
役に立つかは知りませんが、まあこんなところですね。今まで、動画のPodCast化に技術リソースつぎ込んできた人間なので、Remedieは本当に福音。これは人間をダメにする。