2012-10-16 47 views
0

嗨有一臺播放器在端口1935上使用rtmp數據包在防火牆上工作。我得到的問題是在啓動播放器後20秒開始流式傳輸。防火牆在rtmp flash播放器上延遲20秒

什麼可能導致此問題。

當防火牆關閉時,玩家開始立即從開門射出。

+1

聽起來像網絡滯後;也許防火牆以某種方式解析每個數據包? – JeffryHouser

+0

我試過這個http://dl.dropbox.com/u/2918563/flvplayback.swf進行流式處理,並且它運行良好,即使防火牆處於打開狀態,它也能很好地傳輸流。所以我猜測玩家有一些問題。什麼shoudl我添加到AS3代碼流rtmp上端口1935 – Vlad

回答

0

事實證明,玩家獲取主機名而不是IP地址進行流式傳輸,因此它需要20秒才能完成。好吧,我們發現DNS並未正確解析流式傳輸的URL :)因此,使用真實IP地址來流式傳輸而不是主機名稱

1

RTMP上的Flash播放器有一個回退鏈,它們試圖在TCP:1935處連接,如果失敗,請嘗試TCP:80。此回退鏈可能需要一段時間,特別是如果防火牆丟棄1935個數據包而不是拒絕它們。

如果您有權訪問防火牆配置,請嘗試將1935策略更改爲允許或拒絕(但不丟棄)。

否則,如果您可以修改HTML,則可以嘗試將RTMP鏈接URL架構更改爲「rtmpt://」而不是「rtmp://」。這將導致播放器立即嘗試端口80(儘管當端口1935上的RTMP工作時,它比端口80上的RTMPT更好)。

+0

我在1935年我的代碼rtmp錯過了什麼?我已經爲rtmp實現了標準的as3 netconnection和netstream,並且播放器工作良好,但是當firwall處於開啓狀態時,它會延遲20秒,直到開始流式傳輸 – Vlad

+0

如果您在as3中打開「rtmp://」資源,並且端口1935可以不會連接,它會嘗試在端口80上重新連接(不需要你明確地編寫任何代碼)。如果使用「rtmpt://」,它將強制連接從一開始就位於端口80上。 – onon15