2011年2月25日
AndroidのVideoViewにてHTTP経由で再生できない件
Android で動画再生するには VideoView を使うと簡単だよ。って話はそこらじゅうに転がっている。確かに簡単である。
しかし、ネット越しに再生しようとすると、"Sorry, this video is not valid for streaming to this device." というメッセージが出て再生できない。ローカルに置けば再生できる。エミュレータでは失敗するのに、実機だと再生できちゃったりする。
エラーメッセージでググっても、なんだか要領を得ない情報しか引っかからない。
エラーメッセージから考えると、プログラムが悪いんじゃなくて、ファイルが悪いのだろう。だが、ストリーミングに向いてないとはどういうことだろうか?
いろいろ調べたら、ドコモiモーション向けの話だが、mdatの前にmoovが必要だとか書いてある。それを調べるには MP4Boxというコマンドで、というので手元のmp4ファイルを調べてみたら、その順番で格納されているようだ。
MP4Box についていろいろ調べたら、他にも情報が見つかった。-inter 500 オプションを付けて実行し、変換すると良いらしい。
その通りやってみたら、めでたく再生できた!
詳細については、さらにググって調べて下さい。
エミュレータの動画再生能力は実機よりも貧弱で、重い動画は真っ暗になる場合がある。絵が出ないのはなんでだろうとか余計なことで悩まないように、320x240とかの動画ファイルで試した方が良いだろう。
Posted by rukihena at 02:12:28
トラックバックURL
このエントリーのトラックバックURL:
http://weblog.rukihena.com/mt/mt-tb.cgi/896
コメント