新聞中心
手機(jī)平臺性能是個關(guān)鍵問題。

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)黔西免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
壓縮視頻分成3個步驟:
讀取顯卡數(shù)據(jù), 使用編碼器壓縮,保存文件。
使用libav 壓縮的時候,軟件編碼器效率不夠,在itouch5上面只能做到5-6 fps。
因此使用ios平臺自帶的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存儲器和顯卡存儲 map到一起,但是就不能像操作cpu存儲一樣方便的改動這塊區(qū)域的數(shù)據(jù)了, 具體硬件機(jī)制不是很了解, 但是這樣可以大大降低 消耗的時間,只做獲取數(shù)據(jù) 壓縮視頻任務(wù)的話 可以達(dá)到60fps的效率。 具體參考
http://stackoverflow.com/questions/9550297/faster-alternative-to-glreadpixels-in-iphone-opengl-es-2-0
這兩個回答是一個人,這位仁兄的項(xiàng)目:
https://github.com/BradLarson/GPUImage
主要參考其中的 MovieWrite 類。
因此要在cocos2dx上面擴(kuò)展游戲視頻錄制的功能,則需要改動
CCDirector 添加錄制游戲狀態(tài),將當(dāng)前游戲場景繪制到texture 中
接著將這個texture內(nèi)容繪制到屏幕上用于顯示
接著將這個texutre繪制到 視頻cache 的framebuffer中 用于生成視頻。
這塊的代碼可以參考CCRenderTexture 部分的代碼。
標(biāo)題名稱:iOS快速將顯卡中數(shù)據(jù)讀出壓縮成視頻-cocos2dx擴(kuò)展
轉(zhuǎn)載來于:http://m.fisionsoft.com.cn/article/cdddjec.html


咨詢
建站咨詢
