2013-06-27 70 views
6

我需要开发一个应用程序,它能够接收RTSP流。 我试图在整个一天的互联网上找到解决方案/教程,但没有任何成功。 我读了很多关于使用FFMPEG或Live555(更多FFMPEG,我也读过使用最新版本的FFMPEG时没有必要使用Live555),但无论我看到它的形式,我都可以理解,当我发现问题时stackoverflow答案是非常短的,我无法弄清楚他们试图解释。 所以现在我需要问自己。 我用“自制”,下载并安装FFMPEG,现在当我看着我的目录的/ usr /本地/ 我可以看到这一点,已安装的文件都包含在“地窖”的子文件夹 Cellar dir使用Xcode 4.6.1在iOS 6上进行RTSP流式传输

我也尝试过看看这些项目:RTSPPlay by Mooncatventureskxmovie by kolyvan

我没有真正弄清楚如何使用这些项目,文档是无限期和“黑暗”的。 那么,当我试图编译这些项目的kxmovie failes错误,就像“缺少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。 (如果你需要任何种类的源码,链接,截图等等。请让我知道)

+0

可能不检查这些论坛就像我应该在rtspplay我们的小演示,你不需要entitlement.plist,则需要在老年人的Xcode版本也删除arm7s拱和编译为iPhone发布此意愿不适用于模拟器,仅适用于iPhone。同时我们也通过Facebook应用开发组 –

+0

支持,我们也有一些教程,这里www.streammore.tv –

回答

2

对于任何人谁正在寻找工作RTSP Player媒体库看看Durfu's Mooncat Fork我在网上找到的,它是在iOS 8上工作得非常好。包含示例代码,如果您在执行过程中遇到困难,我可以帮助您。

1

我已经研究很多,你提到的那些项目,并经历了那些好..

您可以使用由于ffmpeg支持rtsp协议,因此ffm​​peg库生成rtsp流媒体客户端......但是,在我的测试中发现了一个重要问题,即在使用UDP传输层进行流媒体播放时,ffmpeg的rtsp协议有一些重要问题...即使使用最新版本(2.01),许多RTP数据包在流式传输过程中丢失,因此图像有时会变得非常糟糕...如果使用TCP或http传输层,那么它可以很好地工作...

对于live555项目,当使用UDP和TCP传输流式传输时,此库可以很好地工作。但ffmpeg功能强大/具有比live555更多的功能。

如果你决定使用ffmpeg的话,基本上,你应该遵循下面的步骤,

  1. 建立连接 - avformat_open_input
  2. 查找音频/视频编解码器 - avcodec_find_decoder
  3. 开放的音频/视频编解码器 - 从文件/网络流avcodec_open2
  4. 读取编码的分组在环 - av_read_frame A. 一个。解码音频数据包 - avcodec_decode_audio4 b。用audiounit/audioqueue框架填充音频缓冲区 B. a。解码视频数据包 - avcodec_decode_video2 b。转换YUV图片为rgb图片 - sws_scale或opengles着色器

好运...

+0

可能你可能跟你解释更深? 如果你可以通过一步一步的指南解释我这将是很棒的谢谢! – Maurice