2012-07-13 30 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

相關問題