在iOS音視頻開發(fā)中,經(jīng)常會看到 CVPixelBufferRef 這個數(shù)據(jù)結(jié)構(gòu),和 ffmpeg 中的 AVFrame 類似,里面保存著原始的圖像數(shù)據(jù)。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比寧城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式寧城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋寧城地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
我們發(fā)現(xiàn),在有些場景中將 CVPixelBufferRef 送入濾鏡sdk處理后,并不需要返回sdk處理后 CVPixelBufferRef ,就能實現(xiàn)濾鏡效果顯示的改變,如下圖場景。
1.濾鏡sdk處理 CVPixelBufferRef 的操作為同步操作。
2.濾鏡sdk外部和內(nèi)部的 CVPixelBufferRef 共享同一塊內(nèi)存。
1.使用 CVPixelBufferRef 創(chuàng)建紋理對象的兩種方法:
CoreVideo 框架的方法:使用此方法可以創(chuàng)建 CVOpenGLESTextureRef 紋理,并通過 CVOpenGLESTextureGetName(texture) 獲取紋理id。
OpenGL 的方法:
創(chuàng)建紋理對象,使用 glTexImage2D 方法上傳 CVPixelBufferRef 中圖像數(shù)據(jù)data到紋理對象中。
2.demo中使用 GPUImageRawDataInput 作為濾鏡鏈起點,輸入 CVPixelBufferRef 的圖像數(shù)據(jù),使用 GPUImageTextureOutput 作為濾鏡鏈終點,輸出濾鏡處理后的紋理id。
3.使用原始 CVPixelBufferRef 創(chuàng)建紋理,將此紋理作為附件掛載到 frame buffer object 的紋理附件上。繪制濾鏡處理后的紋理到幀緩沖對象中。
激活并綁定濾鏡紋理,上傳頂點坐標,紋理坐標到頂點著色器,開始繪制:
了解了 CVPiexlBufferRef 以上特性后,在短視頻sdk架構(gòu)中,就可以設(shè)計出模塊化,可插拔的濾鏡組件。在視頻采集,編輯,轉(zhuǎn)碼等場景中均可快速集成。
demo中也提供了兩個簡單的場景:
1.視頻采集過程中添加濾鏡:從 GPUImageVideoCamera 的代理方法中取出 CVPixelBufferRef 進行濾鏡處理。
2.視頻播放過程中添加濾鏡:在 AVPlayer 播放時,從實現(xiàn)了 AVVideoCompositing 協(xié)議的方法中取出 CVPixelBufferRef 進行濾鏡處理。
Github:Demo地址
歡迎留言或私信探討問題及Star,謝謝~
參考文章:
在 iOS 中給視頻添加濾鏡
深入理解 CVPixelBufferRef
手機型號:iPhone12
系統(tǒng)版本:iOS15.4
軟件版本:NULL
蘋果12視頻開美顏和濾鏡具體操作步驟如下:
1、解鎖手機,打開【設(shè)置】;
2、下滑跳轉(zhuǎn)頁面,找到并點擊進入【相機】;
3、點擊進入【保留設(shè)置】;
4、點擊【智能控制】后的按鈕,即可讓手機保留上次使用的濾鏡、寬高比、光效和景深設(shè)置。這樣在下次錄制視頻可以保留已經(jīng)設(shè)置好的參數(shù)進行錄制。
溫馨提示:蘋果12可以直接使用第三方軟件,進行視頻拍攝后期編輯濾鏡和人像美顏編輯。
蘋果手復機自帶相機有濾鏡的制美顏效果。以Iphone xs max為例,相機自帶濾鏡設(shè)置如下:
1、打開手機主屏幕,在手機主屏幕上找到并打開“相機”。
2、進入到“相機”app后,點擊右上角的三個重疊的小圈按鈕。
3、點擊之后,在頁面下方會出現(xiàn)很多色調(diào)選擇。
4、選中想要的濾鏡色調(diào),點擊最下方的白色按鈕就可拍出這個色調(diào)下的照片或視頻。
擴展資料:
微信功能:
1、聊天:
支持發(fā)送語音短信、視頻、圖片(包括表情)和文字,是一種聊天軟件,支專持多人群聊,屬大家可以在一起暢所欲言。
2、添加好友:微信支持查找微信號、查看QQ好友添加好友、查看手機通訊錄和分享微信號添加好友、搖一搖添加好友、二維碼查找添加好友和漂流瓶接受好友等7種方式。
3、實時對講機功能:用戶可以通過語音聊天室和一群人語音對講,在手機屏幕關(guān)閉的情況下也仍可進行實時聊天。