taktod/myLib

rtmpのストリームに関する動作メモ

taktod opened this issue · 3 comments

いままでは、音声のflipはありましたが、最近では映像のflipも検知しました。

音声は、生情報にデータがduration情報が載るのでそっちからずれを判定することができますが、映像には、長さという情報が載っていないので、どうするかなぁ。

とりあえず、各frameのduration値を取得するようにして、ずれがあるか検知可能な体制にする予定。

FlashMediaLiveEncoderでFlashMediaServerにデータを転送したときに発見した。
h264のデータが次のようになっていてびっくりした。
flv形式として、size + nalになっているときのsliceのデータで発見
size + [slice + 00 00 00 01 [FilterData]]となっていた。
FilterDataは0xFFで埋められているbitrateを調整するためのものっぽい。
いままでsizeの部分でnalのsizeがfilterData込みになっていたので、動いていたけど、H264のFrameプログラムでPackBuffer化してからNalデータとして分解すると、このfilterDataの部分が表にでてきて、プログラムが潰れたorz

音声について、volumeLevelを設定している場合
音声フレームが復帰した瞬間に一部、前のtimestampのデータが送られてくるみたいです。
これがちとやっかい