8

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

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

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

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

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

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

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

4

4 回答 4

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

于 2013-02-28T22:29:35.120 回答
0

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

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

于 2013-05-06T17:44:07.143 回答
0

你真的需要在发布之前搜索堆栈溢出,这个问题已经被问过很多次了。是的,有 555 种作品,我们中的一些人已经让它工作了。

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

于 2013-02-26T16:02:35.160 回答
0

在 iOS Safari 上显示 RTSP 视频有两种通用技术:

  • RTSP / HLS (H.264+AAC)
  • RTSP / Websocket(H.264+AAC ==> MPEG+G.711 或 H.264+?)

对于 HLS,您可以考虑使用 Wowza 服务器。对于 iOS Safari 中的 Websocket 播放,您可以使用WCS4 server

websocket 播放的主要思想是直接将 HTML5 渲染到 HTML 页面 Canvas 元素和音频上下文。在 MPEG 播放的情况下,视频解码将在 iOS Safari 端使用纯 JavaScript 完成。

另一种选择 - 安装支持 getUserMedia 的 WebRTC 插件并通过 WebRTC 播放此流。无论如何,在这种情况下,您将需要一个服务器端 RTSP-WebRTC 转码器。

于 2015-09-10T16:48:55.943 回答