在观看时记录HTTP直播视频到文件?

时间:2011-07-12 21:58:09

标签: iphone cocoa-touch ipad streaming mpmovieplayercontroller

我正在尝试在我正在开发的应用程序中创建类似流功能的视频DVR。我有一个HTTP Live Stream,我已成功在iPad上播放。我希望用户能够按下“录制”按钮,并开始录制当前正在播放的视频。可以从应用程序或相机胶卷访问此视频文件。目前,我正在使用MPMoviePlayerController对象来播放视频流。我没有看到任何从Apple文档中的对象访问数据的方法。以下是我对如何解决此问题的一些想法。

1)以某种方式从MPMoviePlayerController访问视频数据,并将其写入文件。或者使用其他类型的播放器对象,这样我就可以播放视频并访问当前播放的数据。

2)实现某种屏幕捕获录制,获取iPad屏幕的视频捕获。这将允许我以“屏幕截图”的方式录制视频。

3)找到MPMoviePlayerController存储它们的HTTP直播视频片段。据推测,他们需要存放在iPad上的某个地方进行播放。有没有办法访问这些文件?

4)在流式传输文件时,通过http手动下载流视频片段。这似乎不太理想,因为流必须下载两次。

5)这可行。定期将视频片段下载到iPhone。在iPhone上设置本地http服务器并将视频服务器提供给MPMoviePlayerController。通过这种方式,可以将视频片段标记为录制并组合成视频。

6)我确实控制了流媒体服务器。我可以编写一些服务器端代码来记录服务器端的视频,然后将视频发送到iPad。我宁愿不这样做。

有没有人做过这些事情?理想情况下,iPhone只能以某种方式访问​​视频数据并轻松记录。如果我不需要,我宁愿不进入选项4,5或6(上面)。

提前致谢。

1 个答案:

答案 0 :(得分:2)

由于可用空间有限以及电池寿命,处理能力,用户停止dvr后的清理程序等其他因素,设备上的DVR有点不受鼓励。

如果您想在iOS设备(或使用HLS的其他设备)上实现DVR播放,我建议您保留视频服务器端。实时流已经被捕获并被分段服务器端,您所要做的就是保持段更长一些,而不是删除它们。通过使用EXT-X-PLAYLIST-TYPEEXT-X-MEDIA-SEQUENCE标记,您可以向播放器建议他正在打开具有DVR(早期)视频的实时流。

或者,您可以使用开箱即用的服务器,例如Wowza。 Here's an article on how to achieve this with Wowza