使用Xcode 4.6.1在iOS 6上进行RTSP流式传输

时间:2013-06-27 17:20:06

标签: iphone ios xcode ffmpeg rtsp

我需要开发一个能够接收RTSP流的应用程序。 我试着在互联网上找到解决方案/教程一整天,但没有任何成功。 我阅读了很多关于使用FFMPEG或Live555的内容(更多FFMPEG,我也读到使用最新版本的FFMPEG时不需要Live555),但是当我在stackoverflow上发现问题时,我无处可见它以我能理解的形式描述答案非常简短,我无法弄清楚他们试图解释什么。 所以现在我需要问问自己。 我用“Homebrew”下载并安装FFMPEG,现在当我查看我的目录/ usr / local / 我可以看到,已安装的文件包含在“Cellar”的子文件夹中 Cellar dir

我还试着看看这些项目:RTSPPlay by Mooncatventureskxmovie by kolyvan

我并没有真正弄清楚如何使用这些项目,文档无限期且“模糊不清”。 好吧,当我尝试编译这些项目时,kxmovie会出现错误,例如“缺少avformat.h”, error missing avformat.h 我将usr / local / cellar / ffmpeg / 1.2.1 / lib中的dylib添加到项目中,但似乎这不是正确的方法。 与RTSPPlay xcodeprj几乎相同的问题,它给出了“Entitlements.plist”丢失的错误,在完全删除了该文件的链接之后我得到了99+ Apple Mach-O链接器错误,老实说我无法理解为什么

我也想尝试Live555,但是我无法看清所有这些模糊和混乱的文件,我再也无法监督文档以及如何为iphoneos构建库(我读它是最简单的方法接收RTSP流,但它与其他项目有相同的混淆文件堆栈)

也许如果有人尝试使用这些项目或开发应用程序本身可以帮助我使用他/她的SourceCode,或者如果有人看到FFMPEG / Homebrew的所有内容制作了dir,他/她可以解释我如何使用它,这可能会帮助我和正在寻找解决方案的所有其他绝望的开发人员。

稍微编辑:我正在尝试接收RTSP H.264解码视频流。

先谢谢,Maurice Arikoglu。 (如果您需要任何类型的SourceCode,Links,ScreenShots等,请告诉我们)

2 个答案:

答案 0 :(得分:2)

对于正在寻找有效的RTSP播放器库的人来说,看看我在网上发现的Durfu's Mooncat Fork,它在iOS 8上工作得非常好。如果你努力与实施我可以帮助你。

答案 1 :(得分:1)

我已经检查了你提到过的许多项目,并且对这些项目有很好的经验......

您可以使用的ffmpeg库做出RTSP流媒体客户端,ffmpeg的支持RTSP协议......但是有我&#39一个重要的问题,已经在我的测试,FFmpeg的&#39看到; S RTSP协议有一些重要的使用UDP传输层进行流式传输时出现问题...即使使用最新版本(2.01),许多RTP数据包在流式传输过程中也会丢失,因此有时会出现故障......如果使用TCP或http传输层,那么它运行良好......

对于live555项目,当流式传输rtsp流时,此库适用于UDP和TCP传输。但是ffmpeg功能非常强大/具有许多功能而不是live555。

如果您决定使用ffmpeg,那么基本上,您应该按照以下步骤进行操作

  1. 建立连接 - avformat_open_input
  2. 查找音频/视频编解码器 - avcodec_find_decoder
  3. 打开音频/视频编解码器 - avcodec_open2
  4. 在循环中读取来自文件/网络流的编码数据包 - av_read_frame 一个。   一个。解码音频数据包 - avcodec_decode_audio4   湾使用audiounit / audioqueue框架填充音频缓冲区 B. a。解码视频数据包 - avcodec_decode_video2   湾将yuv图片转换为rgb图片 - sws_scale或opengles着色器
  5. 祝你好运......