FFmpeg移植-迅爲IMX6ULL開發板

FFmpeg(Fast Forward Mpeg)是一種可以用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的多媒體視頻處理工具,擁有視頻採集功能、視頻格式轉換、視頻抓圖等功能。本文介紹如何將ffmpeg移植到ARM平臺。

開發板使用迅爲i.MX6ULL終結者和USB免驅攝像頭,交叉編譯工具爲arm-linux-gnueabihf,yocto Qt5文件系統。
1.編譯x264獲取x264源碼,可以從網站http://www.videolan.org/developers/x264.htm下載,進入如圖1.1界面,點擊下載;或者用我們已經下載壓縮包(與文檔同一目錄下的x264-master.tar.bz2);


將壓縮包放到ubuntu並解壓,tar -vxf x264-master.tar.bz2 ,創建文件夾_x264_install用來存放編譯後生成的文件,mkdir _x264_install:

進入解壓後的路徑x264-master,執行以下命令:./configure --enable-shared --prefix=/home/ubuntu/work/ffmpeg/_x264_install/ --host=arm-linux-gnueabihf --disable-asm

參數說明:

--prefix=/home/ubuntu/work/ffmpeg/_x264_install/  :指定編譯後存放路徑
--host=arm-linux-gnueabihf :指定交叉編譯鏈,用戶需要修改爲自己的交叉編譯器
--enable-shared :允許共享

--disable-asm:跳過彙編

修改配置文件config.mak,vi config.mak,修改爲自己的路徑和交叉編譯工具(本文檔用的arm-linux-gnueabihf-gcc),

SYS_ARCH=ARM
SYS=LINUX
CC= arm-linux-gnueabihf-gcc
LD=arm-linux-gnueabihf-gcc -o
AR= arm-linux-gnueabihf-ar rc
RANLIB= arm-linux-gnueabihf-ranlib

執行make,成功後如圖

執行make install,成功後如圖

查看文件夾_x264_install,發現生成的庫文件已經在此目錄下:

2.編譯FFmpeg

FFmpeg下載地址:http://ffmpeg.org/download.html,已經把下載好的壓縮包放在了文檔同一目錄下。

下載後解壓:tar -vxf ffmpeg-snapshot.tar.bz2 ,創建文件夾_ffmpeg_install存放生成的文件:

進入解壓後的ffmpeg文件夾,修改Makefile,添加編譯選項:CFLAGS  +=  -fPIC

配置編譯選項,執行以下命令:

./configure --cross-prefix=arm-linux-gnueabihf- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --prefix=/home/ubuntu/work/ffmpeg/_ffmpeg_install --enable-shared --disable-static --enable-gpl --enable-nonfree --disable-ffplay --enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-x86asm  --disable-stripping --enable-libx264 --extra-cflags=-I/home/ubuntu/work/ffmpeg/_x264_install/include --extra-ldflags=-L/home/ubuntu/work/ffmpeg/_x264_install/lib --extra-libs=-ldl

參數說明:

--cross-prefix=arm-linux-gnueabihf-:配置爲自己的交叉編譯工具

--cc=arm-linux-gnueabihf-gcc:配置爲自己的交叉編譯工具

--arch=arm --prefix=/home/ubuntu/work/ffmpeg/_ffmpeg_install:

--extra-cflags=-I/home/ubuntu/work/ffmpeg/_x264_install/include :改爲

--extra-ldflags=-L/home/ubuntu/work/ffmpeg/_x264_install/lib :

配置成功後如圖

執行make開始編譯,完成後如圖

執行make install,成功後生成的文件在我們創建好的_ffmpeg_install目錄下:

 

3.移植到ARM開發板

將_x264_install下的庫文件拷貝到開發板的/lib/目錄下, cp *x264* /lib/;

將_ffmpeg_install/lib下的so庫文件全部拷貝到開發板的/lib/目錄下,如有警告可忽略;

將_ffmpeg_install/bin/目錄下的ffmpeg拷貝到開發板的/bin/目錄下:

 

4.測試

插上USB免驅攝像頭,設備節點爲/dev/video2,在開發板終端執行以下命令:

 

ffmpeg -f video4linux2 -s 320x240 -i /dev/video2 /mnt/topeet.avi

會出現如下所示:

開發板的/mnt/目錄下會出現topeet.avi文件,

將此文件拷貝到windows上,用視頻播放設備打開:

能看到錄像說明移植成功。