适用于 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流媒体服务