一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GPUImage簡單實(shí)用及碰到的問題

張康康 ? 2019-09-17 20:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

正式開始之前先介紹一下GPUImage,這是一款基于OpenGL ES 2.0的開源圖像處理庫。在iOS上將OpenGL ES的使用封裝成Objective-C接口,可以用來給圖像、相機(jī)視頻、視頻等添加濾鏡等渲染操作。GPUImage一代已經(jīng)不再維護(hù),OC只能給iOS和Mac使用;同時(shí)有GPUImage2使用Swift(基于Swift 3)開發(fā),可以給Mac, iOS和Linux使用;最新的GPUImage3仍在開發(fā)完善中,基于Swift4,并且將OpenGL ES替換成蘋果的Metal,由于是蘋果官方封裝GPU方法,可以預(yù)見會比使用OpenGL ES的性能效率更高。本文使用的仍是第一代GPUImage。

接入GPUImage使用cocoapods直接接入就行,就不再贅述。下面是一個(gè)簡單的濾鏡使用:

fcd4530ec63a4f7e9864f4cba18aeaec.png

GPUImage使用有三個(gè)關(guān)鍵點(diǎn),input, output, filter(filter也是output但主要實(shí)現(xiàn)了濾鏡,所以分開說)。output一般是用來承載圖像內(nèi)容輸出,可以是GPUImageUIElement(通過UIView來創(chuàng)建并承載整個(gè)UIView的內(nèi)容), GPUImagePicture(使用UIImage或者CGImage之類的圖像來創(chuàng)建);filter就是所使用的濾鏡,可以使用GPUImage自帶的比如GPUImageGaussianBlurFilter, GPUImageColorInvertFilter等等,當(dāng)然也可以自建Filter來實(shí)現(xiàn)一些自己所需要的濾鏡,當(dāng)然也需要一些OpenGL的功底;input則是內(nèi)容輸入需要GPUImage進(jìn)行一些處理的,下面用一個(gè)MovieWriter進(jìn)行視頻和一個(gè)動態(tài)畫面進(jìn)行合成來舉例:

ef3fa5e46c074089b53d0e1865067f6d.png

使用中第一版沒有提到聲音問題所以沒有發(fā)現(xiàn),第二版需要使用視頻原聲音并錄制進(jìn)去,查了一下可以這樣使用:

66f4d0c673a24e3c866a7351e52ee8c4.png

錄制開始會有隨機(jī)閃退問題,網(wǎng)上查了一下,大致是因?yàn)?a target="_blank">音頻處理比視頻處理快,當(dāng)音頻處理完直接callback去做渲染處理了,但這時(shí)視頻這幀還沒有加載完成,導(dǎo)致處理失敗崩潰,網(wǎng)上有一個(gè)替換GPUImageMovieWriter.m源文件的方法來規(guī)避這個(gè)問題,但我嘗試了一下仍然會發(fā)生,就不貼出來了。暫時(shí)也沒有更好的辦法來修復(fù)這個(gè)問題,由于時(shí)間緊迫,我采取只傳遞聲音而取消寫入視頻中,使用ffmpeg進(jìn)行音視頻合成(或其他視頻處理工具,因?yàn)楸旧眄?xiàng)目有視頻剪切使用了ffmpeg)。如果以后對這方面有更深入的了解和研究會繼續(xù)更新如何解決這個(gè)問題。

PS: 說個(gè)題外關(guān)于視頻編碼問題,騰訊家的qq和微信SDK分享視頻只能分享網(wǎng)絡(luò)源無法分享本地源,但如果通過蘋果系統(tǒng)自帶的分享則可以分享視頻。最新版部分視頻會發(fā)生視頻壓縮失敗的問題,無法上傳。起先認(rèn)為是視頻編碼問題,通過ffmpeg重新使用h264或者libx264都無法解決;后來發(fā)現(xiàn)那些無法通過騰訊系壓縮的是音頻重新合成過的,所以我對音頻重新編碼,使用的是網(wǎng)絡(luò)上流媒體目前比較通用的aac,結(jié)果讓我大失所望,還是不行!網(wǎng)上也找不到騰訊有關(guān)這兩款分享視頻所需要的編碼問題,而如果我不通過ffmpeg進(jìn)行編輯,原視頻的H.264+aac就是好的,沒有辦法只能采取控制變量法來一個(gè)一個(gè)試編碼。最后測出來是視頻H.264沒有問題,音頻則需要使用ac3來進(jìn)行編碼才能通過。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    諧波怎么處理最簡單的方法

    諧波問題是電力系統(tǒng)中常見的電能質(zhì)量問題,它不僅影響設(shè)備正常運(yùn)行,還可能造成能源浪費(fèi)和設(shè)備損壞。針對諧波處理的最簡單方法,我們可以從以下幾個(gè)方面入手: 一、理解諧波產(chǎn)生的原因 諧波主要由非線性負(fù)載產(chǎn)生
    的頭像 發(fā)表于 07-13 16:35 ?136次閱讀
    諧波怎么處理最<b class='flag-5'>簡單</b>的方法

    看完這篇,SPI其實(shí)也很簡單嘛(可下載)

    首先我們來簡單介紹一下SPI,SPI是串行外設(shè)接口(SerialPeripheralInterface)簡單來講就是它一種高速的,全雙工,同步的通信總線被各種總線搞的暈頭轉(zhuǎn)向的人來說就會問了
    發(fā)表于 03-26 14:29 ?2次下載

    map指令簡單介紹

    當(dāng)然這里寫的都是官方文檔是已經(jīng)寫過的,我簡單抄一下哈。
    的頭像 發(fā)表于 02-13 09:54 ?415次閱讀

    DAC8832 輸出偏移了0.8V,不知道各位有沒有碰到過類似問題?

    DAC8832 之前也用過,一直沒有問題。今天在調(diào)板子的時(shí)候發(fā)現(xiàn)輸出不對了,0x0000原本輸出-2.5,現(xiàn)在變成了-3.3V多,0xFFFF應(yīng)該是2.5V,現(xiàn)在變成了1.7V,也就是輸出往左偏了0.8V。電源電壓 參考電壓都沒問題,是不是反饋的運(yùn)放或者DAC壞了 不知道各位有沒有碰到過類似問題?
    發(fā)表于 01-21 08:53

    EasyExcel碰到問題記錄

    作者:京東工業(yè) 孫磊 1、富文本中文字設(shè)置不同顏色和字體不生效 String stringCellValue = cell.getStringCellValue(); if (StringUtils.isNotBlank(stringCellValue) stringCellValue.contains(startIndex) stringCellValue.contains(endIndex)) { RichTextString richStringCellValue = cell.getRichStringCellValue(); Font redFont = workbook.createFont(); redFont.setColor(IndexedColors.RED.getIndex()); if (richStringCellValue instanceof XSSFRichTextString) { XSSFRichTextString xssfRichTextString = new XSSFRichTextString(cell.getStringCellValue()); xssfRichTextString.applyFont(stringCell
    的頭像 發(fā)表于 01-13 13:34 ?324次閱讀

    使用TXS0108ERGYR做1.8V轉(zhuǎn)3.3V時(shí)碰到A端有數(shù)據(jù)輸入,但是B端沒數(shù)據(jù)輸出,為什么?

    問題描述: 在使用TXS0108ERGYR做1.8V轉(zhuǎn)3.3V時(shí)碰到A端有數(shù)據(jù)輸入,但是B端沒數(shù)據(jù)輸出,此時(shí)OE腳的電平被拉低到0.2V(正常1.8V)。 電路說明:芯片的VCCA采用1.8V電源供電同時(shí)接一顆1uF的去耦電容,1.8V電源串一顆10k電阻給OE腳供電。
    發(fā)表于 12-17 08:07

    TPA3110功放后面的snubber怎么工作的?

    我們在用TI功放TPA3110時(shí)碰到輸出級有接一個(gè)RC snubber,大概是消除振鈴什么的,請教版上的專家這個(gè)是怎么工作的,我們是不是可以去掉它?是不是可以給個(gè)簡單的傳輸函數(shù)分析或者其他形式的原理分析,謝過....
    發(fā)表于 11-08 07:06

    TPA3251不小心把GVDD_CD腳和CLIP管腳碰到一起,然后CILP和FAULT指示燈一直亮,管腳一直輸出低電平,什么問題?

    求幫忙,我測量demo板的CLIP管腳的電壓輸出時(shí),不小心把GVDD_CD腳和CLIP管腳碰到一起了,然后CILP和FAULT指示燈一直亮,這兩個(gè)管腳也一直輸出低電平。是不是TPA3251芯片被我燒毀了?謝謝。
    發(fā)表于 10-29 07:50

    TPA3113D2功放在PBTL應(yīng)用過程中碰到芯片發(fā)熱,聲音無輸出現(xiàn)象,怎么解決?

    TPA3113D2功放在PBTL應(yīng)用過程中碰到芯片發(fā)熱,聲音無輸出現(xiàn)象,經(jīng)檢查發(fā)現(xiàn)輸入耦合電容1uF容量太大造成的,換成474或224就行,但規(guī)格書上提供參數(shù)為輸入1uF,電容容量沒改變之前和改變
    發(fā)表于 10-25 06:37

    求助,關(guān)于使用TPA3116D2時(shí)碰到的問題求解

    請教下使用TPA3116D2時(shí)碰到的問題。 PVCC=24V,在無輸入的情況下,萬用表測到左右聲道的OUTP/N的直流值都不是PVCC/2=12V,而是只有4V。 測到輸入端直流值只有2V,而不是3V。且FAULT一直是高電平,沒有錯(cuò)誤。 請問這種情況可能的原因有哪些? 謝謝~
    發(fā)表于 10-25 06:26

    簡單了解SDK與APK的區(qū)別

    不少小伙伴在開發(fā)軟件中會提到兩個(gè)詞:API和SDK。雖然它們看起來很專業(yè),但其實(shí)背后的概念并不復(fù)雜。這篇文章能簡單的幫你了解SDK與APK的區(qū)別。
    的頭像 發(fā)表于 10-11 10:08 ?3291次閱讀

    SMBus變得簡單

    電子發(fā)燒友網(wǎng)站提供《SMBus變得簡單.pdf》資料免費(fèi)下載
    發(fā)表于 09-18 14:45 ?3次下載
    SMBus變得<b class='flag-5'>簡單</b>

    使用MODE引腳進(jìn)行簡單的恒壓調(diào)節(jié)

    電子發(fā)燒友網(wǎng)站提供《使用MODE引腳進(jìn)行簡單的恒壓調(diào)節(jié).pdf》資料免費(fèi)下載
    發(fā)表于 08-30 10:05 ?0次下載
    使用MODE引腳進(jìn)行<b class='flag-5'>簡單</b>的恒壓調(diào)節(jié)

    用OPA454做了一個(gè)簡單的加法器電路,電壓有一個(gè)明顯降低是怎么回事?

    小弟最近碰到一個(gè)問題,我用OPA454做了一個(gè)簡單的加法器電路:運(yùn)放反相端接3V電壓源和一個(gè)10K電阻,正相端接一個(gè)個(gè)幅值為0~3V的正弦波,負(fù)反饋回路上接一個(gè)10K電阻,則輸出Vout=2
    發(fā)表于 08-30 07:00

    使用INA199是碰到小電流采樣線性度較差的問題求解

    在使用INA199是碰到小電流采樣線性度較差的問題,由于采樣電阻小,電流值小,輸入的幅值比較小,工程師幫忙判斷是否是輸入幅值過小導(dǎo)致輸出放大后電壓線性度不達(dá)標(biāo)。 IN+與IN-兩端電壓差值為43uV
    發(fā)表于 08-02 10:11