APP開發(fā)項目在后臺制作時怎樣處理圖片處理問題,App上線后不斷接收用戶反饋,有的App經(jīng)過一段時間的反饋和產(chǎn)品調(diào)整后會面臨App改版的問題。App改版一般會有比較大的UI改動,改動UI.那么圖片的尺寸也必須改變。
一、APP開發(fā)或者改版對于圖片的處理技巧
深圳APP開發(fā)公司工程師在本站APP開發(fā)欄目中設(shè)計API的要點”一文中,提到App后臺圖片處理的一個基本原則:數(shù)據(jù)庫只保存原圖的路徑。對于同張圖片來說,針對不同機(jī)型、不同App版本所需要的尺寸不同,使用動態(tài)生成的策略,大體思路如下。
(1) App在圖片的URL末尾加上參數(shù),其用來聲明需要生成的圖片的新的尺寸,例如:App端需要圖片(http://www. baidu.com/img/bdlogo. gif)80×80的尺寸,則在圖片的路徑加上寬和高的參數(shù)(類似于CDN的機(jī)制)http://www.baidu. com/img/bdlogo. gif?w:80&h:80.
(2)服務(wù)器接收到圖片的請求,先在緩存中查找這個尺寸的圖片是否已經(jīng)生成,如果已經(jīng)在緩存中有記錄,則不用重新生成。
(3)如果該尺寸的圖片還沒生成,則生成新的圖片尺寸,并把新生成的圖片路徑放在緩存中,同時把該尺寸圖片的路徑返回給App。App整體架構(gòu)中的圖片最少有兩層緩存。
·App本地的圖片緩存,如果App中沒有該圖片時,才從服務(wù)器獲取圖片。
·服務(wù)器的圖片緩存,記錄不同尺寸圖片的保存路徑。
深圳APP開發(fā)工程師的的建議是:直接使用七?;蛴峙牡任募拼鎯Ψ?wù),文件云存儲不但可以加速圖片的下載/上傳,也能實現(xiàn)圖片的大量操作(例如圖
片裁剪、加水印等常用的操作)。圖片的上傳/下載速度是影響用戶體驗的個重要部分。
二、APP開發(fā)視頻處理經(jīng)驗
在熱門的社交類App中視頻到處可見,例如在社交類的App上用戶可以拍攝屬于自己的小視頻并發(fā)布到相應(yīng)的欄目中,App后臺常見的視頻處理有以下幾種。
·視頻的截圖。很多App的視頻列表上用一張圖片表示該視頻,這張圖片就是通過截取視頻的某一幀(通常是第一幀)得到的。
·出于版權(quán)保護(hù)的目的給視頻加水印。
·視頻轉(zhuǎn)碼,允許用戶上傳手機(jī)上的視頻并轉(zhuǎn)換為App后臺支持的格式。
視頻的處理對于大多數(shù)APP開發(fā)愛好者程序員來說是個很陌生的領(lǐng)域,這里介紹一個視頻處理最常用的工具:APP開發(fā)視頻處理FFmpeg
FFmpeg的官網(wǎng)(http://ffⅢpeg.org/)是這樣介紹的:A c omplete,c ross-platform s olution t orecord,c01lvert and stream audio and video。FFmpeg可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源汁算機(jī)軟件。FFmpeg是個跨平臺的軟件,可以在Linux下使用,也可以在Windows或Mac下使用。這個項目最早由Fabrice B ellard發(fā)起,現(xiàn)在由Michael FIiedermaver維護(hù)。許多FFmpeg的開發(fā)人員部來自MPlaver項目,而且當(dāng)前FFmpeg項目也是放在MPlaver項目組的服務(wù)器上。項目的名稱來自MPEG視頻編碼標(biāo)準(zhǔn),前面的“FF”代表“Fast Forward”。國內(nèi)的七牛云存儲的音視頻處理的核心模塊也是使用FFmpeg。FFmpeg可以實現(xiàn)的功能有。
視頻采集。
音/視頻格式轉(zhuǎn)換
視頻抓圖。
加視頻水印。
FFmpeg主要由以下幾個部分組成
·Libavcodec:包含了所有FFmpeg音/視頻編解碼器的庫。為了保證最優(yōu)性能和高可復(fù)用性,大多數(shù)編解碼器從頭開發(fā)的
·Libavformat:包含了所有的普通音/視格式的解析器和產(chǎn)生器的庫。三個實例程序
·FFmpeg:命令行的視頻格式轉(zhuǎn)換程序(般就直接調(diào)用這個文件)
·FFplay:視頻播放程序(需要SDL支持)。
·FFserver:多媒體服務(wù)器。
好了,深圳APP開發(fā)公司對于項目制作或者改版時如何處理圖片以及視頻的實操經(jīng)驗方面的知識就分享到這里。下期我們會聊聊APP制作時怎樣在后臺調(diào)用FFmpeg。博納網(wǎng)絡(luò)編輯。