2011-08-12 63 views
4

我需要在iOS上播放自定義格式的視頻,並自行完成所有渲染。如何在沒有AVPlayer或電影播放器​​的iOS上播放視頻

我目前的選擇是OpenGL ES,但它從分析結果(主要是在glTexImage2D)中花費太多的CPU。

我的需求有更快的替代方案嗎?

謝謝!

+1

您是否在使用'glTexImage2D()'來創建紋理,或者僅針對每個幀? – genpfault

+2

我懷疑通過OpenGL ES在屏幕上顯示視頻是否是您的限制因素。在視頻處理應用程序中,我可以從iPhone 4相機捕捉並以簡單的60 FPS將其反饋回屏幕:http://www.sunsetlakesoftware.com/2010/10/22/gpu-accelerated-video -processing-mac-and-ios。你的瓶頸必須在其他地方,最有可能在你的解碼程序中。 –

+0

@genpfault我對每一幀都使用glTexImage2D,因爲這是我知道的將圖像繪製到屏幕上的方式。我是OpengGL的新手 –

回答

0

AVPlayer將會很快,因爲代碼已經過優化,可以使用GPU加速和llvm優化進行解壓縮。如果你想使用OpenGL ES,你最終可能會使用EAGLContext,創建紋理着色器和做其他低級優化。我們的應用程序可以在非常低的CPU負載下以高幀率在視頻之上覆合多個層。

+0

但AVPlayer無法處理我的視頻壓縮爲的格式。它認爲這個課程僅用於標準文件或流媒體播放 –

0

我想你可以使用egl的openmax應用程序層集成,它將通過egl將視頻流式傳輸到opengl es 2.0,並且可以存儲或顯示到opengl es屏幕。可以幫助你,如果我可以有片段:)