4
A
回答
3
不是100%確定,因爲您沒有提供代碼或示例流來測試,但是您對HTTP範圍請求的處理已損壞。
在您的示例請求中,客戶端發送Range: bytes=0-
,並且服務器與1MiB響應來響應:
Content-Length: 1048576
(又名1 MIB)Content-Range: 0-1048575/...
這是錯誤的,客戶沒有要求這個!它確實請求bytes=0-
,這意味着從位置0到整個流結束的所有數據(見http 1.1 RFC),即響應等於1而沒有任何Range
。 (IIRC,Firefox仍然會發送Range: bytes=0-
來檢測服務器是否首先處理範圍)。
這與Content-Length
相結合,導致客戶端(Firefox)認爲整個資源只有1MiB的大小,而不是真正的大小。我想你的測試流的前1個MiB會以1:06的音頻出現。
PS:Content-Duration
標題(又名RFC 3803)是瀏覽器通常不會實現的,只是忽略。
0
只是一個想法。您嘗試了一些HTTP 3xx標頭,如: '308恢復未完成'或'503服務暫時不可用'加'重試後:2'或'413請求實體太大'加'重試後:2'
相關問題
- 1. 火狐忽略身高:贊成內容
- 2. 火狐忽略填充
- 3. 轉碼和流音頻 - 如何發送內容範圍標頭
- 4. 火狐不播放聲音
- 5. 忽略文本的標頭內容
- 6. Flash內容不只能火狐
- 7. 火狐插件忽略I幀
- 8. 火狐忽略背景大小的CSS
- 9. 火狐17.0.1忽略字體重量
- 10. 火狐15.0忽略元的charset = 「UFT-8」
- 11. 火狐12種忽略樣式輸入[類型=「電子郵件」]
- 12. CSS響應IMG火狐
- 13. 只播放某一範圍的幀
- 14. Rails validates_uniqueness_of忽略範圍
- 15. Lua忽略範圍變量
- 16. 忽略了日期範圍
- 17. CodeBlocks斷點忽略範圍
- 18. 播放框架忽略進化腳本
- 19. 限制Setter範圍並應用接口後,範圍被忽略!
- 20. EnumType.STRING通過ebean忽略和播放2
- 21. 響應超出範圍的多播
- 22. 如何使產生相同的響應頭火狐
- 23. 發送http 404頭和顯示內容
- 24. 讀取播放WS變量值響應範圍
- 25. 只忽略輸入樣式?
- 26. 發送中介忽略HTTP請求數據(僅發送標頭!)
- 27. CSS:如何使一個範圍只與其內容一樣寬
- 28. uploadify火狐崩潰onsuccess響應提醒
- 29. NVDA +火狐不讀內容正確
- 30. 流式播放wav文件到ipad和火狐<audio>
就是這樣。謝謝。 – skmasq
只是一個想法。有沒有人嘗試過一些http 3xx頭文件?'retry-after:1'和'503 Service Temporarily Unavailable'頭文件。這超過了模擬最大執行時間。 –
FWIW,IE + Edge和Chrome在服務器以低於請求的響應時都可以正常工作 - 它們只是發出另一個請求,以便在響應停止的地方繼續。這反過來又可以在像Rails這樣的框架中實現視頻流,而不需要長時間運行的連接來捆綁一個流程。如果流的源頭是一個文件,那麼在前面加入類似nginx的東西可以解決這個問題,但是如果它是動態創建的,它不能。 –