2012-01-03 53 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浏览器