2012-01-03 64 views
1

我試圖從iPhone直播一些視頻內容到互聯網(或服務器)。我已閱讀以下帖子(http://stackoverflow.com/questions/4084811/iphone-http-live-streaming-without-any-server-side-processing)使用FFMpeg直播流媒體視頻文件從iPhone到互聯網

而且我明白我可以先捕捉圖像和音頻文件,然後發送到互聯網。但我真的不知道如何開始不斷髮送這些視頻文件的工作。

我知道我可以使用ffmpeg做流媒體部分。經過長期研究,我只能找到一個使用FFmpeg庫的名爲iFrameExtractor的示例程序。但該示例僅顯示如何使用ffmpeg播放視頻文件,但沒有關於如何使用ffmpeg中的實時串流功能的示例...

任何人都可以提供指導或教程如何使用流媒體直播視頻文件ffmpeg的?或者任何人都可以建議其他方法來解決這個問題?我相信很多人都想知道如何做到這一點。

+0

我在做同樣的工作有點,但沒有運氣到現在......你找到的東西......? – kashifmehmood 2013-11-11 05:40:08

回答

0

對於流式傳輸,您可能需要使用ffserver。這是FFmpeg項目發佈的命令行工具,它可以處理流式傳輸。

+0

你介意更詳細的解釋嗎?我知道ffserver可能會有幫助,你會提供任何樣本嗎? – 2012-01-16 20:46:01

+0

[FFserver指南](http://linux.goeszen.com/ffserver-guide.html) – sashoalm 2012-01-17 08:12:44

0

不直接回答你的問題,但你有沒有考慮NAT /防火牆問題?

即使您能夠在iPhone上成功運行HLS(或其他)服務器,並且您的手機已連接到Internet,但由於NAT,防火牆等因素,並不一定意味着客戶端可以連接到它。如果您的iPhone應用將通過3G使用,這是一個重要的考慮因素。

您可能最好是寫一個web服務器,iPhone首先上傳未處理的視頻幀,然後在您的web服務器上轉碼並運行媒體服務器。這樣可以節省iPhone的電池續航時間,有助於避免在iPhone上移植ffserver(這並不容易),當然也可以讓您在網絡服務器上部署強大的媒體服務器。

+0

不,我不打算在我的iphone上託管服務器。您建議的解決方案可能能夠解決我的問題。你會進一步描述你的想法嗎?就像你將如何將單個幀發送到服務器並將其轉碼爲視頻並直播一樣。 – 2012-01-25 16:40:39

+0

1)[Capture](http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/CameraAndPhotoLib_TopicsForIOS/Articles/TakingPicturesAndMovies.html)iOS 2上的視頻)當您收到視頻時,請將其上傳至您的webserver 3)使用FMS/Red5進行流式傳輸。如果您不確定是否需要將幀集合到視頻流中,請在OpenCV – 2012-01-26 05:15:25

+0

中查找攝像頭抓取代碼以獲得第1步和第3步,我可以使用AVAssetwriter編寫視頻文件(mov,mp4)並使用FMS實時流接收的視頻文件。 但是對於第二步,如何上傳到網絡服務器? http文件上傳? RTMP?我知道iphone本身不支持RTMP。有一些RTMP靜態庫可以做到這一點,比如librtmp和rtmpdump。我谷歌超過幾個月,我找不到任何示例如何在xCode項目中使用這些庫。我只能找到教程如何在Windows,Linux,Mac等使用這些庫,但這些示例顯示如何在命令行中執行該操作... – 2012-01-26 06:58:29

0

我已經做了類似的簡單的演示工作,在這裏是如何工作的:

的iOS側
1.使用的ffmpeg或其他SDK捕捉小的視頻文件
2.它們發送到服務器時間戳和爲了

服務器端
1.接收到的文件
2.將它們轉換成TS格式與TS文件
3.寫一個html顯示TS文件

如何看待他們
訪問該HTML與Safari瀏覽器