avav588con,最近2019中文免费字幕在线观看,欧美一道本一区二区三区,九九热在线观看,经典好看免费AV

行業(yè)產(chǎn)品

  • 行業(yè)產(chǎn)品

北京漢邦高科數(shù)字技術(shù)股份有限公司


當(dāng)前位置:北京漢邦高科數(shù)字技術(shù)股份有限公司>技術(shù)文章>視頻解碼中用到的ffmpeg交叉編譯技巧

    暫無(wú)信息

經(jīng)營(yíng)模式:生產(chǎn)廠家

商鋪產(chǎn)品:208條

所在地區(qū):北京北京市

聯(lián)系人:漢邦高科 (助理)

技術(shù)文章

視頻解碼中用到的ffmpeg交叉編譯技巧

閱讀:771發(fā)布時(shí)間:2014-4-24

一、簡(jiǎn)介

FFmpeg是一個(gè)集錄制,轉(zhuǎn)換,音/視頻編碼解碼功能為一體的完整的開源解決方案。FFmpeg的開發(fā)是基于Linux操作系統(tǒng),但是可以在大多數(shù)操作系統(tǒng)中編譯和使用。

由于ffmpeg是基于linux開發(fā)的,源代碼和windows下zui常見的visual studio提供的c/c++編譯器不兼容,因此不能直接使用msvc++編譯,想要使用ffmpeg,需要在windows下配置一個(gè)類似Linux的編譯環(huán)境,并將ffmpeg編譯為二進(jìn)制庫(kù)以后,再利用其進(jìn)行進(jìn)一步開發(fā)。

目前,windows下可直接使用的版本是由ffmpeg工程組,于2008年4月份發(fā)布的ffmpeg full sdk v3.2。該sdk盡可能的集成了更多的編解碼器。

在應(yīng)用中,使用該開發(fā)包存在2個(gè)缺陷,*,該sdk編譯基于ffmpeg r12790,編解碼效率上,當(dāng)前已經(jīng)有了較大的提升;第二,該開發(fā)包包含了很多不需要的編解碼器,需要盡可能減少開發(fā)包的體積及關(guān)聯(lián)的庫(kù)的個(gè)數(shù)?;谝陨闲枨螅枰约壕幾g出windows下可用動(dòng)態(tài)庫(kù)及靜態(tài)庫(kù)。

使用到的庫(kù)文件有4個(gè),libavcodec,libavformat,libavutil,libswscale,其中庫(kù)libavcodec,libavformat用于對(duì)媒體文件進(jìn)行處理,如編解碼;libavutil是一個(gè)通用的小型函數(shù)庫(kù),該庫(kù)中實(shí)現(xiàn)了CRC校驗(yàn)碼的產(chǎn)生,128位整數(shù)數(shù)學(xué),zui大公約數(shù),整數(shù)開方,整數(shù)取對(duì)數(shù),內(nèi)存分配,大端小端格式的轉(zhuǎn)換等功能,libswscale主要用于圖像格式轉(zhuǎn)換及縮放。因效率的需要,我們選擇了ffmpeg-mt版本,同時(shí)通過(guò)配置編譯盡量減少相關(guān)文件的體積。

網(wǎng)上類似編譯過(guò)程說(shuō)明較多,但實(shí)際編譯過(guò)程中碰到一些問題,這些問題的解決花費(fèi)了不少時(shí)間,本文檔對(duì)這一過(guò)程進(jìn)行記錄,以便后續(xù)維護(hù)及學(xué)習(xí)。

二、編譯環(huán)境搭建

windows下ffmpeg編譯環(huán)境有多種可選擇方案。這里我們使用MinGW+MSYS。

1.     下載mingw+msys并安裝

http://sourceforge.net/projects/mingw/

mingw,默認(rèn)安裝,在choose components時(shí)選擇g++ compiler及MinGW Make

Msys,默認(rèn)安裝,

Do you wish to continue with the post install【yn】,y!

Do you have mingw installed?【yn】, y

Where is your mingw installation? C:/mingw

 

在c:/mingw/1.0/msys.bat的*行添加

E:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat

 

2.     編譯

將ffmpeg-mt減壓縮至c:\mysy\1.0\home\Administrator下

啟動(dòng)msys,

pwd確認(rèn)當(dāng)前路徑

cd /home/administrator/ffmpeg-ffmpeg-mt

 

下載gcc-full-4.4.0-mingw32-bin-2.tar.lzma.tar

減壓縮覆蓋至c:\mingw,這里需要注意的是,如果gcc版本過(guò)低,可能導(dǎo)致解碼報(bào)錯(cuò)!

 

在ffmpeg-ffmpeg-mt創(chuàng)建編譯選項(xiàng)文件compile.sh

在該文件中添加

./configure --disable- static --enable- shared --enable-memalign-hack --disable-debug --disable-network --disable-mpegaudio-hp --disable-ffserver --disable-ffplay --disable-filters --disable-devices --disable-protocols --disable-demuxers --disable-muxers --disable-encoders --disable-parsers --disable-bsfs --enable-pthreads --enable-runtime-cpudetect --disable-decoders --enable-decoder=H264

運(yùn)行compile.sh,這時(shí)會(huì)提示:./configure:line 248: pr: command not found

這個(gè)需要從coreutils-5.97中提取pr.exe,拷貝至c:/msys/1.0/bin

然后會(huì)提示:Error: can’t find pthreads library

這個(gè)需要通過(guò)下載pthreadsGC2-static-2.9.x-gcc42.tar.bz2(靜態(tài)連接),減壓縮至c:\mingw\mingw32中解決

 

從其他版本ffmpeg中提取libswscale至當(dāng)前文件夾內(nèi)

將sdl-devel-1.2.14-mingw32.tar.gz減壓縮至c:\mingw

 

3.     目標(biāo)文件生成

通過(guò)上述過(guò)程,生成的是動(dòng)態(tài)庫(kù),對(duì)應(yīng)的庫(kù)有avcodec.dll/avcodec.lib/avcodec-xx.xx.xx.dll/avcodec-xx.dll/avcodec-xx.lib,另外三個(gè)庫(kù)文件生成類似,選擇所需對(duì)應(yīng)dll及l(fā)ib即可直接用于使用。

對(duì)于靜態(tài)庫(kù)的編譯,僅需修改編譯配置,將--disable- static --enable- shared更改為-- enable - static -- disable – shared即可。

生成靜態(tài)庫(kù)文件libavcodec.a/libavformat.a/libavutil.a/libswscale.a,用于windows下vc項(xiàng)目時(shí),還需注意添加相關(guān)庫(kù)文件: libgcc.a libmingwex.a libpthreadGC2.a Ws2_32.lib。

三、  編譯選項(xiàng)及注意項(xiàng)

1.     gcc版本,gcc版本過(guò)低可能導(dǎo)致運(yùn)行錯(cuò)誤

2.     Pthread庫(kù),使用版靜態(tài)庫(kù),版本過(guò)低會(huì)有編譯錯(cuò)誤

3.     碰到問題,可以通過(guò)google搜索相關(guān)錯(cuò)誤說(shuō)明,這個(gè)過(guò)程需要有足夠的耐心。


智慧城市網(wǎng) 設(shè)計(jì)制作,未經(jīng)允許翻錄必究 .? ? ? Copyright(C)?2021 http://www.duty-free.cn,All rights reserved.

以上信息由企業(yè)自行提供,信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性由相關(guān)企業(yè)負(fù)責(zé),智慧城市網(wǎng)對(duì)此不承擔(dān)任何保證責(zé)任。 溫馨提示:為規(guī)避購(gòu)買風(fēng)險(xiǎn),建議您在購(gòu)買產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。

會(huì)員登錄

×

請(qǐng)輸入賬號(hào)

請(qǐng)輸入密碼

=

請(qǐng)輸驗(yàn)證碼

收藏該商鋪

請(qǐng) 登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時(shí)間回復(fù)您~