2

Androidでビデオをキャプチャするには2つの方法があることを理解しています。
1) SurfaceView API を使用
2) MediaRecorder API を使用

Android (3.0+) のデフォルト エンコーダーを使用して H.264 でエンコードされたフレームをキャプチャし、RTP を使用してネットワーク経由で送信したいと考えています。

SurfaceView および SurfaceHolder クラスでプレビュー コールバックを使用している間、ユーザーにプレビューとして表示される生のフレームを取得できます。「PreviewCallback」クラスの「onPreviewFrame」メソッドでフレームを取得していました。ただし、これらのフレームは H.264 でエンコードされています。そこで、「MediaRecorder」APIでH.264エンコーディングを設定し、「SurfaceView」でプレビューフレームを取得してみました。この場合、プレビューコールバックは呼び出されません。

これを達成する方法を教えてください。私たちの主な目的は、H.264 でエンコードされたフレーム (Android のデフォルト コーデックを使用してエンコードされています) を取得することです。参照: 1) https://stackoverflow.com/a/8655244/698316 2) 同様の問題: http://permalink.gmane.org/gmane.comp.handhelds.android.devel/214422

Android のデフォルトの H.264 コーデック サポートを使用して、H.264 でエンコードされたフレームをキャプチャする方法を提案できますか。

4

1 に答える 1

3

Spydroid http://code.google.com/p/spydroid-ipcamera/を参照してください。

基本的には、ビデオ エンコーダーが H.264 を含む .mp4 を、書き込み時にコードを呼び出す特別なファイル記述子に書き込むようにします。次に、MP4 ヘッダーを取り除き、H.264 NALU を RTP パケットに変換します。

于 2012-11-29T15:38:36.867 に答える