Androidローカルソケットからh264コード化されたデータを読み込んでパケット化するアンドロイド用のrtpビデオストリーマを作成しています。私がやったのは、クライアント側(Voip)で黒いフレームが得られているということです。rtpストリームでAndroid h264キャプチャを送信
通信はこのように書きます:アンドロイド - >アスタリスク - > Jitsi(OSX)(およびリバース)
私はまだ理解していないいくつかのことがあります。
1)Androidのmediarecorderができます私は生のh264ストリームです。ストリームに基づいてNALの開始/終了を知るにはどうすればいいですか?これは、任意の0x000001のパターンを持っていないが、それは
EDIT(Iセパレータであると仮定しています)0000持っている:より多くの情報を追加する
を。これらは2(first、second)の異なる入力バッファの読み込みです(順番に)。私がそれを正しくしたら、最初の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を送信しようとしました。
乾杯。
Androidは、解析する必要のある生のh264ストリーム(AFAIU)を送信しますが、NALの開始/終了位置を知るにはどうすればよいですか?それが私の主張であり、何かが欠けていると思う。 – FlaPer87
RTPを使用していないことは確かですか? – Ralf
AFAIKこれはRTPを使用していません。私はそれを言っている文書は見つけられていません。 – FlaPer87