編譯環境:ubuntu12.04
交叉編譯器:arm-none-linux-gnueabi-gcc 4.4.1
目標板:iTOP4412 (cortex A9)
ffmpeg庫的移植主要包括:
1.yasm移植(可選,yasm是彙編編譯器,ffmpeg加入它是爲了提高編譯速度,可在x264配置時使用--disable-asm選擇不使用)
2.x264移植
3.xvid移植(可選)
4.ffmpeg移植
具體步驟:
1.編譯yasm
1)進入源碼壓縮包目錄,解壓
2)製作編譯腳本yasm_build.sh
vim yasm_build.sh
添加內容:
#!/bin/sh cd yasm-1.3.0 mkdir _install ./configure --enable-shared --prefix=${PWD}/_install --host=arm-none-linux-gnueabi make make install
3)執行編譯腳本
./yasm_build.sh
則在yasm目錄下的_install目錄裏生成/include /lib /bin
2.設置臨時環境變量
export PATH=$PATH:/home/jiangyu/software/x264/yasm-1.3.0/_install/bin
3.編譯x264
1. 進入x264文件夾,進行配置
1
$ .
/configure
--prefix=${PWD}/_install
--enable
-shared --disable-asm --host=arm-none-linux-gnueabi
(如果配置出現找不到目錄錯誤,單獨一個一個添加配置選項嘗試,確保都配置上)
說明:--prefix=
{PWD}/_install
安裝目錄
--enable-shared 打開動態鏈接,可以生成libx264.so
--disable-asm 因爲是移植到arm開發板上,因此把彙編選項關閉
--host=arm-none-linux-gnueabi
指定目標CPU和系統2. 配置完後生成config.mak,打開config.mak修改:
1)將 CC=gcc 改爲 CC=arm-none-linux-gnueabi-gcc
2)將 LD=gcc -o 改爲 LD=arm-none-linux-gnueabi-gcc –o
3)將 AR=ar rc 改爲 AR=arm-none-linux-gnueabi-ar rc
4)將 RAMLIB=ranlib 改爲 RANLIB=arm-none-linux-gnueabi-ranlib
保存退出3. make 編譯
4. make install 安裝
安裝之後在指定安裝目錄就有/bin,/include,/lib這三個文件夾
3.編譯xvid
1)進入主目錄下build/generic/
2)配置:mkdir _install
./configure --host=arm-none-linux-gnueabi --target=arm-linux --prefix=${PWD}/_install
3)make
4)make install
_install下生成/include /lib
4.編譯ffmpeg
進入ffmpeg主目錄,mkdir _install
1)配置 :
./configure --prefix=/home/jiangyu/software/ffmpeg/_install --disable-x86asm --disable-ffmpeg --disable-debug --disable-doc --disable-ffplay --disable-ffprobe --enable-version3 --enable-shared --enable-nonfree --enable-gpl --enable-libx264 --enable-pthreads --enable-decoder=h264 --enable-parser=h264 --enable-demuxer=h264 --enable-protocol=file --cross-prefix=arm-none-linux-gnueabi- --target-os=linux --arch=arm --enable-cross-compile --cc=arm-none-linux-gnueabi-gcc --extra-cflags=-I/home/jiangyu/software/ffmpeg/x264-snapshot-20181014-2245/_install/include --extra-ldflags=-L/home/jiangyu/software/ffmpeg/x264-snapshot-20181014-2245/_install/lib --extra-libs=-ldl
2)make -j4
3)make -j4 install
./_install下生成lib include share bin四個文件夾
5.拷貝庫以及可執行文件到開發板
cp (x264路徑)/_install/lib/lib* /home/jiangyu/rootfs/lib
cp (x264路徑)/_install/bin/x264 /home/jiangytu/rootfs/app/
cp (ffmpeg路徑)/_install/lib/lib* /home/jiangyu/rootfs/lib
cp (ffmpeg路徑)/_install/bin/ffmpeg /home/jiangytu/rootfs/app/
(上述庫及可執行文件均注意需要添加可執行權限)
6.測試
x264測試:
./x264 -o test.264 test.yuv (.yuv文件通過x264編碼壓縮生成test.264視頻文件)
ffmpeg測試:
./ffmpeg -f video4linux2 -s 1920x1080 -i /dev/video5 test.avi 按q退出錄製視頻,生成test.avi文件,可直接用播放器播放查看
至此,此次移植過程結束,上述過程只移植了ffmpeg的x264編碼部分,需要其它功能可自行添加。