APP開發(fā)對于如何處理視頻文件,博納網(wǎng)絡(luò)在上一篇文章中介紹過使用工具FFmpeg進行調(diào)用轉(zhuǎn)換,深圳APP開發(fā)公司本文具體介紹后臺調(diào)用FFmpeg的功能,使用FFmpeg進行視頻轉(zhuǎn)換很簡單,
例如:把AVI轉(zhuǎn)換為MP4可使用下面的命令行
在后臺語言中怎么調(diào)用FFmpeg進行格式轉(zhuǎn)換?
一個常見的思路是通過構(gòu)造命令行的萬式,把上面命令行構(gòu)造出來,然后在后臺語言中調(diào)用FFmpeg執(zhí)行文件有一個javai周用FFⅢpeg開源項目jave(工頁:http://www.saulonsoflwal.it/projects/jaVe/)就是這樣實觀。但這個項目中的FFlnpeg版本已經(jīng)很舊,如果需要,可以替換FFmpeg為最新版本。下面的例子用jave這個項目的代碼把某個AVI格式的視頻轉(zhuǎn)換成FLV格式
File s:,urce = new File ( "source . aw " ) ;
File target = new File ( "target.fiv") ;
audio. setC :,dec ( "libmp 31ame " ) ;
audio.setEitFate (new Integer ( 64000》 ;
audio.setChannels (new Integer (1》 ;
audio.setSamplingPate (new Integer (::050》 ;
VideoAttributes video = new VideoAttributes ( ) ;
video.setC:,dec("fiv");
video.setEitFate (new Integer (160000》 ;
video.setFrameFate (new Integer (15》 ;
video.setSize (new VideoSize (400, 300》 ;
EncodingAttributes attrs = new EncodingAttributes ( ) ;
attrs.setF:,rmat ("fiv") ;
attrs.setAudioAtt ributes ( audio) ;
attrs.setVideoAtt ributes (video) ;
Encoder encoder = new Enc:,der();
encode r . encode ( s :,u rce, t arcje t, at t rs ) ;
上面代碼中通過類AudioAttributes和VideoAttributes設(shè)置丁相關(guān)的參數(shù),在類Encoder中把這些參數(shù)構(gòu)造成命令行執(zhí)行FFmpeg相關(guān)的命令。
注意:視頻、音頻相關(guān)的操作一般非常耗費CPU資源,在上面的例子中,把視頻從AVI格式轉(zhuǎn)換威FLV格式的過程中,系統(tǒng)的相關(guān)資源狀況如圖3-12所示。
APP開發(fā)視頻處理效果圖3-12調(diào)用FFmpeg時系統(tǒng)的相關(guān)資源狀況
從上圖可看到FFmpeg占用了差不多90%的CPU資源。App后臺要快速處理視頻就需要高性能的服務(wù)器集群,但是對于創(chuàng)業(yè)型公司來說,在服務(wù)器這方面的開支是非常不合算的。因此創(chuàng)業(yè)型公司可充分運用云服務(wù),例如七牛提供的服務(wù)就包含音/視頻格式的轉(zhuǎn)換,調(diào)用非常方便,如圖3 13所示。
深圳APP開發(fā)公司關(guān)于后臺制作時對于視頻、音頻處理工具以及使用方法的介紹,本文就到此結(jié)束。下期我們繼續(xù)分享后臺制作時我們APP開發(fā)工程師是如何獲取apk文件資源的。