動画再生機としてのRaspberry Pi2

 Raspberry Piが搭載するBCM2835は”1080p30 Full HD HP H.264 Video Encode/Decode”が可能である。
(参照: High Definition 1080p Embedded Multimedia Applications Processor – BCM2835 | Broadcom)

 つまり簡単に言えば、FullHD 30fpsのH.264動画をハードウェア支援によってスムーズに再生できる。ということである。この仕様はRaspberry Pi2でもどうやら変わっていない。

 1920x1080pxの解像度がある30fpsまでのH.264動画を再生できれば大抵の場合は困らないと思うが、私の場合は再生速度を上げてアニメを視聴することがあるため、FullHD未満の解像度でも1.5倍程度の速度で再生できるかどうかが重要になってくる。

 ところが、Raspberry Pi(2)におけるハードウェア支援を用いた動画再生は、omxplayerというプレイヤーで使えるものの、私が普段愛用しているMplayer2では不可かあるいは困難らしい。問題なのはこのomxplayerで再生速度が自由に変更できないこと。一応再生速度を変更するホットキーが割り当てられてはいる (man参照)ものの、実際操作してみても再生速度が全然変化しなかった (将来のアップデートで改善される可能性はあり)。

 ならばMplayer2でハードウェア支援を使わず再生できるのか、というのがこの記事の本題。旧タイプのRaspberry Piでは、640x360pxのH.264動画 (niconico動画)も滑らかに再生することはできなかったが、Raspberry Pi2であればどうだろうか。私が試したところ、niconico動画からダウンロードした640x360pxのH.264動画は、Raspberry Pi2だとMplayer2を使って1.5倍速+scaletempoでフレームドロップを許可せずとも滑らかに再生することができ、音声と映像の大きなズレは発生しなかった。ただし、シングルスレッドでは映像のデコードが間に合わないので、スレッド数をRaspberry Piが有する4コアCPUに合わせて4にしてやる必要がある (やりかたはman参照)。4スレッドでデコードした場合、先の動画はCPU利用率200%を前後しつつ、遅延無く再生できた。960x540pxや1280x720pxといった解像度の動画では4スレッドにしても映像のデコードが遅れた (エンコードのプロファイルなど、条件は色々あるが割愛する)。

 ところが、Raspberry Pi(2)でMplayer2を使った場合、フルスクリーンでの再生、というか拡大再生が出来ないっぽいという問題が残る。-fsオプションでフルスクリーンにしても、本来のサイズの動画の周囲に黒枠が表示されるだけで、拡大されないのである。-voオプションを指定すれば解決するかと思ったが、どうも無理らしい。これでは動画をじっくり鑑賞するという用途には使えない。デスクトップ環境の中で、複数のウィンドウを立ち上げながら動画を見るという場合には、等倍表示でいいかも知れないが、そういった使い方をする人は極僅かだろう。そもそも、上記のような方法でハードウェア支援無しの動画再生をしていたら、他の作業をするのに十分なリソースが残らない。

 というわけで、現在のところ高解像度のH.264動画を、再生速度を速めてRaspberry Piで再生する、ということは難しいようだ。omxplayerのアップデートを待つしか無い。

Post a Comment

Your email is never published nor shared.