1.获取源码
下载ffmpeg:http://ffmpeg.org
下载libx264:http://www.videolan.org/developers/x264.html
有git链接,用git拉算了
下载fdk_aac:
http://www.linuxfromscratch.org/blfs/view/svn/multimedia/fdk-aac.html
下载SDL2:
http://www.linuxfromscratch.org/blfs/view/systemd/multimedia/sdl2.html
一共四个东西
2.编译libx264配置
./configure --prefix=/home/jun/i.mx6/code/14_ffmprg/x264 --enable-static --host=arm-none-linux-gnueabi --cross-prefix=arm-linux-gnueabihf- --disable-asm
编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j8
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- install
将源码目录下,文件夹里面的东西拷贝到文件系统
3.编译fdk-accsudo apt-get install autoconf automake libtool
./configure --prefix=/home/jun/i.mx6/code/14_ffmprg/fdk-aac-2.0.1 --host=arm-linux-gnueabihf --disable-shared
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j8
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- install
拷贝编译出来的东西
4.编译SDL2sudo ./configure --prefix=/home/jun/i.mx6/code/14_ffmprg/SDL2-2.0.10 --host=arm-linux-gnueabihf --disable-shared&&sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j8&&sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- install
拷贝文件到文件系统
5.编译ffmpeg把/usr/bin/pkg-config复制到arm-none-linux-gnueabi-gcc的同一个目录,并改名为arm-none-linux-gnueabi-pkg-config。
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev g++-multilib tofrodos python-markdown libxml2-utils xsltproc libx11-dev:i386 lib32z1
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
./configure --prefix=/home/jun/i.mx6/code/14_ffmprg/ffmpeg-4.2.1 --enable-cross-compile --cross-prefix=arm-linux-gnueabihf- \
--arch=armel --target-os=linux --enable-gpl --enable-nonfree \
--pkg-config-flags=--static \
--enable-shared
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j8
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- install
拷贝文件到文件系统
6.测试重新编译文件系统
拷贝到设备上
运行
好像是超出RAM的大小了
果然是的
7.制作SD卡分区拷贝文件
首先搞个正常的文件系统,需要确定MMC的设备号
ls -l /dev/mmc*
确定卡分区情况
cd mnt/
ls
mkdir m1
mkdir m2
mount /dev/mmcblk0p1 /mnt/m1/
mount /dev/mmcblk0p2 /mnt/m2/
ls m1/
ls m2/
文件系统在第二区,boot文件在第一区
设置uboot启动参数
setenv bootargs 'console=ttymxc0,115200n8 init=/sbin/init noinitrd root=179:2 rw rootdelay=3 rootfstype=ext3 mem=256M vram=12M'
确定ffmpeg存在,也同时确定当前启动的是SD卡里面的文件系统
8.测试查看版本
ffmpeg -version
放一个mp4视频,然后把声音提取到output.acc
ffmpeg -i mmmm.mp4 -acodec copy -vn output.aac
AVI转MP4
ffmpeg -i gg.avi out.mp4