1

Android カメラには、フレームを byte[] データとして返す onPreviewFrame コールバックがあります。

1280 x 720 のバイト [] データ (NV21 形式) を返すようにカメラをセットアップしました。

私がやりたかったこと:

一部のフレームを 1280 x 720 の解像度 (jpeg) に保ちたいと思います。

そして、より低い解像度 (720 x 480 など) で mp4 エレメンタリー ストリームを生成します。

問題

MediaFormat.Key_Width と MediaFormat.Key_Height が onPreviewFrame の幅と高さと等しくない場合、MediaCodec はエラーになります。

byte[] データ (NV21) を 1280 x 720 から 720 x 480 のような低い解像度にスケーリングし、エンコーダーにフィードすることが可能かどうかを知りたいですか?

可能であれば、解像度 1280 x 720 の NV21 の byte[] データをより低い解像度に変換する手順を教えてください。

読んでくれてありがとう。提案や助けをいただければ幸いです。

4

1 に答える 1

0

はい、可能です。ライブラリhttps://code.google.com/p/libyuv/をご覧ください。yuv 画像のスケーリング、異なるカラー フォーマット間の変換、SIMD 最適化が可能です (かなり高速です)。

于 2013-11-06T08:33:21.900 に答える