适用于 iOS 设备的非 http 流媒体视频

Posted

技术标签:

【中文标题】适用于 iOS 设备的非 http 流媒体视频【英文标题】:non http streaming video for iOS devices 【发布时间】:2011-10-14 16:41:40 【问题描述】:

我正在使用 wowza 将源 rtsp 流重新传输到多种类型的终端设备。由于基于 http 的流的缓冲限制,我不能将它用于我的应用程序。我的转播需要使用 RTMP 或 RTSP。

除此之外:HTTP 分组流需要大约 3 倍的密钥长度,或 30 秒的视频(银光和快速时间),所以我必须在 wowza 中保持我的源流打开以保持缓冲区。这在我的应用程序中是不可能的,因为我必须节省 wowza 和源流之间的带宽。

据我了解,ios 不支持 RTMP。这样就剩下了适用于 iOS 设备的 RTSP。

使用 JWPlayer 之类的东西来保持一致性会很好,但是 JWplayer 不支持 RTSP!!

那么,有没有一个优雅的解决方案。 JWplayer 之类的东西会自动为正确的客户端播放器提供服务(RTSP 和 RTMP 客户端是唯一需要的)。还是我必须扮演自己的角色。

【问题讨论】:

【参考方案1】:

我认为VideoJS 是一个很好的解决方案。它是免费的,并且与 Wowza 向 iOS 发送视频的 H264 方式兼容

您可以基于VideoJS创建自己的JS html5播放器,源代码在GitHub:https://github.com/zencoder/video-js,许可为LGPL。

【讨论】:

发帖人说 HLS 被排除在外是因为过时,重新流式传输总是会出现这个问题。真正的 rtspplay 确实使用 sdl ,但您没有提及该 git 上不使用 sdl 的其他玩家。最好的解决方案是提供的 ffmpeg+avfoundation+audio api。 sol3.typepad.com/exotic_particles 这甚至相关吗?它最后一次回答是在 9 月,但问题是 1 岁,我投票结束。【参考方案2】:

您有多种解决方案可用于 iPhone 上的 rtsp 流式传输。您可以从中选择最合适的解决方案。

    https://github.com/mooncatventures-group/RTSPPlay - 这使用 SDL 框架封装 ffmpeg,如果您正在寻找对 UIKit 元素的标准和完整控制,这可能没有太大帮助。

    Live555 + FFMPEG - 有像 dropcam (https://github.com/dropcam/dropcam_for_iphone) 这样的应用程序可以做到这一点,这可能是一个有趣的方法。

    音频流 - 如果您尝试仅流式传输音频,您也可以尝试从 http://www.themidnightcoders.com/download.html 下载 medialib 演示。

【讨论】:

【参考方案3】:

根据我使用 ffmpeg 的经验,任何基于 ffmpeg 的客户端都可以播放 rtsp 和 rtmp 流。所以,在github上搜索ffmpeg,可以找到一些开源客户端..

【讨论】:

以上是关于适用于 iOS 设备的非 http 流媒体视频的主要内容,如果未能解决你的问题,请参考以下文章

JavaCV音视频开发宝典:使用javacv读取GB28181海康大华平台和网络摄像头sdk回调视频码流并转码推流rtmp流媒体服务

适用于 iOS7 的 iOS 音频流媒体

SRS流媒体服务进行视频推送拉取

SRS流媒体服务进行视频推送拉取

SRS流媒体服务进行视频推送拉取

MPMoviePlayerController - 流媒体适用于 3GS,不适用于 3GS 之前的任何东西