iPhoneでニコニコ動画を見られるアプリを作ってみた

どんだけニコ厨やねん。

D

大学が春休みに入ったのと、春休み突入段階でまだiPhone向けニコニコ動画アプリの公開がアナウンスされていなかったこともあったので、春休みの課題的に作ってみました。

本当は3月中に仕上げたかったんですが、本家のアプリのニュースでやる気が無くなって、1週間位手付かずになってました。その後待てど暮らせど出てくる気配が無いので、授業始まる前に作り上げちゃおうってな感じで今に至ります。(結局新学期開始から3日位オーバーしてますが)

以前作ったSoftbank携帯向けのmoVbileというサービスでは、Javaアプリから動画を扱うAPIが提供されていなかったため、jpeg画像をパラパラ漫画の要領で動画に見せかける動画プレイヤーの部分から作る必要がありましたが、iPhoneでは動画再生(MPMoviePlayerController)をサポートいるので、今回のアプリではMPMoviePlayerControllerを拡張したものを利用しています。

このMPMoviePlayerControllerは、AppleのMoviePlayerというサンプルで、別のViewを無理やりオーバーレイするという事をやっているので、このサンプルを見て、ニコ動プレイヤー作れるんじゃね?と思った人も多いんじゃないかと思います。で、今回のアプリもやっぱりこのやり方でコメントをかぶせています。

ただ、MPMoviePlayerControllerは機能がかなり縛られていて、実質再生と停止位しかできず、現在再生している時間も取得できないので、動画にあわせてコメントを流すニコニコプレイヤーに使うのは結構致命的です。

まぁ実際はもう少しAPIが隠れていて*1、再生時間の取得や一時停止も可能だったりするんですが、今回のプレイヤーも実はそれを利用しています。そんなわけでAppStoreに並べられるかと言うと・・・な感じです。

ちなみにサーバ側は、以前作ったmoVbileのシステムをほとんどそのまま持ってきて利用できたので、ほとんど時間かからず。動画リストの出力をXMLに変更するのと、動画変換をmpeg4にしたくらいです。

とまぁ、無理だろうなぁとは分かっていてもiPhone Developer Program買っちゃったので、とりあえずAppStoreへ申請してみようと思ってます。サーバの問題があるので、かなり制限(1日の変換数とか)付けて出すと思いますが、まぁ、今後の状況も含めて逐一ここに書いていこうかと思ってます。

iPhone向けニコ動アプリ

http://weekly.ascii.jp/2009/03/iphone_27.html

が出るみたいね。

週間アスキーを見る限り、アプリの仕様は現ニコモバと同様なので、Softbank回線で見る場合は、既存のSoftbank端末と同様の毎秒2コマでの再生になるんじゃないかと思われる。ニコモバなら本来の意味での画質には違いは生じないはずなので、通常画質ってのは毎秒10コマのことだろう。

一般会員は1日に通常画質の動画を2つ再生できるとあるけど、これってWiFi利用でもそうなのかなー。最近のあからさまなプレミアム優先の態度や、ニコモバ仕様も考えると、あながちありえない話でもないんだけど。

しかし、折角iPhoneには立派な動画再生機能(まぁ、細かいことやろうと思うと一筋縄ではいかんけど)があるのに、なんでニコモバ仕様で作ったかなー。ニコモバの仕様っていかにもガラバゴスな感じの、制限された環境でなんとか苦労して作りました感があってあんまり好きじゃない。

まぁ、プレミアムな私は3G回線でも快適に見られる事を期待しつつ、のんびり待ちます。

Softbank携帯で各動画サイトの動画を見られるサービス「moVbile」を公開しました

アプリの承認が出たので告知。

10/31 アプリは公開が停止されました。

通常長時間の動画のストリーミング再生に対応していないSoftbank携帯でも、各動画サイトの動画を視聴できる「moVbile」というサービスを作りました。


http://mb.isidesystem.net/

moVbileは、未だに動画のストリーミング再生ができないSoftbank携帯で、無理矢理動画を再生させてやろうというホットなサービスです。実際、動画再生中は端末がホットになります。

moVbileでは、全ての携帯キャリアにおいて、YouTubeニコニコ動画の人気の動画(ランキング)、動画の検索、マイリストの閲覧などといった一通りの動画漁りが行えます。Softbank携帯については動画の変換後、専用のプレイヤーにて再生も可能です。

このサービスはもともと去年の末に公開した「ニコニコ動画をソフトバンク携帯で見られるようにしてみた」という動画で利用したソフトウェア群がベースです。この動画の反応が良かったので、もっと早めにサービスとして公開するつもりだったんですが、今年頭にアプリの審査で思いっきり拒否されてしまい、ずるりずるりと今頃になっての公開と相成りました。

まだまだ不安定ですが、Softbank携帯をお持ちの方は、是非お試しください。

うがー

iPhoneを新規で購入する方向で(現行SIMは解約)検討しているけど、とにかく専用USIMなのがきつい。iPhoneはこの専用USIMじゃないと使えないけど、実は通常ソフトバンク端末では使えるとかいうミラクルは無いだろうか。MMSは別に使えなくてもいいんでウェブだけ使えればいいんだけどなぁ。無理かなー。

その辺の可否を人柱な方々の報告を見てから購入できればいいんだけど、当日逃すと次はいつ購入できるか分かったもんじゃないのがなんとも。いや、私もそもそも11日に購入できる確証は無いんですけど(^^;

ま、とりあえず明日中に結論を出そう。

iPhoneは学生に買えるんだろか

もはや購入する気満々のiPhoneだったのですが、機種変更は新規購入よりちょっと割高らしいという話を聞いたので、テスト期間中ながらちょっといろいろと計算してみました。

ここのサイトによれば、(購入予定の)iPhone 8Gの機種変は、2年以上でも新規契約よりも7千円ほど割高になる模様。なんだ7千円程度なら・・・と思ったんですが、自分はソフトバンクにしてからまだ1年経過していないので、この表の通りなら新規契約との差額はなんと3万円弱に。

うーん。差額にもう少し足せば、touch 8Gが買えてしまいます。現状の回線とは別で新規契約するのがベストなんでしょうが、Willcomから番号を変更してまた1年で番号が変わるってのはちょっとなぁ・・・。まさか1年前にiPhoneを見越してSoftbankに乗り換えたのがこんな形で仇となるとは。

こうなると今までiPhoneが出るまでは我慢と、手を出してこなかったtouchが魅力的に映ってきます。D01NXの分割支払も来月で終わりなので、S11HTに機種変更して似非iPhoneすることだって可能だし。先日購入したデカエネループは超有効活用できるし、荷物が増える点を除けばあまり悪い条件ではありません。

とりあえずtouch+S11HTの時と、iPhoneを購入した時との2年間での支払い総額を比べてみることにしました。touch+S11HTの時は、通話は913SHでデータ通信は極力控えると考えてパケットし放題の最低額とし、S11HTのプランは現状と同じギガデータで計算。iPhone購入の場合はiPhoneは8G、913SHから機種変更すると想定し、金額は先のサイトを参考に算出。両方とも通話料についてはとりあえず考えない方向で計算しました。で、結果が↓

36,800円(touch 8G) + 19,800円(S11HT 学割一括) + 3,980円(ギガデータプラン) * 24 +
2330円(ホワイトプラン980円 + パケットし放題1,029円 + S!ベーシック315円 + ユニバーサル料金6円) * 24 = 208,040円

9480円(ホワイトプラン980円 + パケット定額フル5,985円 + S!ベーシック315円 + 分割支払3,180円 - 特別割引金920円) * 24 = 227,520円

iPhoneの場合はPC接続を考慮してないので、emobileのギガデータをプラスすると30万を超えてしまいます。さすがにそうなるとちょっと無理ですね。iPhoneでPC定額する方法もそのうち出てくるでしょうが、確証はありませんし、それでもtouch+S11HTのプランの方が若干割安です。

ただまぁ、S11HT+touchの問題は、普段の持ち物が今のCF-R3+913SHに加えてこの2つが加わることで、もはやモバイルじゃなくて歩く電子機器になってしまうところでしょうか。iPhoneにすれば913SHが置き換わるだけなのでシンプルなんですけどね。

機種変更がここまで割高でなければiPhoneへ突っ込む気満々だったんですが、ちょっと冷静に考えてみたいところです。まだ時間もあるので、値段差を無視できるような良情報が出てくることを祈ります。(^^;

ニコニコ動画をソフトバンク携帯で見られるようにしてみた

2008/10/21
サービスとして公開しました。→[id:saiten:20081020:1224522031]

ニコニコ動画モバイルという携帯からニコニコ動画を閲覧できるサービスがあるんですが、携帯3キャリアのうち、なぜかソフトバンクだけは今年の4月開始時から未だに対応していません。

私的には1日1回ランキングを一通りチェックする程度には利用しているので、これを通学の時間帯に行えたらなぁ、と思ってたんですが、なかなかそんな話が出てこない。RC2開始時には対応するだろうと思ってたんですがモバイル関連の発表すらなかったですし。

そういうわけで学園祭が終わってひと段落が着いていたのと、バイト先のネタ作りも兼ねて自分でニコニコ動画モバイルのソフトバンク版を作ってみることにしました。百聞は一見にしかず。とりあえず動画を作ってみたので見てみてください。

参考までに一応他のキャリアで見た場合の動画もいくつか挙げておきます。

Docomoのハイスピード対応端末には敵わないまでも、他と比較してもそこそこ動いているんじゃないかなぁと思います。音切れはすんげぇですが(・∀・;)ただまぁ、ランキングをさっとチェックして、気になったのを改めて後で家で見るという位の使い方はできそうです。

仕組み

開発するに際して、大いに役立ったのがこのニコニコ動画モバイルのプレゼン資料です。というかこの資料見るまでは、どうやって作るか全く検討も付いてませんでした。

本家ニコニコ動画モバイルは、対象の動画を予めjpegと着うた形式のADPCMに細かく分割しておいています。クライアントからリクエストがあったときに、そのjpegADPCM、そしてコメントをサーバ側で全てDocomoが1度に送受信できる150KBのパケットに詰め込んで、クライアントに送信しています。パケット内にはほかに、このタイミングで画像を更新しろとか音声を流せとかのシーケンスデータも入っていて(これをサーバ側で微調整することで機種ごとの差異を吸収している)、端末側はそれを再生するだけの仕様になっています。この仕様のおかげで通信速度が遅い機種では画像の枚数を調整したり、音声の出力タイミングが遅い機種では音を鳴らせるタイミングを調整したりといったことが、サーバ側でパケットを調整するだけで済み、新しい機種などにも早く対応できると言うわけです。

今回私が作ったモノ(とりあえずニコニコバンクとしておきます)も基本的な構成は同じで、まずニコニコバンク側で設置してあるサーバがクライアントからの要求を受け、その動画を所持していない場合、ニコニコ動画にログインして対象の動画のflvを取得します。取得したflvはffmpegを利用してjpegと普通のpcmファイルに変換します。

本来であれば、ここで音声はYAMAHA ADPCMにすべきなんですが、ffmpegの作成するYAMAHA ADPCMはwavだとヘッダがおかしくて再生できないので、現在はノーマルのpcmになっています。(mmfに変換したりとかもしたけどmmfだと同時に1ファイルしかオープンできない)

そして、この分割したファイルを本家同様、1度に送受信できるギリギリのサイズのパケットに詰め込みます。ただ実はSoftbankの場合、application/javaというMIMEにすると1MBまで送受信できるようで、さすがに1MBだとバッファの問題などもあるので現在は200KBのパケットを生成して送信する様にしています。

ニコニコバンクでは本家より少し単純なパケット構成になっており、シーケンスデータを入れずに、1秒間区切りで画像と音声、コメントが入っているだけです。端末間での差異の調整等が面倒になりますが、まぁ今のところは私しか使ってないので良しとします。

クライアント側では受け取ったパケットを解析して、タイミングよく表示しているだけです。コメントの表示はかなり四苦八苦しましたが、たまーに職人の技がちゃんと表示されたりするので(大方画面サイズの都合でずれるんですが)、そこそこ良い出来になっているんじゃないかなと思います。

構成

以下のような感じ。

  • 変換サーバ兼再生サーバ
    • SC440+xen+centos5
    • 動画変換&再生&ランキング&その他動画情報取得プログラム
  • 再生クライアント
    • ブラウザから起動する部分以外はMIDP2 + MMAPI
    • そいうわけでwillcomも使えるかも。(速度が厳しいが)


そのうち公開したいところですが、サーバ側で利用するアカウントが私のものなので、利用規約に反する場合、難しいかも。