2017-01-27 25 views
0

所以我們假設我想從圖像製作電影。我被告知要使用AVAssetWriter以及AVAssetWriterInput來追加CVPixelBuffer對象。但我很困惑。使用AVAssetWriter的CVBufferPool的說明?

爲什麼我們要創建像素緩衝區,只創建位圖上下文來製作電影,然後使用drawRectInViewHierarchy進行繪製?

+1

您可以使用相機/文件輸入幀添加一個AVDataOutput,這將輸出CVPixelBuffers,你可以做你想做的,實時應用濾鏡?改變它們,任何東西 – SeanLintern88

+0

這是關於'CVBufferPool'的問題嗎?你的問題根本沒有引用它。 –

回答

1

我不確定什麼信息是基於您的問題,但我會嘗試解釋基礎知識。

首先,CVPixelBuffer是存儲圖像數據的CoreVideo對象。所有處理圖像數據的AVFoundation類都使用這種類型的對象。但是,CVPixelBuffer不是一個簡單的構造對象,您不能簡單地從一個JPEG或PNG數據斑點實例化一個對象。

創建CVPixelBuffer的一種可能方式是通過從CGImageDataProvider呼叫CVPixelBufferCreateWithBytes。有可能的其他解決方案可能有效並且/或者更有效。這取決於你開始的是什麼樣的圖像。