2013-03-02 46 views
1

我試圖在一個條件下對iOS設備上的實時視頻進行採樣(以每秒像素爲例):以60 fps的速度進行。以60 fps對iOS應用中的實時視頻進行下采樣

分辨率可能會降低,視頻屏幕的視圖可能只是一個小矩形(大約200x200px)。結果應該在屏幕上預覽。

我一直以優秀的2012年WWDC RosyWriter爲例作爲起點。 但是經過幾個小時的搜索,我找不到一個教程,也沒有一個github項目的人已經做了同樣的事情,可以解釋如何做到這一點。我一遍又一遍地瀏覽了StackOverflow中的所有相關問題,但都沒有取得任何成功。我正在尋找一個代碼示例,很好的答案或對這個主題的教程的快速參考。

相關,但仍然沒有答案的問題:

回答

1

看一看在GPUImageSimpleVideoFilter例子。

然後消除這樣的事情懷舊濾鏡只是爲了獲得一個預覽:

videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack]; 
GPUImageView *filterView = (GPUImageView *)self.view; 
[videoCamera addTarget:filterView]; 
[videoCamera startCameraCapture]; 

這是什麼布拉德的意見建議開始:

videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack]; 
GPUImageLanczosResamplingFilter* filter = [[GPUImageLanczosResamplingFilter alloc] init]; 
GPUImageView *filterView = (GPUImageView *)self.view; 
[videoCamera addTarget:filter]; 
[filter forceProcessingAtSize:self.view.frame.size]; 
[filter addTarget:filterView];  
[videoCamera startCameraCapture]; 

從輸出過濾器也將被髮送到GPUImageMovieWriter。 SimpleVideoFilter示例涵蓋了它。

+1

這不會進行任何實際的縮減採樣,但是如果您將GPUImageLanczosResamplingFilter與「-forceProcessingAtSize:」一起用於目標圖像大小,則應該能夠進行快速,高質量的下采樣。 – 2013-03-05 22:02:12

+0

我稍微擴展了這個答案,以包含下采樣(sans video file writer)。感謝您的建議和框架布拉德。 – 2013-03-05 23:00:33

+0

是的,這應該做的伎倆。 – 2013-03-05 23:02:50

相關問題