2016-11-14 4 views
0

Camera2 APIを使用してカメラからビデオをキャプチャしています。 Camera2にはsetDisplayOrientation()と同等の機能がないため、プレビューを回転させる必要があることを理解しています。マトリックスを使用してプレビューを回転することができます。AndroidCaptureを使用して作成されたサーフェスを回転させます

私はまた、ビデオをエンコードするためにMediaCodec APIも使用しています。ただし、電話機を180度回転させると、エンコードされたビデオは反転されます。私は、エンコードされたビデオをどのように回転させるかについてのアイデアはありません。

設定中にMediaFormatでKEY_ROTATIONを試しました。しかし、私はこれがデコード(出力面)の間だけであると思います。

ありがとうございました!

+0

''マトリックスを使ってプレビューを回転することができます。あなたができる場合は、問題は何ですか? – pskink

+0

問題は、MediaCodecのcreateinputsurfaceを使用して追加されたサーフェスが回転していないためです。 – Ajay

+0

なぜマトリックスを使用してプレビューを回転できないのですか? – pskink

答えて

0

Camera2はここでは直接関係しません。カメラ2の場合は、MediaRecorder.getSurface()MediaRecoder.setOrientationHint()メソッドを使用してMediaRecorderを使用して、目的の向きを設定できます。

MediaRecorderの代わりにMediaCodecを使用している場合は、そこにオリエンテーションフラグはありません。すべてのMediaRecoderが要求された方向をビデオファイルのメタデータに書き込むため、対応するメソッドはMediaMuxer.setOrientationHintです。実際のフレームは一般にエンコーダによって回転されない。

エンコードされたバッファをビデオファイルにラップするのではなく、別の方法(ビデオチャットなどのネットワーク伝送)で消費する場合は、エンコードされたフレームとともにオリエンテーションを渡して、受信側であなた自身を変換してください。

+0

ありがとう!私はこれを期待していました - コード化されたバッファーで方向情報を送ること。 – Ajay

+0

ビデオを実際に回転させる方法があるかどうか知っていますか?これは、特定の動画プレーヤーでサポートされるかどうかを示すメタデータのみを変更します – nhenrique

関連する問題