国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
APP后端處理視頻的方案

   在當(dāng)前的app應(yīng)用中,到處都能看到視頻的身影,例如,在社交類的app上,用戶可以拍攝屬于自己的小視頻,并發(fā)布到相應(yīng)得欄目,增加和好友們互動(dòng)的機(jī)會(huì)。

 

         后臺(tái)常見的視頻處理有以下幾種:

 

·          視頻的截圖,很多視頻列表上顯示的一張圖片,這張圖片就是通過截取視頻的某一幀(通常是第一幀)得到的。

·          視頻加水印,出于版權(quán)保護(hù)的目的,需要添加水印。

·          視頻轉(zhuǎn)碼,允許用戶上傳手機(jī)上的視頻,并轉(zhuǎn)換為app后端支持的格式。

 

視頻的處理對(duì)于大多數(shù)程序員來說是個(gè)很陌生的領(lǐng)域, 這里介紹一個(gè)視頻處理最常用的工具:ffmpeg。

 

(1)ffmpeg簡(jiǎn)介

 

         Ffmpeg的官網(wǎng)(http://ffmpeg.org/)是這樣介紹的:Acomplete, cross-platform solution to record, convert and stream audio and video。一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。

 

         Ffmpeg是個(gè)跨平臺(tái)的軟件,可以在linux下使用,也可以在window,mac下使用。

 

         這個(gè)項(xiàng)目最早由FabriceBellard發(fā)起,現(xiàn)在由Michael Niedermayer維護(hù)。許多FFmpeg的開發(fā)人員都來自MPlayer項(xiàng)目,而且當(dāng)前FFmpeg也是放在MPlayer項(xiàng)目組的服務(wù)器上。項(xiàng)目的名稱來自MPEG視頻編碼標(biāo)準(zhǔn),前面的"FF"代表"Fast Forward"。

 

         著名的播放器KMPlayer, 暴風(fēng)影音,qq影音,都曾經(jīng)使用過ffmpeg的代碼。國(guó)內(nèi)的七牛云存儲(chǔ),音視頻處理的核心模塊也是ffmpeg。

 

         Ffmpeg可以實(shí)現(xiàn)的功能有:

 

l  視頻采集

l  音視頻格式轉(zhuǎn)換

l  視頻抓圖

l  給視頻加水印

 

FFmpeg主要由一下幾個(gè)部分組成:

 

libavcodec:包含了所有FFmpeg音視頻編解碼器的庫(kù)。 為了保證最優(yōu)性能和高可復(fù)用性,大多數(shù)編解碼器從頭開發(fā)的。

libavformat:包含了所有的普通音視格式的解析器和 產(chǎn)生器的庫(kù)。

 

三個(gè)實(shí)例程序:

 

ffmpeg:命令行的視頻格式轉(zhuǎn)換程序(一般就直接調(diào)用這個(gè)文件)

ffplay:視頻播放程序。(需要SDL支持)

ffserver:多媒體服務(wù)器

 

 

(2)程序調(diào)用ffmpeg的功能

 

         使用ffmpeg的進(jìn)行視頻轉(zhuǎn)換很簡(jiǎn)單,例如,把a(bǔ)vi轉(zhuǎn)換為MP4,使用命令行:

 

ffmpeg -i source.avi -f psp -r 29.97-b 768k -ar 24000 -ab

64k -s 320×240 destination.mp4

 

         那么,在后臺(tái)語(yǔ)言中,應(yīng)該怎么調(diào)用ffmpeg進(jìn)行格式轉(zhuǎn)換呢?

 

         一個(gè)常見的思路,就用通過構(gòu)造命令行的方式,把上面命令行構(gòu)造出來,然后在后臺(tái)語(yǔ)言中調(diào)用ffmpeg執(zhí)行文件。

 

         有個(gè)java調(diào)用ffmpeg開源項(xiàng)目 jave (主頁(yè):http://www.sauronsoftware.it/projects/jave/)就是這樣實(shí)現(xiàn)的。

 

         例如,下面的例子是avi轉(zhuǎn)換成flv:

 

 

  1. File source = newFile("source.avi");  
  2. File target = newFile("target.flv");  
  3. AudioAttributes audio = newAudioAttributes();  
  4. audio.setCodec("libmp3lame");  
  5. audio.setBitRate(newInteger(64000));  
  6. audio.setChannels(new Integer(1));  
  7. audio.setSamplingRate(newInteger(22050));  
  8. VideoAttributes video = newVideoAttributes();  
  9. video.setCodec("flv");  
  10. video.setBitRate(newInteger(160000));  
  11. video.setFrameRate(new Integer(15));  
  12. video.setSize(new VideoSize(400,300));  
  13. EncodingAttributes attrs = newEncodingAttributes();  
  14. attrs.setFormat("flv");  
  15. attrs.setAudioAttributes(audio);  
  16. attrs.setVideoAttributes(video);  
  17. Encoder encoder = new Encoder();  
  18. encoder.encode(source,target, attrs);  



 

 

         通過類AudioAttributes和VideoAttributes設(shè)置了相關(guān)的參數(shù),在類Encoder中把這些參數(shù)構(gòu)造成命令行執(zhí)行FFmpeg相關(guān)的命令。

 

         注意了,視頻音頻相關(guān)的操作一般都是非常耗費(fèi)CPU資源,例如上面的例子,在avi轉(zhuǎn)換成flv的過程中,系統(tǒng)的相關(guān)資源狀況如下:

 

 

         從上圖可看出,ffmpeg就占用了CPU差不多90%的資源。

 

         后端要快速地處理視頻,需要高性能的服務(wù)器集群,但是,對(duì)于創(chuàng)業(yè)型公司來說,這點(diǎn)支出是非常不合算的。因此,可充分運(yùn)用云服務(wù),例如,七牛提供的服務(wù)就包含音視頻格式的轉(zhuǎn)換,調(diào)用非常方便。

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Jave2-Java音頻視頻編碼器
nodejs結(jié)合node-fluent-ffmpeg 進(jìn)行視頻轉(zhuǎn)換,獲取視頻縮略圖
FLV視頻網(wǎng)站大收集
PHP軟件?CodeCanyon - Web Video Editor v1.0 FFmpeg FLV, MP4, WEBM, OGV
WM6.0播放FLV文件 在倚天X600測(cè)試成功的相關(guān)文章推薦 - - JavaEye專欄...
網(wǎng)絡(luò)流媒體(flv)點(diǎn)播解決方案
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服