6

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

我还尝试看看这些项目:Mooncatventures 的 RTSPPlaykolyvan 的 kxmovie

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

我也想尝试Live555,但我无法看穿所有这些晦涩难懂的文件,我再次无法监督文档以及如何为 iphoneos 构建库(我读到它是接收 RTSP 流的最简单方法,但它是与其他项目相同的一堆令人困惑的文件)

也许如果有人尝试使用这些项目或自己开发了一个应用程序可以帮助我使用他/她的源代码,或者如果有人正在查看 FFMPEG / Homebrew made dir 的所有内容,他/她可能会向我解释如何使用它,那可能帮助我和所有其他正在寻找解决方案的绝望开发人员。

只是一点点编辑:我正在尝试接收 RTSP H.264 解码的视频流。

在此先感谢莫里斯·阿里科格鲁。(如果您需要任何类型的源代码、链接、屏幕截图等,请告诉我)

4

2 回答 2

2

对于任何正在寻找可用的 RTSP 播放器库的人,请查看我在网上找到的 Durfu 的 Mooncat Fork ,它在 iOS 8 上运行良好。其中包含一个示例代码,如果您在实现方面遇到困难,我可以帮助您.

于 2014-11-02T12:36:27.270 回答
1

我已经检查了您提到的许多项目,并且在这些项目上经验丰富..

您可以使用 ffmpeg 库来制作 rtsp 流式客户端,因为 ffmpeg 支持 rtsp 协议...但是我在测试中看到一个重要问题,即 ffmpeg 的 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 A. 解码音频包 - avcodec_decode_audio4 b。用 audiounit/audioqueue 框架填充音频缓冲区 B. 解码视频包 - avcodec_decode_video2 b。将 yuv 图片转换为 rgb 图片 - sws_scale 或 opengles 着色器

祝你好运...

于 2013-08-24T08:21:14.607 回答