FFmpeg主要由三個(gè)部分構(gòu)成逊朽。
第一部分是四個(gè)不同作用的工具軟件,分別是:
ffmpeg.exe:音視頻轉(zhuǎn)碼器;
ffplay.exe:簡(jiǎn)單的音視頻播放器资锰;
ffserver.exe:流媒體服務(wù)器;
ffprobe.exe:簡(jiǎn)單的多媒體碼流分析器阶祭。
第二部分是為各個(gè)不同平臺(tái)編譯完成的庫(kù)绷杜,開(kāi)發(fā)者可以根據(jù)自己的需求使用這些庫(kù)開(kāi)發(fā)自己的應(yīng)用程序。
libavcodec:包含音視頻編碼器和解碼器濒募;
libavutil:包含多媒體應(yīng)用常用的簡(jiǎn)化編程的工具鞭盟,如隨機(jī)數(shù)生成器、數(shù)據(jù)結(jié)構(gòu)瑰剃、數(shù)學(xué)函數(shù)等齿诉。
libavformat:包含多種多媒體容器格式的封裝、解封裝工具晌姚;
libavfilter:包含多媒體處理常用的濾鏡功能粤剧;
libavdevice:用于音視頻數(shù)據(jù)采集和渲染等功能的設(shè)備相關(guān);
libswscale:用于圖像縮放挥唠、色彩空間抵恋、像素格式轉(zhuǎn)換等功能;
libswresample:用于音頻重采樣和格式轉(zhuǎn)換等功能宝磨。
第三部分是整個(gè)工程的源代碼弧关,無(wú)論是編譯好的可執(zhí)行程序還是SDK,都是使用這些源代碼進(jìn)行編譯的懊烤。FFmpeg的源代碼由C語(yǔ)言實(shí)現(xiàn)梯醒,主要在Linux平臺(tái)進(jìn)行開(kāi)發(fā)
常用參數(shù)
通用參數(shù)
-f fmt: 指定格式(音頻或者視頻格式)。
-i filename: 指定輸入文件名腌紧。
-y: 覆蓋已有文件茸习。
-t duration: 指定時(shí)長(zhǎng)。
-fs limit_size: 設(shè)置文件大小的上限壁肋。
-ss limit_size: 從指定的時(shí)間(單位為秒)開(kāi)始号胚,也支持[-]hh:mm:ss[.xxx]格式
-re: 代表按照幀率發(fā)送籽慢。在作為推流工具的時(shí)候一定要加入該參數(shù),否則ffmpeg會(huì)按照最高速率向流媒體服務(wù)器不停地發(fā)送數(shù)據(jù)猫胁。
-map: 指定輸出文件的流映射關(guān)系箱亿。如果沒(méi)有-map選項(xiàng),則ffmpeg采用默認(rèn)的映射關(guān)系弃秆。
視頻參數(shù)
-b: 指定比特率(bit/s)届惋,ffmpeg是自動(dòng)使用VBR的,若指定了該參數(shù)則使用平均比特率菠赚。
-bitexact: 使用標(biāo)準(zhǔn)比特率脑豹。
-vb: 指定視頻比特率(bit/s).
-r rate: 幀速率(fps)。
-s size: 指定分辨率(320 * 320)
-aspect aspect: 設(shè)置視頻長(zhǎng)寬比(4:3衡查,16:9或者1.3333瘩欺,1.7777)。
-croptop size: 設(shè)置頂部切除尺寸(in pixels)拌牲。
-cropbottom size: 設(shè)置頂?shù)浊谐叽纾╥n pixels)俱饿。
-cropleft size: 設(shè)置左切除尺寸(in pixels)。
-cropright size: 設(shè)置右切除尺寸(in pixels)塌忽。
-padtop size: 設(shè)置頂部補(bǔ)齊尺寸(in pixels)拍埠。
-padbottom size: 設(shè)置底部補(bǔ)齊尺寸(in pixels)。
-padleft size:設(shè)置左補(bǔ)齊尺寸(in pixels)砚婆。
-padright size:設(shè)置右補(bǔ)齊尺寸(in pixels)械拍。
-padcolor color: 補(bǔ)齊帶顏色(000000-FFFFFF)。
-vn: 取消視頻的輸出装盯。
-vcode codec: 強(qiáng)制使用codec編解碼方式('copy'代表不進(jìn)行重新編碼)。
音頻參數(shù)
-ab: 設(shè)置比特率(單位為bit/s)甲馋。
-aq quality: 設(shè)置音頻質(zhì)量(指定編碼)埂奈。
-ar rate: 設(shè)置音頻采樣率(單位為Hz)。
-ac channels: 設(shè)置聲道數(shù)定躏。1就是單聲道账磺,2就是立體聲。
-an: 取消音頻軌痊远。
-acodec codec: 指定音頻編碼('copy'代表不做音頻轉(zhuǎn)碼)垮抗。
-vol volume: 設(shè)置錄制音量大小(默認(rèn)256)<百分比>碧聪。