[英]Failure of combination of AVAssetWriter and AVAssetWriterInputPixelBufferAdaptor appendingPixelBuffer
[英]Importance of AVAssetWriterInputPixelBufferAdaptor in AVAssetWriter
我正在嘗試使用AVAssetWriter
輸出從攝像機捕獲的視頻。
我正在跟蹤一些不使用AVAssetWriterInputPixelBufferAdaptor
(使用AVAssetWriterInputPixelBufferAdaptor
錄制視頻 ),而其他一些示例則使用( AVCaptureSession僅獲得視頻緩沖區 )。
基於Apple參考資料,我已經將AVAssetWriterInputPixelBufferAdaptor
(或CVPixelBuffer, CVPixelBufferPool
)的用途總體上解釋為一種在內存中緩沖傳入像素的有效方法。 實際上,在使用AVAssetWriter
編寫視頻輸出時使用此功能有多重要? 我似乎可以在不使用適配器的情況下正常工作,但是我想進一步了解使用AVAssetWriterInputPixelBufferAdaptor
的好處/意圖。
多年來,我一直在使用沒有PixelBufferAdaptor的視頻錄制,沒有任何問題。 我基本上使用以下代碼:
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection{
if (videoWriterInput.readyForMoreMediaData) {
[videoWriterInput appendSampleBuffer:sampleBuffer];
}
}
我的看法是,由於CMSampleBufferRef包含時序信息,因此可以直接寫入。 而如果您具有CVPixelBuffer,則必須通過適配器添加時序信息。 因此,如果您在寫入之前進行了一些圖像處理,則最終將得到一個CVPixelBuffer並必須使用適配器。 如果處理需要時間,則適配器可能還會為CVPixelBuffer添加一些緩沖功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.