編譯 FFmpeg及其交叉編譯(理論)

2021-08-15 08:54:12 字數 1811 閱讀 1848

以下給出個人在學習ffmpeg的完整過程,僅供參考。

引言

因為在專案預研階段,每個人的環境有所不一樣,所以在編譯過程中十分注意:配置環境、依賴庫、外接開源庫。其實這些都是為了統一專案環境而已。避免開發階段發現,咦你原來缺來乙個庫,然而之前找了兩天的bug。

但跟以往自己隨意編譯乙個開源庫不一樣,進一步掌握了關於環境、編譯的一些知識。

過程如下:主要是按照ffmpeg-wiki上的編譯部分指導操作

ffmpeg-wiki——

generic compilation guide

一般話的編譯指導,可使用於所有開源庫編譯

為什麼編譯原始碼?

一般化的編譯過程?三部曲

安裝路徑:

環境變數:env命令檢視環境變數

本機編譯

ffmpeg-wiki——

ffmpeg compilation guides 特指ffmpeg的編譯方法

下面是個人配置ffmpeg的configure命令:

path="$home/bin:$path" pkg_config_path="$home/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$home/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-i$home/ffmpeg_build/include" --extra-ldflags="-l$home/ffmpeg_build/lib" --bindir="$home/bin" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-lib***lame  --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-nonfree

將configure --help列印出來,方便查詢配置選項

專案中配置,轉到

不得不說的是:上面使用了hash命令,

鏈結 需要按照教程來建立目錄(家目錄下建立),安裝完成後發現沒有出現ffplay,原來是沒有按照sdl,解析

鏈結 雖然ffmpeg官網並沒有給出相應的配置方法,但結合上述思路:路徑+執行檔案

下面是個人配置sdl的configure命令:

path="$home/bin:$path" ./configure --prefix="$home/ffmpeg_build" --bindir="$home/bin"

path="$home/bin:$path" make

make install

make distclean

由於ffmpeg更新較快,上述的安裝方法對應的更新方法是:正確刪除後,從新編譯一次即可。

編譯後,需要設定對應的環境變數,在此根據本機設定修改為:

/etc/profile新增二進位制路徑

export path="/home/h265/bin:$path"

/etc/manpath.config新增man檔案路徑

manpath_map /home/h265/bin /home/h265/ffmpeg_build/share/man

交叉編譯

本節,講述如何在arm平台上編譯執行ffmpeg,使得mpp系統與ffmpeg同時執行

hi3516a之ffmpeg x264交叉編譯 鏈結

鏈結鏈結鏈結

鏈結(安卓平台,它比較清晰)

交叉編譯ffmpeg

ffmpeg原始碼可從獲取。本人使用的是v2.8。前提條件 海思檢查編譯工具鏈已經裝好 可用echo path檢視是否裝好,示例如下 修改ffmpeg的編譯配置檔案.configure,可用命令列配置。如下是我的配置 configure prefix out ffmpeg disable yasm ...

FFMPEG交叉編譯記錄

記錄一下自己踩過的坑,linux小白 1 ndk版本17之後使用clang編譯器,不使用gcc 2 初裝linux可能未安裝clang編譯器,需要先檢查下 終端輸入clang,若提示 not input file 則已安裝 sudo yum install epel release sudo yum...

x264及ffmpeg交叉編譯

系統 ubuntu14.04 32位 編譯器 arm linux gcc 版本 gcc version 4.8.3 目標板 gec6818 x264交叉編譯 1.解壓原始碼包到指定目錄 tar xvf last x264.tar.bz2 c home csgec tools cd home csge...