2011-08-17 8 views
6

フレーム単位でビデオファイルをステップ実行する方法はありますか?私はVideoViewを使ってみましたが、私は小さな成功を収めました。私はビデオをキーフレームで得ることができますが、個々のフレームではできません。私は、これがデフォルトの設定であると考えました。特にビデオ圧縮の仕方がわかりました。このデフォルトの動作や設定を変更する方法はありますか?フレーム単位でビデオフレームを探す

答えて

5

ステージフリーメディアフレームワークのデフォルトの動作は、常にキーフレームを探すことです。 (以前のフレームワークの - デフォルトのシーク動作が時間を追求することだったopencoreとは対照的に)

Androidで提供されているMediaPlayer APIを使用して、フレーム単位でシークすることはできません。

フレームごとにフレームシークを実装するには、FFMPEGのようなサードパーティのマルチメディアフレームワークを使用する必要があります。そうしないと、独自のフレームワークを実装する必要があります。

+0

私は自分自身を実装して共有すると思います。 – Spidy

+0

ええ私はビデオカメラでこの問題に遭遇しました。また、スキャンでオブジェクトを処理するときにフレームを表示したり表示したりすると、時間とフレームレートの制御が厳しくなってからMJPGに行きました。 – JPM

+0

このような方法でビデオを録画すると、すべてのフレームがキーフレームになりますか? ;) – Moonlit

0

あなたはMediaMetadataRetrieverを見ましたか?あなたはgetFrameAtTime(long timeUs, int option)を使用し、Bitmapを返すことができます。

用途に応じて、多分あなたが必要とするものです。

+0

私はそれを試してみる必要があります。ローカルメディア(URLベースのメディアではない)でしか動作しませんが、動作すれば正しい方向への一歩です。 – Spidy

+0

あなたがまだ知らなかった場合[MediaPlayer Sourcecode](http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=media/java/android/media) /MediaPlayer.java;hb=HEAD)。 'getFrameAt'は使用されず、非推奨です。 MediaPlayerの実装を見ておくとよいでしょう。 Raviが言ったように:あなたはあなた自身を実装するかもしれません。 – proxylittle

関連する問題