zaurus で radiko を聴く!その2

さてさて、DB の故障などちょっとゴタゴタしてましたが、radiko 関係の作業を再開し、新しい radiko-kit を作りました。

変更点は以下です。

  • mplayer のサイズを小さくした
  • mplayer がスペカ無しでも実用的な速度で動作できるようになった
  • radiko.sh を同梱

まず、前回の mplayer が 6.5MB とあまりにもサイズが大きかったので、ちょっとダイエットしました。

前回の時点でも不要なデコーダを全部切ったつもりだったんですが、まだまだ大量に残っていたようで、不要なデコーダをガンガン消したら1.4MB台になりました笑顔

まだまだ不要な処理はたくさんあるんですが、ひとまずこれくらいにしておきます。

2つ目は、mplayer の高速化です。プロファイラにかけて重そうな処理を探したところ、ループ内で浮動小数演算を使っていたので、整数化してみました。そうしたらスペカ無しでも実用的な速度で再生できるようになったようです。

3つ目は radiko 再生用のスクリプトを同梱しました。引数に放送局IDを指定すると再生できます。

$ ./radiko.sh TBS 

放送局IDは以下のようです。

関東地区

  • TBS – TBSラジオ
  • QRR – 文化放送
  • LFR – ニッポン放送
  • NSB – ラジオNIKKEI
  • INT – INTER FM
  • FMT -TOKYO FM
  • FMJ – J-WAVE

関西地区

  • ABC – ABC ラジオ
  • MBS – MBS ラジオ
  • OBC – ラジオ大阪
  • CCL – FM COCOLO
  • 802 – FM80.2
  • FMO – FM OSAKA

あとはフロントエンドですね。もう少しお待ちください。

zaurus で radiko を聴く!その2” への11件のフィードバック

  1. buchiさんこんにちはkanonです。

    すばやいですねえ。
    もちろんスペカ適用の当方の環境では問題なく動作してます。
    相変わらずシンボリックリンク張りまくってますけど(^^;)

    radiko.shの同胞のおかげで入力が簡単になりました(^_^)v

    ただ例示の$ ./radio.sh TBSは$ ./radiko.sh TBSの間違いですね(^^;)

    1. kanon さん、早速試していただきありがとうございます。

      > 相変わらずシンボリックリンク張りまくってますけど(^^;)
      mplayer だけじゃなく、rtmpdump も1MB越えですからね。
      どっちももっと小さくなるとは思うんですが、それほどモチベーションが上がらないので・・・(^^;

      > ただ例示の$ ./radio.sh TBSは$ ./radiko.sh TBSの間違いですね(^^;)
      あ・・・直しておきます。
      ご指摘ありがとうございました!

  2. bucchi さん、おはようございます。ブースカです。
     サイトのサーバーの更新お疲れさまでした!!。bucchi さんのサイト自宅サーバーだったんですね、ハードウェアの管理とかセキュリティ対策がたいへんそうですね。私はへたれなのでブログは「はてなダイアリー」だし、Wiki サイトは「さくら」のレンタルサーバーという状態です。それから、測定した訳ではないのですがサーバー更新後にホームページのレスポンスが良くなった気がします。
     話しは変わって、radiko-kit の矢継ぎ早のリリースありがとうございました。あいかわらず仕事が早いので感心しております。今回の mplayer の高速化はすごくうれしいです。
     ということで、早速 ridiko-kit v101107 を試してみました。
     テストは、今回バージョンの目玉である mplayer の高速化を検証すべく Normal Kernel の SL-C860 と SL-C シリーズでは最初に発売され CPU が最も非力な SL-C700 を使用して行いました。
     テストの結果、非力な Normal Kernel の SL-C700 でも音飛びや瞬断、ノイズ等の発生もなく快適に聞けました。また、 Normal Kernel の SL-C860 では、さらに CPU に負荷をかけるべく「radiko」の再生中に NetFront v3 を起動し Web ブラウジングを行うという無謀なテストを実施しましたが、こちらも難なくパスし、音飛びや瞬断、ノイズ等の発生もなく快適に聞けました。ということで、 v101107 の「mplayer」はファイルサイズのダイエットと相まって完成の域に達していると思います。

    □Normal Kernel の SL-C700 でのテスト結果について
    【テスト結果】
     以下の条件でテストを実施しましたが、非力な Normal Kernel の SL-C700 でも音飛びや瞬断、ノイズ等の発生もなく快適に聞けました。ただ、SL-C860 に比べると CPU 能力に余裕が無いようで、再生中にキー入力や他のアプリケーションの起動等を実行すると、瞬断やノイズが発生します。しかし、欲張らずに「radiko」単独で利用するには Normal Kernel の SL-C700 でも充分であることが確認できました。

    【テスト条件】
     ・機種名:SL-C700
     ・ROM バージョン:1.50JP
     ・Kernel:Normal Kernel
     ・ネットワーク:無線 LAN、WAN 側は ADSL(平均2.5Mbps程度)
     ・試聴した放送局:TBS
     ・コマンドオプション:「zaurus で radiko を聴く!」(http://petit-noise.net/blog/20101103/zaurus%E3%81%A7radiko%E3%82%92%E8%81%B4%E3%81%8F%EF%BC%81)で例示されていたもの

    【スクリーンショット】
    ※タスクトレイの無線LANのアイコンが真っ赤ですが、CF 無線 LAN カードに LA4137 を使用しているため、ドライバーが古く、電波強度の情報が正常に取得できないためで、無線LAN自体の通信状態は正常です。
     ・radiko-kit v101107 のテストに使用した SL-C700 Normal Kernel 機のシステム情報
      URL : http://f.hatena.ne.jp/ole-shikou/20101109075422
     ・SL-C700 Normal Kernel 機での radiko-kit v101107 のテスト (1)
      URL : http://f.hatena.ne.jp/ole-shikou/20101109075421
     ・SL-C700 Normal Kernel 機での radiko-kit v101107 のテスト (2)
      URL : http://f.hatena.ne.jp/ole-shikou/20101109075420

    □v101103 と v101107 の「mplayer」の CPU 利用率の比較
     (以下、2010/11/03 にリリースされた radiko-kit の最初のバージョンを v101103 と記します)
     今回の mplayer の高速化の効果を具体的な数値で確認したいと思い、v101103 と v101107 の「mplayer」の CPU 利用率を比較してみました。
     具体的には、Normal Kernel の SL-C860 上で、2つのバージョンの radiko-kit を切り換えながら、実際に番組を再生させ、別のターミナルを起動して「ps」コマンドにより CPU 利用率を測定しました。
     その結果、つぎのようになりました。v101107 の「mplayer」の CPU 利用率は v101103 の45%程度に抑えられていることがわかりました。この効果のためか Normal Kernel の SL-C860 でも音飛びや瞬断、ノイズ等の発生も全くなく快適に聞けました。さらに CPU に負荷をかけるべく「radiko」の再生中に NetFront v3 を起動し Web ブラウジングや Shift+Fn+C キーによるスクリーンショットの撮影等、無謀なテストを実施しましたが、こちらも難なくパスし、音飛びや瞬断、ノイズ等の発生もなく快適に聞けました。ということで、 v101107 の「mplayer」はファイルサイズのダイエットとともに完成の域に達していると思います。

     バージョン  CPU 利用率
     v101103   82.5%
     v101107   37.7%

    【スクリーンショット】
     証拠としてスクリーンショットを撮りましたので、「はてなフォトライフ」へアップロードしましたご参考まで。なお、同時に実装されているオーディオコーデックのリストも表示しました。
     ・radiko-kit v101103 と v101107 の「mplayer」のCPU利用率[%]の比較
      URL : http://f.hatena.ne.jp/ole-shikou/20101109062425
     ・radiko-kit v101107 の mplayer のCPU利用率について(SL-C860 Normal Kernel)
      URL : http://f.hatena.ne.jp/ole-shikou/20101109075419

    【テスト条件】
     ・機種名:SL-C860
     ・ROM バージョン:1.40JP
     ・Kernel:Normal Kernel
     ・ネットワーク:無線 LAN、WAN 側は ADSL(平均2.5Mbps程度)
     ・試聴した放送局:TBS
     ・コマンドオプション:「zaurus で radiko を聴く!」(http://petit-noise.net/blog/20101103/zaurus%E3%81%A7radiko%E3%82%92%E8%81%B4%E3%81%8F%EF%BC%81)で例示されていたもの

    1. □v101103 と v101107 の「mplayer」の CPU 利用率の比較
      のスクリーンショットでタイトルが間違っていました。すいません。

      【誤】radiko-kit v101107 の mplayer のCPU利用率について(SL-C860 Normal Kernel)

      【正】radiko-kit v101103 の mplayer のCPU利用率について(SL-C860 Normal Kernel)

      1. ブースカさん、お久しぶりです。
        返信遅れてすいません。

        またまた詳細な結果ありがとうございます。
        具体的な数値として結果を見ると結構早くなっているのが一目瞭然ですね。
        「完成の域」とブースカさんのお墨付きをいただきありがとうございます (^^)

        SL-C700 ではちょっときついみたいですね。
        2つ目のスクリーンショットに写っていますが、mplayer 再生時に表示される
        ???% という数字 (スクリーンショットでは 100.7%) は、音声データの時間に対する
        デコードにかかった時間を表しています。
        例えば、10秒の音声をデコードするのに 5 秒かかった場合は 50% という具合です。
        これが 100% を越えると、音声データの時間よりデコードの時間が長くなってしまい、瞬断や音飛びが発生します。

        SL-C700 では 100% 近辺のようなのでかなりギリギリということになりますね。

    2. いいなradiko。札幌じゃまだだめなんで,悲し。試したいなぁ。
      ザウルスがまだまだ進化している!!って実感します。

      1. chida さん、お久しぶりです。
        radiko 配信エリア狭すぎですよね。
        FM は無理ですが、AM だったら関東からラジオ大阪とかも聞けるのに。
        ちょっと厳しすぎる気がします。

        すでに radiko としてインターネット配信を開始している放送局からすれば、
        配信エリアは広くするリスクはなく、メリットしかないはずなので、
        今後全国配信になってくれることを祈るばかりです。

  3. bucchi さん、おはようございます。ブースカです。

    >「完成の域」とブースカさんのお墨付きをいただきありがとうございます (^^)
    いえいえ、これは私の評価なので、ぜひ他の方の動作報告も参考にしてください。

    >SL-C700 ではちょっときついみたいですね。
    >2つ目のスクリーンショットに写っていますが、mplayer 再生時に表示される
    >???% という数字 (スクリーンショットでは 100.7%) は、音声データの時間に対する
    >デコードにかかった時間を表しています。
    >例えば、10秒の音声をデコードするのに 5 秒かかった場合は 50% という具合です。
    >これが 100% を越えると、音声データの時間よりデコードの時間が長くなってしまい、瞬断や音飛びが発生します。

     mplayer が動作中に表示する[%]の意味は、デコード処理能力を表していたんですね。解説ありがとうございました。勉強になりました。
     あと、『SL-C700 ではちょっときついみたいですね。』というのが気になったので、再度 mplayer のデコード処理時間(能力)について検証してみました。実は使ってみた感じでは、デコード処理能力は、

    SL-C700 Normal Kernel radiko-kit v101107 > SL-C1000 Special Kernel radiko-kit v101103

    で、「SL-C700 Normal Kernel+radiko-kit v101107」は、そんなに悪くないかなという印象だったので。

    【mplayer デコード処理時間(能力)検証結果】
     ということで、mplayer のデコード処理時間(能力)に絞って再度検証してみました。
    なお、検証にあたっては、mplayer が起動してデコードが開始されてからだいたい30秒~2分ぐらいで数値が安定し、ほとんど上下しなくなります。このタイミングでスクリーンショットを撮り、その数値を読み取り整理しました。
     ちなみに、前回報告の際の SL-C700 のスクリーンショット(100.7%)は mplayer 起動直後に取得し、デコード処理時間[%]の数値が安定しない前のものだと思います。

                radiko-kit   mplayer
    機種    Kernel  Version   デコード処理時間
    ---- ---- ---- --------
    SL-C700  Normal  v101107   70.0%
    SL-C860  Normal  v101103  165.0%
    SL-C860  Normal  v101107   39.0%
    SL-C1000 Special  v101103  101.5%
    SL-C1000 Special  v101107   35.3%

    【スクリーンショット】
    ・mplayerデコード処理時間 – SL-C700 Normal Kernel radiko-kit v101107
     URL : http://f.hatena.ne.jp/ole-shikou/20101111032033
    ・mplayerデコード処理時間 – SL-C860 Normal Kernel radiko-kit v101103
     URL : http://f.hatena.ne.jp/ole-shikou/20101111032034
    ・mplayerデコード処理時間 – SL-C860 Normal Kernel radiko-kit v101107
     URL : http://f.hatena.ne.jp/ole-shikou/20101111032035
    ・mplayerデコード処理時間 – SL-C1000 Special Kernel radiko-kit v101103
     URL : http://f.hatena.ne.jp/ole-shikou/20101111032036
    ・mplayerデコード処理時間 – SL-C1000 Special Kernel radiko-kit v101107
     URL : http://f.hatena.ne.jp/ole-shikou/20101111032037

    【考察】
    (1) やはり、「SL-C700 Normal Kernel radiko-kit v101107」については印象が
      当たっていました。数値が落ち着いた段階でデコード処理時間は「70.0%」
      となり、「SL-C1000 Special Kernel radiko-kit v101103」の「101.5%」より
      も小さくなりました。「101.5%」の状態の SL-C1000 では、キー入力等の
      操作で確実に音飛びやノイズが発生しますが、「70.0%」の状態の SL-C700
      ではキー入力(メモ帳を起動し文字入力)では音飛びやノイズはありません
      でした。
    (2) また、v101107 の mplayer の最適化は、Normal Kernel に対しての方が効果
      が格段に大きいようです
      SL-C860 Normal Kernel v101103/v101107=165.0%/39.0%=4.23倍
      SL-C1000 Special Kernel v101103/v101107=101.5%/35.3%=2.87倍
    (3) さらに、radiko-kit v101107 を利用し、mplayer の処理能力が「40%」以下の
      場合、かなり安定してデコードされており音飛びや瞬断、ノイズ等の発生も全
      くなく快適に聞けました。また、「radiko」の再生中に NetFront v3 を起動し
      Web ブラウジングや Shift+Fn+C キーによるスクリーンショットの撮影等を
      実行しても音飛びや瞬断、ノイズ等の発生はありませんでした。
    (4) 前々回にご報告したように、SL-C860 Normal Kernel と radiko-kit の初期
      バージョン v101103 の組み合わせは、音飛びがひどく視聴に耐えません。、
      また、数分で mplayer が強制終了してしまいます。これは、デコード処理時間
      「165.0%」が物語っていますね。

    【共通のテスト条件】
     ・ネットワーク:無線 LAN、WAN 側は ADSL(平均2.5Mbps程度)
     ・試聴した放送局:TBS
     ・コマンドオプション:「zaurus で radiko を聴く!」(http://petit-noise.net/blog/20101103/zaurus%E3%81%A7radiko%E3%82%92%E8%81%B4%E3%81%8F%EF%BC%81)で例示されていたもの

    以上、長文失礼いたしました。

    1. ブースカさん、いつもありがとうございます。

      いつもいつも詳細なご報告ありがとうございます。
      v101103 ではスペカの SL-C1000 でも 100% 越えていたんですね。
      印象的にギリギリ再生できてるかなって感じだったんですが、ほんとにギリギリだったみたいです (^^)

      SL-C700 でも 70% でデコードできてるなら少し余裕があるので十分実用的ですね。いい感じです。

      v101107 ではメインループで浮動小数演算を使わなくなっているので
      同じ機種ならスペカでもノーマルカーネルでも大体同じ速度でデコードできると思います。
      なので SL-C860(Normal) と SL-C1000(スペカ) で大体同じ性能なのだと思います。

      フロントエンドも簡易的ながら完成したので、今からアップする予定です。
      お楽しみに。

  4. bucchiさん、ありがとうございます。

    C1000 + bitwarpでストレスも無く明瞭に聴こえます。
    うれしい!!

    現在愛媛県から聴取していますが、関東圏の放送局のみなんですよね。

    関西圏の放送局を聴取したいのですが、こればっかりはradikoとbitwarp側の問題ですから仕方が無いですね。

    LANカードに切り替えると関西圏の放送局が聴けるので切り替えながらやっていきます。

    ただ少し気になるところは、PHS・LAN共に聴いているうちにフッと音が消える事が有ります。
    [Stop]&[Play]で元に戻りますが。

    とにかく素晴らしい。ありがとうございます。

    1. 689 さん、こんにちわ。

      chida さんからもご報告ありましたが、bitwarp を使うと
      地域外からでも関東の radiko が聞けるんですね。
      LAN と切り替えてどちらも聞けるのは羨ましい限りです。

      > ただ少し気になるところは、PHS・LAN共に聴いているうちにフッと音が消える事が有ります。
      うーん。rtmpdump か mplayer かが異常終了してしまっているのかもしれません。
      終了時のエラーメッセージをダイアログで表示できるとなにか手がかりが分かるかもしれませんね。
      ちょっと対応を考えてみます。

      ご報告ありがとうございました!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です