やあ!
AVC +AACビデオRTMP
をストリーミングするためのストリーミングサーバーの作成。そして、それはでうまく動作します。しかし、フロープレーヤーや他のフラッシュビデオプレーヤーで強制的に動作させることはできません。rtmpdump
ハンドシェイク後のメッセージシーケンスは、FMS / RED5 / erlyvideo / haxevideoサーバーに似ています。さまざまなバリエーションを試しました。
Chromeデバッグコンソールから、すべてのネゴシエーションメッセージがflowplayerに渡されたものを確認できます。最後はonMetaDataです。この後、作業サンプル(rtmp://flash.tvwmedia.net/LiveVideo//Live300)が取得されNetStream.Buffer.Full
ます。そして、私のサーバーからのストリーミングはそれを取得しません。
sps/ppsを含むAVCヘッダーメッセージから始めています。それの後、最初のAVC画像が通過しました。後-AACヘッダーとAACサンプル。そして、AVC/AACサンプル。これはOKをダンプしましたrtmpdump
-私は出口でflvを動作させています。しかし、flowplayerなどは機能しません。
- 何が問題になる可能性がありますか?
- ストリームに追加の要件はありますか?
- 壊れたh264ストリームが原因でflashplayerの再生が停止する可能性はありますか?Flash Playerからシステムメッセージを取得することは可能ですか?
願っています、あなたは私を助けることができます:)私は2週間にわたってこの問題と戦っています、そして今私が試すことができるどんな変種も知りません。
これがからのデバッグログ+flvですrtmpdump
。交渉メッセージとメディアの最初のサンプルが含まれています。
アップデート:
私は1つのバグを修正しました:「システム」メッセージに使用される間違ったチャンクストラムID(例SetChunkSize
)。しかし、それはまだ再生されていません。これは、 wowzaが生成するものとほぼ同じ別のログです。そして、wowza / red5ログも(比較するために)。
RTMPサーバーで異なる次のことを確認しました。
- 異なるChunkStreamID(非システムストリーム用)
- さまざまなStreamID(上
createStream
) - 128bank4Kbチャンクサイズ
- アンパック/パックされたチャンクヘッダー(以前のログにはアンパックされ、新しい-パックされたものがあります)
connect
通話中のさまざまな回答(多くのサーバーから)- を使用して
57 00
、57 01
ビデオパケット(ビデオ情報/コマンドフレーム) - 各画像の前に09(アクセスユニット区切り文字)NALUを追加
- オーディオ/ビデオDCR/パケットの順序が異なる
- オーディオのみ/ビデオのみ
しかし、それをすべて調整しても、とにかくサーバーが機能しませんでした:)
これを解決する方法はありますか?
アップデート:
Peterが提案したように、 Flazrプロキシを介してログを作成しました。結果は同じです。そして、私は解決策を見つけることができません:両方のログは良さそうです。たぶん私は簡単なものを見ていません...
ありがとうございました!