2011-04-30 188 views
13

我是很新的媒體流,我有一些基本的疑惑清除:流媒體基礎知識 - HTTP VS RTMP

  1. 至於我能理解,HTTP流之間的差異(通過Apache說)和RTMP流媒體(通過Red5)是流媒體服務器提供緩存和高級控制,如尋找等。我是對的嗎?

  2. 我可以只傳輸像Red5這樣的RTMP服務器的Flash視頻嗎?如果我必須傳輸不同格式的文件,那麼我是否需要進行HTTP流傳輸?我可以使用像xuggler這樣的工具來動態轉碼文件並根據Red5服務器的請求發送文件嗎?

我冒充這些懷疑,因爲我必須提供串流到所有的移動客戶端 - iPhone,黑莓,Android - iPhone不支持Flash,因此它是一個好主意,去的Red5?

回答

22

讓我稍微詳細一點以清楚細節。

1)什麼是「流式傳輸」。通常在視頻流的世界裏是根據實時傳送幀。如果你有30分鐘的視頻,它將在30分鐘內發送給用戶。有專門的流媒體專用協議:RTSP(也許是今天生活的古代),RTMP,MJPEG,基於http協議的家族(蘋果,abobe,microsoft)以及其他一些封閉的供應商協議。

2)什麼是「http-streaming」或「僞流式傳輸」。如果你只是把你的文件放在HTTP服務器上,用戶可以下載並觀看。如果他下載完整的視頻,他甚至可以在裏面尋找。但是,如果用戶想要在沒有下載第一部分的情況下尋找電影的中間,會發生什麼? 它應該以某種方式告訴服務器:打開文件容器,找到這一刻並將文件打包回來。因此,HTTP服務器必須知道文件容器的結構才能向客戶端提供查找功能。

nginx和apache可以爲flv和mp4容器做到這點,這對100%的視頻來說是可以的,可以通過Flash Player播放。

3)什麼是現在流行的HTTP流。 蘋果,Adobe和微軟已經在HTTP之上設計和實現了流媒體。這意味着客戶端下載10秒段,仍然保持適當的幀率。 30分鐘的電影仍在30分鐘內下載,但分段下載之間存在很大的延遲。 可以在這種「格式」中查找,切換比特率等。

4)像Red5或erlyvideo這樣的RTMP流媒體服務器可以傳輸H.264,H.263,VP6和屏幕視頻。不支持MPEG-4(Xvid/DivX)或MPEG-2。

+0

這裏HLS和HTTP漸進式下載之間的清晰和詳細的解釋:http://www.streamingmedia.com/Articles/Very/Featured-Articles/HTTP-Streaming-What-You-Need-to-Know-65749。 ASPX – Buzut 2015-02-18 20:23:49