如何在iOS中从IP Camera / CCTV显示RTSP

时间:2013-02-25 09:25:04

标签: ios ios4 streaming video-streaming live-streaming

显然有一种方法可以做到这一点,因为很多应用程序已经在做这件事了 - NetCamViewer和iCamviewer仅举一例。

我已经搜索过并搜索过,但是我找不到任何有价值的东西来暗示这是如何完成的。我正在伸出手,希望有人能给我一些线索。

我正在尝试连接支持RTSP协议的视频安全摄像头(Y-CAM),并从我的iPhone / iPad应用程序显示视频。相机有一个IP地址,我可以从网络浏览器和Mac上运行的Quicktime查看视频。问题是iOS上不支持RSTP,因此即使尝试在iPad上使用Safari进行连接也不起作用。

我读过有些人正在尝试使用Live5555,但我还没有看过一篇描述它是否成功完成以及如何成功的文章。

另一种方法是在服务器上捕获RTSP流,将其转换为HTTP Live流,然后从iOS连接到HTTP Live流。不幸的是,事实证明这并不容易。

我更喜欢像我见过的其他应用程序一样直接进入相机。如果必须的话,RTSP to Live是一个后退。

非常感谢任何提示。谢谢!

3 个答案:

答案 0 :(得分:11)

这是错误的:)或者没有必要(另一种方法是在服务器上捕获RTSP流,将其转换为HTTP Live流,然后从iOS连接到HTTP Live流。不幸的是,这并未证明是听起来很容易。)

你应该使用ffmpeg库,因为这个库可以连接任何流媒体服务器(支持rtsp,mms,tcp,udp,rtmp ...)然后将图片绘制到屏幕上..(对于绘图你可以使用opengles或uiimage也有效)

首先,使用avformat_open_input连接到您的IP地址 然后使用avcodec_find_decoder& avcodec_open2找到编解码器并打开它们(你应该为音频和视频调用它们)

然后,在while循环中使用av_read_frame方法从服务器读取数据包 当你得到帧时,如果它是音频然后发送到AudioUnit或AudioQueue, 如果是视频,则使用sws_scale方法将其从yuv转换为rgb格式,并将图片绘制到屏幕上。

就是这样。

看看这个包装器(http://www.videostreamsdk.com),它写在ffmpeg库上并支持iOS

答案 1 :(得分:0)

你真的需要在发布之前搜索堆栈溢出,这个问题已被多次询问。是的555种作品,我们中的一些人已经开始工作..

还有其他玩家,包括我们的http://www.streammore.tv/

答案 2 :(得分:0)

您可以在GitHub上找到适用于iOS的开源 FFMpeg解码器(和某些示例):https://github.com/mooncatventures-group

此库的示例使用:http://sol3.typepad.com/exotic_particles/