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 | Comments [0] | Trackbacks [0]

2011年2月20日

バックアップ失敗

 Acronis True Image でバックアップしているんだが、ある日突然失敗するようになった。ちょうどバックアップ先の容量が不足しているので、それが原因かと思った。一度、空にしてみたが、同じくエラーが出る。バックアップ先をフォーマットして、バックアップ設定も一度削除して作り直しても、エラーが出る。

 バックアップ元がぶっ壊れているのかなと思って、フォーマットを試みようと思った。そのためにはバックアップが必要。しかし、そのバックアップが失敗している・・・。

 とりあえず FastCopy で退避することにした。

 すると、昔々のメールデータ(Beckyのbmfファイル)でウィルススキャナが反応。もしや、このファイルが読めなくて失敗していたのか?

 削除して、True Image を動かしたら、正常にバックアップできた。

 しかし、なぜ True Image が動いているときに、ウィルススキャナがブロックするのにウィルススキャナがエラーを明示的に出さないのだろうか?True Image も、「Failed to prepare data stream. Check whether the source and target partitions exist.」って、適当なメッセージでお茶を濁してるんじゃねーよ。と、思いました。

 ちなみに、なぜ昔々のデータが突然ブロックされるようになったかは、たぶんパターン定義ファイルが更新されて網の目が細かくなったため。当該ウィルスのパターン更新日が失敗の前日だった。計らずとも、Microsoft Security Essentials の検知能力の低さが露呈した?

 引っかかったウィルスはこれ。
 PWS:HTML/Bankfraud

Posted by rukihena at 20:40:04 | Comments [0] | Trackbacks [0]