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上,用視頻播放設備打開:
能看到錄像說明移植成功。