問題タブ [android-mediacodec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2696 参照

android - MediaCodec エンコードで BUFFER_FLAG_SYNC_FRAME フラグが無視される

私の Android アプリケーションでは、MediaCodec を使用して一部のメディアを webm (vp8) 形式でエンコードしています。エンコーディングは期待どおりに機能しています。ただし、時々同期フレームを作成する必要があります。これが私がすることです:

コードの後半で、同期フレームを確認します。

問題は、isSyncFrame が真の値を取得しないことです。

エンコーディング設定を間違えているのではないかと思っています。同期フレームを時々作成するようにエンコーダーに指示するより良い方法があるかもしれません。

MediaCodec のバグでないことを願っています。よろしくお願いいたします。

0 投票する
1 に答える
4084 参照

android - 動画を正しい向きで表示する Android TextureView の作成方法

Android_4.1 MediaCodec API を使用して、カメラからキャプチャしたビデオ データをエンコードし、ビデオ データをデコードして TextureView にビデオを表示したいと考えています。これですべて問題ありませんが、TextureView はデコードされたビデオを正しい向きで表示できませんでした。この2枚の写真を見てください。

1.図1

ここに画像の説明を入力

2.図2

ここに画像の説明を入力

Figure1 の TextureView は、必要な向きを示しています。この TextureView はsetRotation ( 90)と呼ばれます。しかし、常に機能するとは限りません。

ここに私のカメラのパラメータがあります:

TextureView の width = screenHeight と height = screenWidthを設定しようとしましたが、 parameters.setPreviewSize(480, 640)を設定しようとしましたが、機能しません。

私の質問は、ビデオを正しい向きで表示するためにフルスクリーンの TextureView を作成するにはどうすればよいですか?

私は英語が苦手です、あなたが私を理解してくれることを願っています。

どんな助けでも大歓迎です.Thank!

0 投票する
3 に答える
15437 参照

android - MediaMuxer エラー「マルチプレクサを停止できませんでした」

MIME タイプ "video/avc" をCamera使用してプレビュー データをエンコードし、エンコードされたデータ (ビデオのみ、オーディオなし) を に渡します。マルチプレクサは正常に動作しているようで、適切なサイズの出力ファイルを作成します (つまり、記録が長くなるほど大きくなります)。ただし、マルチプレクサを停止しようとすると、「マルチプレクサを停止できませんでした」というエラーが表示されます。MediaCodecMediaMuxer

失敗した停止の前に、いくつかの疑わしい MPEG4Writer ログ メッセージがあります。

これを引き起こしている手がかりはありますか?さらに必要な情報がわからない。

0 投票する
1 に答える
3468 参照

android - MediaCodec と出力形式

MediaDecoder クラスを使用してビデオ プレーヤーを作成しようとしていますが、開発が妨げられているという問題に遭遇しました。

ここにコードスニペットがあります

問題は、デバイスごとに印刷される出力形式が変わり、Open GL テクスチャに印刷できないことです。

デコーダーに常に同じフォーマットを強制的に出力させる方法はありますか? いいえの場合、変換を行うために利用できるライブラリを知っている人はいますか?

洞察に感謝します

0 投票する
1 に答える
3326 参照

java - GLSurfaceView で MediaMuxer / MediaCodec InputSurface を使用するには?

BigFlakeの例に続いて、次のようなコメントがあります。

EGL14.getCurrentContext()は現在のコンテキストを照会し、それをEGL14.eglCreateContext()share_context パラメーターに渡しますが、どのように「EGL コンテキストを切り替える」のですか?

GLSurfaceView と MediaCodec.inputSurface には 2 つの異なるサーフェスと 2 つの異なるコンテキストがあるためeglMakeCurrent()、各セットを個別に呼び出すだけだと思いますが、正しいですか? またはする必要がありますeglDestroyContext()eglDestroySurface()

追加されたアップデート

ありがとうFadden、私はdrawFrameの代わりにdrawImageを呼んでいたが、もう一度画像を更新する必要はないはずだ、このエラーを理解したと思う.

glError 1285EOS が設定された後に dequeueBuffer が呼び出されると、メモリ不足エラーが発生しますか??? 録音が停止した後に呼び出しているのかもしれません。ご協力いただきありがとうございます。

MyEGLWrapper.java に EGLSurface を作成する

CaptureManager.java 内

SurfaceTextureManager.java 内

SurfaceTextureManager.javaのエラーmSurfaceTexture.updateTexImage();