我希望對視頻播放(基於AVPlayer)具有類似粉碎的效果,該視頻將轉換爲其他視頻或圖像。針對視頻的粉碎效果
是否有可能建立在這種視頻中的iOS5/6這樣的效果?
如果不是,則替代方案是在最後播放的幀的靜止圖像上執行轉換。什麼是最合適的框架? CoreImage? CoreGraphics中? OpenGL的?
我希望對視頻播放(基於AVPlayer)具有類似粉碎的效果,該視頻將轉換爲其他視頻或圖像。針對視頻的粉碎效果
是否有可能建立在這種視頻中的iOS5/6這樣的效果?
如果不是,則替代方案是在最後播放的幀的靜止圖像上執行轉換。什麼是最合適的框架? CoreImage? CoreGraphics中? OpenGL的?
如果你只是想在播放過程中不同的視頻之間的過渡,可以使用視圖轉換到視頻之間切換。我不確定你的動畫應該看起來如何,但here就是一個例子。在開始轉換之前及時預先加載另一個視頻並檢查視頻是否準備好顯示是非常重要的,否則它看起來不太好。
如果你想創造一些非常高級的效果,另一種選擇是呈現視頻文件OpenGL ES的紋理和使用GL基本上建立你能想到的任何3D效果。我已經寫了一個小POC,如果你有興趣,我可以分享。另見this question。
如果你想堅持過渡到一個視頻文件,你需要操作的視頻幀一幀,並從它創建一個新的視頻流。這是更復雜的,但AVFoundation API可以做到這一點。 Here就是一個例子。
我認爲,把一個UIView在視頻將是這裏最好的選擇。如果您確實需要在視圖中繪製性能(即通過視頻),則可以使用Quartz2d(或甚至是OpenGL ES)。
使用Quarz2d,您可以爲您的粉碎動畫創建一個簡單的精靈表(用於遊戲的常用技巧),並將它們循環遍歷並呈現在前面提到的UIView中。如果性能不夠好,可以嘗試使用OpenGL ES :),但通過使用Quarz2d可以節省大量時間。
如果性能會成爲問題,最終可能會在視頻頂部使用Cocos2D圖層,如在此post中,其目標是在視頻頂部渲染粒子發射器... Cocos2d(OpenGL ES)解決了性能問題。 (好事是cocos2d的可以輕鬆處理精靈牀單所以我猜你可以在任何時候實現這個)
簡而言之:根據您的轉換有多大,任意選取的OpenGL ES(如果你想該性能)或Quarz2d,如果性能不是一個大問題。
乾杯。
我我所做的只是搶了視頻的最後幀的圖像之前使用這種技術,把它在視頻後面。當視頻已停止播放時,從視圖中移除視頻播放器並在圖像上執行破碎動畫,以顯示它後面的內容
Hi在viewcontroller的視圖中添加mpmoviecontroller的視圖,並在圖像視圖中放置圖像並獲取一些圖像(連拍圖像序列)並播放這些圖像的動畫以顯示快門效果。希望這招會爲你工作:)
有關的UIImageView animaton看看這個鏈接
根據用戶想要的順序來顯示圖像的數量,這可能真正損害的表現視頻在AVPlayer中播放(延遲/不連續)。假設每秒至少24幀,我真的認爲這種解決方案不會在這種情況下削減它。 – Goles