ビデオをビットマップのシーケンスにデコードして、それらを修正してアンドロイドのビデオファイルに戻す必要があります。MediaCodecとMediaExtractorを使ってビデオをデコードしてコード化する
getFrameAtTime
を使用してこれを管理し、画像シーケンスに保存する予定です。その後、シーケンス内の画像を変更し、ムービーに戻すことができます。しかし、私はこれに2つの問題があります:
- 最初に、私が読む通り、
getFrameAtTime
はサムネイルを作成するためのものであり、正しいフレームを返すことを保証するものではありません。これにより、ビデオが遅くなります。 - 第2に、画像を保存して読み戻すのに時間がかかります。
デコードを行う正しい方法はMediaExtractorを使用することですが、これは問題ありませんが、surfaceView
に直接レンダリングする例があります。 outputBuffer
をビットマップに変換する方法はありますか?
私はそれが16以上のAPIレベルで動作するようにする必要があります。
問題は、私はすでにこのサイトを見たということですが、残念ながら私はたとえ16とLVL APIのためにそれを行う必要がありますExtractMpegFramesTest.javaにはAPI 16が必要ですが、ビルドしようとすると少なくとも17 ...必要です。オプションではありません。 –
あなたは険しい戦いをしています。それは一般的に動作する必要がありますか、これは特定のデバイス向けに構築されただけなのでしょうか? (私はExtractMpegFramesTestをチェックします - それは17+から何も必要とは思わなかった) – fadden
これは一般的で、api lvl 16 +にする必要がある問題です...私はgetFrameAtTimeソリューションを保存しないでこのように数回スピードアップしても、まだフレームが2回抽出されるという問題があり、ビデオが遅くなり、どのようにオーディオを追加することができないのでしょうか?ビデオをビットマップに分割し、オーディオ付きの新しいビデオファイルを作成する提案はありますが、16 + –