本章節使用的資料已經放到了開發板網盤資料中,路徑為:11_Linux 系統開發進階\98_章節使用資料。
FFmpeg(Fast Forward Mpeg)是一種可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的多
媒體視頻處理工具,擁有視頻采集功能、視頻格式轉換、視頻抓圖等功能。本文檔介紹如何將 ffmpeg 移植
到 ARM 平臺。
開發板使用迅為i.MX6ULL終結者和USB免驅攝像頭,交叉編譯工具為arm-linux-gnueabihf,yocto Qt5
文件系統。
98.1 編譯 x264
獲取 x264 源碼,可以從網站 http://www.videolan.org/developers/x264.htm 下載,進入如圖 98.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,成功后如圖 98.1.5:
執行 make install,成功后如圖 98.1.6:
查看文件夾_x264_install,發現生成的庫文件已經在此目錄下:
98.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 :
配置成功后如圖 98.2.6:
執行 make 開始編譯,完成后如圖 98.2.7:
執行 make install,成功后生成的文件在我們創建好的_ffmpeg_install 目錄下:
98.3 移植到 ARM 開發板
將_x264_install 下的庫文件拷貝到開發板的/lib/目錄下, cp *x264* /lib/;
將_ffmpeg_install/lib 下的 so 庫文件全部拷貝到開發板的/lib/目錄下,如有警告可忽略;
將_ffmpeg_install/bin/目錄下的 ffmpeg 拷貝到開發板的/bin/目錄下:
98.4 測試
插上 USB 免驅攝像頭,設備節點為/dev/video2,在開發板終端執行以下命令:
ffmpeg -f video4linux2 -s 320x240 -i /dev/video2 /mnt/topeet.avi
會出現如下所示:
開發板的/mnt/目錄下會出現 topeet.avi 文件,
將此文件拷貝到 windows 上,用視頻播放設備打開:
能看到錄像說明移植成功。
|