97夜夜澡人人爽人人免费-97一区二区三区-97伊人久久-97伊人网-97影院2-97影院3

下固件網 http://www.xinzhenzfzp.cn - 專注于免費技術分享的網站!

下固件網-XiaGuJian.com,計算機科技

當前位置: 主頁 > 安防報警 > 安防技術 >

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

軟件大小:未知 發布時間:2022-12-08 刷新次數:
內容詳情
一、簡介FFmpeg是一個集錄制,轉換,音/視頻編碼解碼功能為一體的完整的開源解決方案。FFmpeg的開發是基于Linux操作系統,但是可以在大多數操作系統中編譯和使用。由于ffmpeg是基于linux開發的,源代碼和windows下最常見的visualstudio提供的c/c++編譯器不兼容,因此不能直接使用msvc++編譯,想要使用ffmpeg,需要在windows下配置一個類似Linux的編譯環境,并將ffmpeg編譯為二進制庫以后,再利用其進行進一步開發。目前,windows下可直接使用的最新版本是由ffmpeg工程組,于2008年4月份發布的ffmpegfullsdkv3.2。該sdk盡可能的集成了更多的編解碼器。在應用中,使用該開發包存在2個缺陷,第一,該sdk編譯基于ffmpegr12790,編解碼效率上,當前已經有了較大的提升;第二,該開發包包含了很多不需要的編解碼器,需要盡可能減少開發包的體積及關聯的庫的個數。基于以上需求,需要自己編譯出windows下可用動態庫及靜態庫。使用到的庫文件有4個,libavcodec,libavformat,libavutil,libswscale,其中庫libavcodec,libavformat用于對媒體文件進行處理,如編解碼;libavutil是一個通用的小型函數庫,該庫中實現了CRC校驗碼的產生,128位整數數學,最大公約數,整數開方,整數取對數,內存分配,大端小端格式的轉換等功能,libswscale主要用于圖像格式轉換及縮放。因效率的需要,我們選擇了ffmpeg-mt版本,同時通過配置編譯盡量減少相關文件的體積。網上類似編譯過程說明較多,但實際編譯過程中碰到一些問題,這些問題的解決花費了不少時間,本文檔對這一過程進行記錄,以便后續維護及學習。二、編譯環境搭建windows下ffmpeg編譯環境有多種可選擇方案。這里我們使用MinGW+MSYS。1.下載mingw+msys并安裝http://sourceforge.net/projects/mingw/mingw,默認安裝,在choosecomponents時選擇g++compiler及MinGWMakeMsys,默認安裝,Doyouwishtocontinuewiththepostinstall【yn】,y!Doyouhavemingwinstalled?【yn】,yWhereisyourmingwinstallation?C:/mingw在c:/mingw/1.0/msys.bat的第一行添加E:\ProgramFiles\MicrosoftVisualStudio9.0\VC\bin\vcvars32.bat2.編譯將ffmpeg-mt減壓縮至c:\mysy\1.0\home\Administrator下啟動msys,pwd確認當前路徑cd/home/administrator/ffmpeg-ffmpeg-mt下載gcc-full-4.4.0-mingw32-bin-2.tar.lzma.tar減壓縮覆蓋至c:\mingw,這里需要注意的是,如果gcc版本過低,可能導致解碼報錯!在ffmpeg-ffmpeg-mt創建編譯選項文件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運行compile.sh,這時會提示:./configure:line248:pr:commandnotfound這個需要從coreutils-5.97中提取pr.exe,拷貝至c:/msys/1.0/bin然后會提示:Error:can’tfindpthreadslibrary這個需要通過下載pthreadsGC2-static-2.9.x-gcc42.tar.bz2(靜態連接),減壓縮至c:\mingw\mingw32中解決從其他版本ffmpeg中提取libswscale至當前文件夾內將sdl-devel-1.2.14-mingw32.tar.gz減壓縮至c:\mingw3.目標文件生成通過上述過程,生成的是動態庫,對應的庫有avcodec.dll/avcodec.lib/avcodec-xx.xx.xx.dll/avcodec-xx.dll/avcodec-xx.lib,另外三個庫文件生成類似,選擇所需對應dll及lib即可直接用于使用。對于靜態庫的編譯,僅需修改編譯配置,將--disable-static--enable-shared更改為--enable-static--disable–shared即可。生成靜態庫文件libavcodec.a/libavformat.a/libavutil.a/libswscale.a,用于windows下vc項目時,還需注意添加相關庫文件:libgcc.alibmingwex.alibpthreadGC2.aWs2_32.lib。三、編譯選項及注意項1.gcc版本,gcc版本過低可能導致運行錯誤2.Pthread庫,最好使用最新版靜態庫,版本過低會有編譯錯誤3.碰到問題,可以通過google搜索相關錯誤說明,這個過程需要有足夠的耐心。
微信公眾號
獲取資料
★下載時請注意網站提示!如未成功下載勿關閉頁面并聯系網站客服。
重要說明

1.瀏覽本站前務必閱讀并知曉本站服務條款點擊閱讀
2.嚴禁將本站分享內容用于非法用途,或以任何形式的傳播,造成損失由使用人承擔一切后果.
3.本站網友等分享的一些資源僅供無商業目的得交流學習之用,版權規所有權人所有.

頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
昵稱: 驗證碼:點擊我更換圖片
欄目列表
掃碼關注免費咨詢海量資料每日推送
下固件網公眾號
主站蜘蛛池模板: 欧美一级免费观看 | 人人澡人人添 | 性做久久久久久久免费看 | 四虎成人精品国产一区a | 亚洲欧美日韩在线2020 | 久久免费成人 | 99久久精品免费看国产四区 | 波多野结衣在线一区 | 免费观看日本大片毛片 | 国产精品成人免费观看 | 色综合久久98天天综合 | 亚洲日本aⅴ片在线观看香蕉 | 日本三级香港三级人妇网站 | 浪老妇的屁股好紧好爽 | 国产欧美一区视频在线观看 | 国产精品 日韩 欧美 制服 | 99国产在线观看 | 精品视频在线免费 | 日韩一二三 | 国产91在线|亚洲 | 欧美亚洲日本视频 | 亚洲视频在线免费 | 久久国产精品二区99 | 九九线精品视频 | 福利片成人午夜在线 | 91网址在线 | 亚洲嫩草影院久久精品 | 日本丰满大乳欲妇三级 | 天天影视色香欲综合网 西瓜影音 | 一区二区三区视频在线播放 | 亚洲国产成人精品一区91 | 免费色在线 | 精品亚洲视频在线观看 | 99精品国产久热在线观看66 | 中文字幕日本在线观看 | 日韩欧美在线中文字幕 | 三级黄色免费观看 | 久久99深爱久久99精品 | 九一精品视频 | 免费看黄在线观看 | 国产a一级毛片含羞草传媒 国产bbbbsign |