自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS快速將顯卡中數(shù)據(jù)讀出壓縮成視頻-cocos2dx擴(kuò)展

移動(dòng)開發(fā) iOS 游戲開發(fā)
本文通過國外網(wǎng)站博客等參考,讓讀者學(xué)會(huì)關(guān)于cocos-2dx的一些簡單的擴(kuò)展及應(yīng)用,并闡述了如何快速將顯卡中數(shù)據(jù)讀出壓縮成視頻。

手機(jī)平臺(tái)性能是個(gè)關(guān)鍵問題。

壓縮視頻分成3個(gè)步驟:

讀取顯卡數(shù)據(jù), 使用編碼器壓縮,保存文件。

使用libav 壓縮的時(shí)候,軟件編碼器效率不夠,在itouch5上面只能做到5-6 fps。 

因此使用ios平臺(tái)自帶的AVFoundtion庫來做,硬件加速編碼,具體做法參考

http://stackoverflow.com/questions/9661259/record-the-drawing-as-a-m4v-video-file-opengl/9672890#9672890

使用corevideo 庫提供的函數(shù), 在itouch5上能做到12-13fps。

接下來的瓶頸主要在從顯卡中讀取數(shù)據(jù)上面 即glReadPixel 

ios 提供一種texturecache 可以將cpu存儲(chǔ)器和顯卡存儲(chǔ) map到一起,但是就不能像操作cpu存儲(chǔ)一樣方便的改動(dòng)這塊區(qū)域的數(shù)據(jù)了, 具體硬件機(jī)制不是很了解, 但是這樣可以大大降低 消耗的時(shí)間,只做獲取數(shù)據(jù) 壓縮視頻任務(wù)的話 可以達(dá)到60fps的效率。 具體參考

http://stackoverflow.com/questions/9550297/faster-alternative-to-glreadpixels-in-iphone-opengl-es-2-0

這兩個(gè)回答是一個(gè)人,這位仁兄的項(xiàng)目:

https://github.com/BradLarson/GPUImage

主要參考其中的 MovieWrite 類。

 

因此要在cocos2dx上面擴(kuò)展游戲視頻錄制的功能,則需要改動(dòng)

CCDirector 添加錄制游戲狀態(tài),將當(dāng)前游戲場景繪制到texture 中

接著將這個(gè)texture內(nèi)容繪制到屏幕上用于顯示

接著將這個(gè)texutre繪制到 視頻cache 的framebuffer中 用于生成視頻。

這塊的代碼可以參考CCRenderTexture 部分的代碼。

責(zé)任編輯:閆佳明 來源: oschina
相關(guān)推薦

2013-07-29 05:04:19

Cocos2dx橫屏豎

2016-11-02 00:15:31

2009-02-24 09:06:06

減薪裁員降低成本

2013-05-31 10:09:00

移動(dòng)開發(fā)游戲引擎游戲開發(fā)

2009-02-05 11:10:25

裁員思科

2012-10-11 15:16:44

聯(lián)想LJ2400黑白激光打印機(jī)

2014-12-17 17:16:51

2014-08-14 10:06:14

Cocos2d-x

2012-06-26 14:21:50

JavaScript

2013-11-11 13:24:21

cocos2dx 2.Android編譯

2012-04-17 13:12:00

2012-04-16 15:20:41

cocos2d-x

2014-09-24 13:37:11

游戲引擎轉(zhuǎn)型

2014-03-18 14:30:51

游戲引擎cocos2d-x

2012-08-16 16:36:19

Informatica大數(shù)據(jù)云計(jì)算

2012-04-17 09:30:45

cocos2d-x創(chuàng)建

2013-09-05 16:29:39

Cocos2d-x

2021-07-07 05:22:21

微信視頻壓縮視頻

2011-12-12 10:40:08

Cocos2d-X游戲開發(fā)開發(fā)環(huán)境

2021-05-12 07:59:30

Windows10操作系統(tǒng)微軟
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)