2011-12-12 99 views
11

我才意識到,蘋果需要的HTTP實時流,才能在iPhone應用程序來查看視頻。我沒有意識到這一點之前......我現在想明白這涉及,所以我可以決定我是否需要做的工作,並在3G或限制視頻播放給用戶誰連接到Wi-Fi提供的視頻。如何在Unix上實現HTTP Live Streaming服務器?

我讀蘋果公司提供的overview,現在明白,我的服務器需要分段和索引的媒體文件。我也明白,我沒有主機能夠以流其內容(我可以指向託管在其他地方,對視頻?)。

什麼在這一點上並不清楚,我是做什麼的我的服務器(Ubuntu的哈迪)來完成實際分段和索引的飛行(上實現再一次,我沒有承載我想要的影片服務)。

我發現一個link解釋如何安裝FFmpeg和X264,但我不知道這是否是最好的解決方案(因爲我有一個Ubuntu服務器,我不能使用Apple Live Streaming工具,它是否正確?)。另外,我不明白,在這一點我的服務器都知道,視頻需要轉換,並開始工作...

任何反饋,可以幫助我理解到底是什麼在服務器端做的是能流我的iPhone應用程序在3G的視頻將不勝感激! (呵呵,只是這有什麼差別,我的應用程序後端在Rails)的

+0

我建議FMLE&red5(超過rtmp)我會稍後回答,如果沒有人做 – malletjo

+0

感謝您的回覆。我只想澄清一件事,我對已錄製的視頻感興趣,而不是現場表演。 – alex

+0

您幾乎必須承載內容,才能從服務器中進行流式傳輸。您認爲託管和服務之間的區別是什麼?接受的答案與你的問題沒有任何關係,所以我不知道你爲什麼接受它。 – vipw

回答

8

如果你要流從您的網絡攝像頭直播內容:FMLE(Flash Media Live編碼)

如果你想流靜態內容(電影):FFmpeg的& xuggle

RED5:

你的媒體服務器可以是RED5(開源和免費的)或FMS或wowza。但我只用紅色5,我不知道其他人。你可以找到red5 here

你的服務器可以在任何地方,但你需要打開一些端口(至少1935爲rtmp),5080爲「管理面板」,你可以在列表中看到9999。 (檢查文檔)Red5是java中的媒體服務器,因此您需要java jdk> = 1.6。

的Red5 1.0 RC可以發現here。你可以找到一個版本的Windows,OSX或Linux。我使用了tarball版本。解壓縮並運行「red5.sh」。您應該可以通過http://localhost:5080/訪問管理員,並且您還應該看到正在顯示的視頻。如果不是這樣,那麼有些事情是錯誤的,在這個工作之前你不能再走了。

流與ffmpeg的:

你可以找到xuggle here,你可以找到關於這個here

ffmpeg -i your_file.flv -re -acodec copy -vcodec copy -f flv rtmp://localhost_or_yourred5serverip/live/livestream 

更多信息,請記住,如果你要流它在網絡只上的FLV和MP4可以播放Flash播放器(我認爲)。一旦流式傳輸,您應該可以在「管理面板」here中看到它。連接到您的服務器(rtmp:// localhost/live /)並轉到視圖選項卡並放入「livestream」。您可以使用mplayer rtmp:// localhost/live/livestream來查看您的視頻。

流中的flash播放器:

可以使用的Flowplayer(與RTMP插件)或jwplayer。

+0

這裏是一個後續問題:http://stackoverflow.com/questions/8497541/installing-faad-library-for-ffmpeg-through-homebrew-on-mac-os-x-lion如果你可以幫忙再次!謝謝。 – alex

+0

這可能會幫助你:http://jungels.net/articles/ffmpeg-howto.html – malletjo

0

流HLS最簡單的方法是使用像Wowza或FMIS(兩者都不便宜)。 Wowza將採用輸入方式(直播或存儲的VOD內容,並進行分割)

+0

Wowza有免費試用,值得一試 – onmyway133

12

有幾種競爭技術,但今天如果你想要任何文件兼容的蘋果設備(iPhone,iPad,等等),然後HLS是要走的路,順便說一句,它也支持大多數瀏覽器和Android,所以不是一個糟糕的地方開始,但請注意,儘管名稱不適合流式傳輸實況內容。視頻,你真的不需要red5或wowza或fms或類似的東西。HLS基本上是一組短視頻片段(例如每個5分鐘)以不同的比特率編碼,並且你給Flash或HTML5播放器的m3u播放列表在瀏覽器中,您可以決定segme nt長度或你如何編碼。

這是最好的文章中,我已經看到了關於如何選擇分辨率,比特率,段大小等:http://www.streamingmedia.com/Articles/Editorial/Featured-Articles/Adaptive-Streaming-in-the-Field-73017.aspx

從那裏,你只是舉例創建一個目錄結構,例如

 
/data/video/video_id/original.mp4 
/data/video/video_id/quality1/chunk1.mp4 
/data/video/video_id/quality1/chunk2.mp4 
/data/video/video_id/quality2/chunk1.mp4 
etc.. 

然後你需要爲所有的塊和資質的m3u播放,它是最多的球員本身來實現素質和播放下一個文件(其中最現代化的玩家已經有了)之間的切換。

我也強烈建議您查看:https://developer.apple.com/resources/http-streaming/ - Apple提供了一系列免費工具來爲HTTP Live Streaming準備視頻和播放列表。

+0

謝謝羅馬,一個非常好的鏈接(自適應流媒體 - 由揚厄澤爾)http: //www.streamingmedia.com/Articles/Editorial/Featured-Articles/Adaptive-Streaming-in-the-Field-73017.aspx –

相關問題