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とかの動画ファイルで試した方が良いだろう。
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