在 iPhone/iPad 上保存 HLS 流
Posted
技术标签:
【中文标题】在 iPhone/iPad 上保存 HLS 流【英文标题】:Save HLS stream on iPhone/iPad 【发布时间】:2012-06-23 16:35:21 【问题描述】:我有一个 iPhone/iPad 应用程序,可以播放电视频道的 HTTP 直播流。我想添加一个录制功能,以便像电视录像机一样在设备上保存直播。
我不知道这是否可能,但我认为我有两种方法可以记录流。
保存屏幕上显示的输出流,但我不知道怎么做……
打开 m3u8 播放列表并下载播放列表的片段,将其保存并使用下载的片段创建一个 m3u8 播放列表。但在这种情况下,我会下载 2 次视频,一次使用 MPMoviePlayer,一次下载片段。
有人已经做过类似的事情,或者知道怎么做吗?
提前致谢!
【问题讨论】:
【参考方案1】:您应该使用选项 2。
假设您在 Documents 文件夹(Documents/downloads)中创建了一个“下载”文件夹
首先在您的应用程序中运行 HTTPServer(即 Mongoose)。 将 Mongoose 的根路径定义到您的下载文件夹。 将视频和 m3u8 文件下载到下载文件夹。如果要更改 m3u8,请使用 NSString 方法。播放录制的视频时,请使用如下地址
http://localhost:8080/playlist.m3u8
并且 MPMoviePlayer 应该可以毫无问题地播放录制的视频。
如果你想录制不同的视频,你可以在你的下载目录中实现目录系统。
【讨论】:
【参考方案2】:您可以使用选项 2,并将您的下载代码设置为 http 代理。
您的代理将下载 m3u8 播放列表,并将 URL 重新写入地址 localhost。然后代理会根据 MPMoviePlayer 的请求从服务器下载。它只会将内容写入两个位置(存储和电影播放器)。
【讨论】:
@malinois 我没有。但是 HLS 确实通过代理工作,所以我想不出为什么它不能通过本地代理工作。以上是关于在 iPhone/iPad 上保存 HLS 流的主要内容,如果未能解决你的问题,请参考以下文章