
【基本介紹】
FFmpeg是一套可以用來(lái)記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開(kāi)源計(jì)算機(jī)程序。它包括了目前領(lǐng)先的音/視頻編碼庫(kù)libavcodec。 FFmpeg是在Linux下開(kāi)發(fā)出來(lái)的,但它可以在包括Windows在內(nèi)的大多數(shù)操作系統(tǒng)中編譯。這個(gè)項(xiàng)目是由Fabrice Bellard發(fā)起的,現(xiàn)在由Michael Niedermayer主持??梢暂p易地實(shí)現(xiàn)多種視頻格式之間的相互轉(zhuǎn)換,例如可以將攝錄下的視頻avi等轉(zhuǎn)成現(xiàn)在視頻網(wǎng)站所采用的flv格式。
【功能介紹】
1、視頻采集功能ffmpeg視頻采集功能非常強(qiáng)大,不僅可以采集視頻采集卡或USB攝像頭的圖像,還可以進(jìn)行屏幕錄制,同時(shí)還支持以RTP方式將視頻流傳送給支持RTSP的流媒體服務(wù)器,支持直播應(yīng)用。
2、視頻格式轉(zhuǎn)換功能
視頻格式轉(zhuǎn)換,比如可以將多種視頻格式轉(zhuǎn)換為flv格式,可不是視頻信號(hào)轉(zhuǎn)換 。
ffmpeg可以輕易地實(shí)現(xiàn)多種視頻格式之間的相互轉(zhuǎn)換(wma,rm,avi,mod等),例如可以將攝錄下的視頻avi等轉(zhuǎn)成視頻網(wǎng)站所采用的flv格式。
3、視頻截圖功能
對(duì)于選定的視頻,截取指定時(shí)間的縮略圖。視頻抓圖,獲取靜態(tài)圖和動(dòng)態(tài)圖,不提倡抓gif文件;因?yàn)樽コ龅膅if文件大而播放不流暢。
4、給視頻加水印功能
使用ffmpeg 視頻添加水印(logo)。

【軟件特色】
使pkg-config找到我的庫(kù)在交叉編譯時(shí)使用pkg-config
將單張照片編碼成電影
將電影編碼為單張照片
使用多線程MPEG *編碼可以看到質(zhì)量輕微下降
從標(biāo)準(zhǔn)輸入讀取或?qū)懭霕?biāo)準(zhǔn)輸出
也是可以修改幀頻的
用ffmpeg編碼Xvid或DivX視頻
支持編碼高質(zhì)量MPEG-1 / MPEG-2
可以讀取DirectShow文件
支持加入視頻文件、支持連接視頻文件
使用concat過(guò)濾器進(jìn)行連接、使用連接分路器連接
也支持使用concat協(xié)議(文件級(jí)別)、使用原始音頻和視頻進(jìn)行連接
FFmpeg在我的VOB文件中可以看字幕
支持運(yùn)行ffmpeg作為后臺(tái)任務(wù)
支持Microsoft Visual C ++
可以添加automake,libtool或autoconf
在我的C ++應(yīng)用程序中使用FFmpeg
在我的C ++應(yīng)用程序中使用libavutil

【項(xiàng)目組成】
FFmpeg是一套可以用來(lái)記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開(kāi)源計(jì)算機(jī)程序。它包括了領(lǐng)先的音/視頻編碼庫(kù)libavcodec等。libavformat:用于各種音視頻封裝格式的生成和解析,包括獲取解碼所需信息以生成解碼上下文結(jié)構(gòu)
和讀取音視頻幀等功能;
libavcodec:用于各種類型聲音/圖像編解碼;
libavutil:包含一些公共的工具函數(shù);
libswscale:用于視頻場(chǎng)景比例縮放、色彩映射轉(zhuǎn)換;
libpostproc:用于后期效果處理;
ffmpeg:該項(xiàng)目提供的一個(gè)工具,可用于格式轉(zhuǎn)換、解碼或電視卡即時(shí)編碼等;
ffsever:一個(gè) HTTP 多媒體即時(shí)廣播串流服務(wù)器;
ffplay:是一個(gè)簡(jiǎn)單的播放器,使用ffmpeg 庫(kù)解析和解碼,通過(guò)SDL顯示;

【安裝教程】
1.在百度搜索軟件的名字,點(diǎn)擊downloads,然后進(jìn)入官網(wǎng)點(diǎn)擊白色的方塊圖標(biāo)。

2.選擇builds,再點(diǎn)擊downloads builds。


3.倒下載的目錄文件夾,然后解壓它,點(diǎn)擊進(jìn)入直到你看到圖二一樣的文件,并進(jìn)入bin文件夾,然后你點(diǎn)擊一下地址欄復(fù)制這個(gè)文件所在的路徑。




4.右鍵計(jì)算機(jī)的圖標(biāo)屬性,點(diǎn)擊高級(jí)系統(tǒng)設(shè)置。


5.點(diǎn)擊環(huán)境變量,找到path這一行點(diǎn)擊編輯。


6.在路徑最后一行輸入英文的分號(hào),然后粘貼上面解壓的文件的路徑的地址,點(diǎn)擊確定并退出。


7.最后進(jìn)入cmd這里,輸入ffmpeg,看到一排的提示,不是提示不是內(nèi)部或者外部命令即為成功了。



【使用說(shuō)明】
使用Microsoft Visual C ++鏈接到FFmpeg如果您打算與MSVC構(gòu)建的靜態(tài)庫(kù)鏈接,則需要確保在項(xiàng)目設(shè)置中將運(yùn)行時(shí)庫(kù)設(shè)置為多線程(/ MT)。
您需要內(nèi)聯(lián)定義MSVC可以理解的內(nèi)容:
#define inline __inline
還要注意,正如Microsoft Visual C ++中所述,您將需要一個(gè)兼容MSVC的inttypes.h。
如果您計(jì)劃使用由dlltool創(chuàng)建的導(dǎo)入庫(kù),則必須在鏈接器優(yōu)化設(shè)置下將引用設(shè)置為否(/ OPT:NOREF),否則生成的二進(jìn)制文件將在運(yùn)行時(shí)失敗。使用由lib.exe生成的導(dǎo)入庫(kù)時(shí),這不是必需的。此問(wèn)題在http://sourceware.org/bugzilla/show_bug.cgi?id=12633上報(bào)。
要?jiǎng)?chuàng)建與/ OPT:REF選項(xiàng)一起工作的導(dǎo)入庫(kù)(在發(fā)布模式下默認(rèn)啟用),請(qǐng)按照下列步驟操作:
打開(kāi)Visual Studio命令提示符。
或者,在常規(guī)命令行提示符中,調(diào)用為設(shè)置Visual C ++工具的環(huán)境變量的'vcvars32.bat'(該文件的標(biāo)準(zhǔn)位置類似于'C:\ Program Files(x86_ \ Microsoft Visual Studio 10.0 \ VC \ BIN \ VCVARS32.BAT“)。
進(jìn)入存儲(chǔ)創(chuàng)建的LIB和DLL文件的'bin'目錄。
【常見(jiàn)問(wèn)題】
1.1為什么不支持FFmpeg功能[xyz]?因?yàn)檫€沒(méi)有人接受這個(gè)任務(wù)。 FFmpeg的開(kāi)發(fā)是由對(duì)個(gè)人開(kāi)發(fā)者來(lái)說(shuō)很重要的任務(wù)驅(qū)動(dòng)的。 如果有一項(xiàng)對(duì)您很重要的功能,實(shí)現(xiàn)它的最好方法是自己承擔(dān)這項(xiàng)任務(wù)或贊助開(kāi)發(fā)人員。
1.2 FFmpeg不支持編解碼器XXX。 你可以包含一個(gè)Windows DLL加載器來(lái)支持它嗎?
沒(méi)有Windows DLL不可移植,臃腫且速度慢。 此外FFmpeg努力本地支持所有編解碼器。 DLL加載器不利于實(shí)現(xiàn)這一目標(biāo)。
1.3雖然這種格式似乎被ffmpeg支持,但我無(wú)法讀取該文件。
即使ffmpeg可以讀取容器格式,也可能不支持其所有編解碼器。 請(qǐng)參閱ffmpeg文檔中支持的編解碼器列表。

































