IMX6学习记录(15)-ffmpeg移植
·

上面是我的微信和QQ群,欢迎新朋友的加入。
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-acc
sudo 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.编译SDL2
sudo ./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

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)