2012-05-12 34 views
3

Androidローカルソケットからh264コード化されたデータを読み込んでパケット化するアンドロイド用のrtpビデオストリーマを作成しています。私がやったのは、クライアント側(Voip)で黒いフレームが得られているということです。rtpストリームでAndroid h264キャプチャを送信

通信はこのように書きます:アンドロイド - >アスタリスク - > Jitsi(OSX)(およびリバース)

私はまだ理解していないいくつかのことがあります。

1)Androidのmediarecorderができます私は生のh264ストリームです。ストリームに基づいてNALの開始/終了を知るにはどうすればいいですか?これは、任意の0x000001のパターンを持っていないが、それは

EDIT(Iセパレータであると仮定しています)0000持っている:より多くの情報を追加する

を。これらは2(firstsecond)の異なる入力バッファの読み込みです(順番に)。私がそれを正しくしたら、最初の4バイトはNALUの長さを取得するために使用され、5番目のもの(インデックス4)はNALUヘッダーです。

私は、将来の使用のためにここでのバイトの値をコピーします:

1) 0 0 12 114 101 -72 4 25 -15 -1 -121 -53 ..... 

    length = (114&0xFF) + (12&0xFF)*256 + (0&0xFF) 
    length -> 3186 

    forbidden = 101 & 0x80 
    forbidden -> 0 

    nri = 101 & 0x60 
    nri -> 96 

    nal_unit_type = 101 & 0x1F 
    nal_unit_type -> 5 


2) 0 0 1 -93 97 -32 32 103 -14 93 -1 .... 

    length = (-93&0xFF) + (1&0xFF)*256 + (0&0xFF) 
    length -> 419 

    forbidden = 97 & 0x80 
    forbidden -> 0 

    nri = 97 & 0x60 
    nri -> 96 

    nal_unit_type = 97 & 0x1F 
    nal_unit_type -> 1 

これが正しいのですか?

2)ストリームからNALuタイムスタンプとその長さを取得するにはどうすればよいですか?

3)何らかの理由で、パケットがマークされています(マーカーを設定しなくても)。 [はFIXED:私はすべてのパケットに対して同じSSCRを使用していませんでした](あなたがPCAPファイルをチェックする場合)

ここでアスタリスク(ウィッヒは、Androidから来ている)からのストリームのpcapキャプチャです。 Androidデバイスは、Android ICSを搭載したAsus Transform Primeです。変更されたパラメータが、何も

私はSDPでパケット・モード(1)とプロファイルレベル-ID(42801e)を送信するよ、私はまた、(::Z0KAHpWgUHxA、PSP aM48gA== SPS)spropsを送信しようとしました。

乾杯。

答えて

0

1) "android h264 stream format"はありません。 RTPがトランスポートプロトコルとして使用される場合、パケット化はRFC6184に従うべきです。開始コードは、RTPペイロードフォーマットには存在しません。 RTPパケットに含まれるものは、NALユニットが集約され、断片化されるかどうかを指定するパケット化モードに完全に依存します。詳細については、packetization modesのRFCセクションを参照してください。パケット化モードは、通常、SDPを介して通信される。

2)タイムスタンプはRTPヘッダーの一部です。 NALユニットの長さは、パケット化モードに依存する。

3)マークがついていますか? RTPマーカービットが設定されていることを意味しますか?そうであれば、これはRFCで規定されている規則に従わなければなりません。

+0

Androidは、解析する必要のある生のh264ストリーム(AFAIU)を送信しますが、NALの開始/終了位置を知るにはどうすればよいですか?それが私の主張であり、何かが欠けていると思う。 – FlaPer87

+0

RTPを使用していないことは確かですか? – Ralf

+0

AFAIKこれはRTPを使用していません。私はそれを言っている文書は見つけられていません。 – FlaPer87

関連する問題