4

AndroidフォンからPCのデスクトップRTSPサーバーにライブビデオをストリーミングしようとしています。ストリーミングされたビデオは、別のデバイスで再生できます。私はH.264ビデオエンコーダーを使用しているので、サーバーから返されるSDP(要求の応答として)には、フィールドとフィールドDESCRIBEが含まれている必要があります。profile-level-idsprop-parameter-sets

Spydroidプロジェクトは、SDカードに記録されたダミーファイルから(avcCブロックから)解析してこれらの情報を抽出する方法を示しています。しかし、私はそのようにすることはできません。Spydroidでは、メディアレコーダーとRTSPサーバーが同じデバイス上にあるため、サーバーはストリーミング前にレコーダーと同じ構成でテストファイルをいつでも記録できます。しかし、私はビデオを電話からリモートサーバーにRTPストリームとして直接ストリーミングしています。

だから私の質問は:

  1. プロトコルを維持しているサーバーにこれらの値を提供するにはどうすればよいですか?
  2. RTPストリームからこれら2つのフィールドを見つける方法はありますか?

編集:

ストリームを生成するためにAndroidスマートフォンを使用していますが、サーバーは任意のソースからRTPストリームを受信できます。それで、これらの値を取得する一般的な方法はありますか?

4

1 に答える 1

7

シーケンスパラメータセットのNALユニットから抽出できますprofile-level-id(実際、パラメータセットがストリームで送信されている場合でも)。これは、NALヘッダーの後の最初の3バイトです。つまり、レベル3.0のベースラインプロファイルストリームからのSPSNALユニットの最初の4バイトは次のようになります。

67 42 00 1E

最初のバイトを無視します。これは、それがSPS NALユニットであることを示しています(0x67 & 0x1F == 0x7SPSはNALタイプ7、PPSはNALタイプ8)。他の3バイトは、プロファイル、制約フラグ、およびレベルを提供します(実際、3バイト目のレベル×10です)。

sprop-parameter-setsは、Base64でエンコードされたシーケンスパラメータセットと画像パラメータセットで、コンマで区切られています。したがって、Base64だけでSPSおよびPPS NALユニット(Nalタイプ7およびNALタイプ8)をエンコードし、コンマで区切ってください。

于 2012-09-09T18:51:03.910 に答える