mplayer の最適な設定
ベンチマークに用いたムービーはこちら(http://www2.odn.ne.jp/~ccs50140/beyond_cloud/index.html)の cloud_l.mpg を TMpegEnc で VideoCD 規格にエンコードし直したもので、CF に置きました*1。ベンチマークは -benchmark を用いて行ないます。
まず、オプションについて。-quiet はターミナルへの無駄な出力を抑えて負荷を軽くするために、-framedrop は映像と音の同期を取るためにどんな場合でも必須だと思います。
mplayer -quiet -framedrop -vo fbdev cloud_l.mpg BENCHMARKn: disp: 3919 (20.14 fps) drop: 1930 (32%) total: 5849 (30.06 fps)
最初は W100 を使わずに再生してみました。
mplayer -quiet -framedrop -vo fbdev:vidix cloud_l.mpg BENCHMARKn: disp: 5184 (26.66 fps) drop: 665 (11%) total: 5849 (30.08 fps)
次に W100 を使っての再生です。さきほどの結果に比べて 1.23 倍速くなっています。これからはこの結果を基準に比較していきます。
mplayer -quiet -framedrop -vo fbdev:vidix -dr cloud_l.mpg BENCHMARKn: disp: 5246 (26.99 fps) drop: 603 (10%) total: 5849 (30.09 fps)
-dr は中間バッファを用いないで直接フレームバッファに画像を描画するオプションです。1.2% の速度向上が見られます。僅かな差ですが、使って損するものでもないです。
mplayer -quiet -framedrop -vo fbdev:vidix -double cloud_l.mpg BENCHMARKn: disp: 5357 (27.55 fps) drop: 492 (8%) total: 5849 (30.08 fps)
-double を指定するとダブルバッファリングを行なうようになります*2。2.1% 高速になっています。
mplayer -quiet -framedrop -vo fbdev:vidix -vop rotate=1 cloud_l.mpg BENCHMARKn: disp: 4313 (22.18 fps) drop: 1536 (26%) total: 5849 (30.08 fps)
前回までの設定だけでは画像が左に 90 度回転した状態になっており、実用にはなりません。よって普通はこのオプションを使うでしょう。ただし、16.8% も遅くなってしまいます。
mplayer -quiet -framedrop -vo fbdev:vidix /mnt/smb/cloud_l.mpg BENCHMARKn: disp: 2239 (11.51 fps) drop: 3613 (61%) total: 5852 (30.08 fps)
参考までに USB 接続した母艦から Samba 経由で再生した場合です。帯域が細いのか、CPU を持っていかれるのか分かりませんが、お話にならない遅さです。
以上の結果から、普通に使うのであれば "-frameskip -quiet -vo fbdev:vidix -dr -double -vop rotate=1" が最適だと思います。
個人的にはダウンロード、キャプチャーしたムービーで、そのまま SL-C750 で再生可能なものは殆ど無い*3ですから、いつも必要に応じて再エンコードしています。で、どっちみち再エンコードをするのであれば、ついでにムービーそのものを左 90 度回転させて 240x320 にしてしまうのが良いと思います*4。そうすれば -vop rotate=1 が必要無くなり、特に負荷の高い mpeg4 系の再生が少し軽くなるでしょう。