ffmpeg移植

編譯環境: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編碼部分,需要其它功能可自行添加。

發佈了5 篇原創文章 · 獲贊 4 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章