2012-07-13 79 views
2

我试图使用AVFoundation记录在OS X上的视频,但等待直到然后结束记录的保存文件。我希望能够保存它每隔5/10/X秒捕获的内容。使用AVFoundation进行录制时,可以使用视频文件“chunking”/ segmenting吗?

我需要做的这一点,以便为它节省关闭视频文件,我可以流段到服务器,而视频仍记录,所以我可以服务器最多“几乎生活”视频关闭服务器。

感谢所有帮助您可以提供!

+0

它实际上是将其保存到一个临时目录。它需要在文件上进行AV同步。如果您只有一个媒体曲目,那么它会立即保存文件。另外请记住,使用MOV/MP4时,文件的标题最后写入。 – 2012-07-13 19:02:45

+0

@SteveMcFarlin因此,在录制视频时将AVFoundation分解为更小的片段没有简单的方法吗? – JoshStrange 2012-07-16 14:02:07

+1

不,没有。 AVFoundation只会记录到MP4/MOV。有两种类型的MOV文件。一个标准的MOV,其大部分与MP4文件相同。然后是“流式”快速时间格式。这基本上在一个MOV文件中创建了一系列MOV文件。它通过使用'片段'原子来做到这一点。例如moof这是一个电影片段。还会有一系列包含媒体的mdat原子。您可以实时解析此文件并创建分段的HLS流。看看AVAssetWriter中的movieFragmentInterval。 – 2012-07-16 17:56:03

回答

1

你可以问AVFoundation到帧鬻给你,因为它是记录,然后只传递帧的一组号码给服务器。但是你询问的问题非常复杂,因为带宽或临时网络闪烁可能导致延迟/跳过等。

我们讨论了在AVCaptureSession中使用带AVCaptureVideoDataOutput的AVCaptureSession MPEG帧: Near Real Time Video Upload from iPhone

如果你想让各个块可以播放,你必须将它们包装在MOV或MPEG容器中,但听起来并不像你在场景中需要的那样。

+0

我怎么可以创建单独的块???它是否使用avassetwritter的movieFragmentInterval方法自动创建? – 2015-04-21 05:33:03

+0

我想从每个片段读取时间戳。我怎样才能做到这一点 ? – 2015-04-21 09:51:44

相关问题