ubuntu下交叉编译ffmpeg

原文:https://www.cnblogs.com/dakewei/p/7476608.html

环境:ubuntu16.04

交叉编译器版本:4.8.3

依赖x264,lame

x264:

1.wget ftp://ftp.videolan.org/pub/x264/snapshots/last_stable_x264.tar.bz2

2.tar xvf last_stable_x264.tar.bz2

3.cd x264-snapshot-20170903-2245-stable

4.export CC=arm-linux-gnueabi-gcc

5.export AR=arm-linux-gnueabi-ar

6.mkdir build

7.cd build

8. ../configure --enable-static --enable-shared --disable-asm --prefix=$PWD/__install --host=arm-linux-gnueabi

9.make

10.make install

lame:

1.wget https://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz

2.tar xvf lame-3.99.5.tar.gz

3.cd lame-3.99.5
4.mkdir build

5.cd build

6. ../configure --prefix=$PWD/__install --host=arm-linux-gnueabi

7.make

8.make install

 

ffmpeg:

1.wget www.ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2

2. tar xvf ffmpeg-snapshot.tar.bz2

3.cd ffmpeg

4.mkdir build

5.cd build

6. ../configure --cross-prefix=/opt/x86-arm/arm-linux/bin/arm-linux-gnueabi- --disable-asm --enable-static --arch=arm --target-os=linux --prefix=$PWD/_install --disable-x86asm --enable-gpl --enable-libx264  --enable-nonfree --enable-cross-compile --extra-cflags=-I/home/jello/x264-snapshot-20170903-2245-stable/build/_install/include --extra-ldflags=-L/home/jello/x264-snapshot-20170903-2245-stable/build/_install/lib --extra-libs=-ldl

 

7.进过步骤6在当前目录下有ffbuild/config.mak,那么修改此文件

文件中有以下四处需要修改

1.

CFLAGS=  -I/home/jello/x264-snapshot-20170903-2245-stable/build/_install/include -march=armv5te -std=c11 -fomit-frame-pointer -marm -pthread -g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat -Wno-maybe-uninitialized

2.

ASFLAGS=  -I/home/jello/x264-snapshot-20170903-2245-stable/build/_install/include -march=armv5te -g

3.

LDFLAGS= -L/home/jello/x264-snapshot-20170903-2245-stable/build/_install/lib  -march=armv5te -Wl,--as-needed -Wl,-z,noexecstack -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample

4.EXTRALIBS=-lx264 -lm -pthread -pthread -lrt -ldl

将以上四项改动如下:

 

 

 

1.

 

CFLAGS=  -I/home/jello/x264-snapshot-20170903-2245-stable/build/_install/include -I/home/jello/lame-3.99.5/build/_install/include/lame -march=armv5te -std=c11 -fomit-frame-pointer -marm -pthread -g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat -Wno-maybe-uninitialized

 

2.

 

ASFLAGS=  -I/home/jello/x264-snapshot-20170903-2245-stable/build/_install/include -I/home/jello/lame-3.99.5/build/_install/include/lame -march=armv5te -g

 

3.

 

LDFLAGS= -L/home/jello/x264-snapshot-20170903-2245-stable/build/_install/lib -L/home/jello/lame-3.99.5/build/_install/lib  -march=armv5te -Wl,--as-needed -Wl,-z,noexecstack -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample

4.EXTRALIBS=-lx264 -lm -pthread -pthread -lrt -ldl -lmp3lame

 

8.make

9.make install

交叉编译完成!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要编译适用于 ARM64 架构的 FFmpeg,您需要使用交叉编译工具链。以下是在 Ubuntu 上编译适用于 ARM64 架构的 FFmpeg 的步骤: 1. 安装交叉编译工具链 您需要安装交叉编译工具链,以便在 Ubuntu 上编译适用于 ARM64 架构的 FFmpeg。可以使用以下命令安装 aarch64-linux-gnu 工具链: ``` sudo apt-get update sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu ``` 2. 下载 FFmpeg 源代码 下载 FFmpeg 的源代码,可以从官方网站下载最新版本: ``` wget https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.bz2 tar -xvf ffmpeg-4.3.1.tar.bz2 cd ffmpeg-4.3.1 ``` 3. 配置 FFmpeg 以下是配置 FFmpeg 的命令: ``` ./configure --arch=aarch64 --target-os=linux --enable-cross-compile --cross-prefix=aarch64-linux-gnu- --sysroot=/usr/aarch64-linux-gnu/ --prefix=/usr/local/ffmpeg --extra-cflags="-I/usr/aarch64-linux-gnu/include" --extra-ldflags="-L/usr/aarch64-linux-gnu/lib" ``` 其中,--arch=aarch64 表示编译适用于 ARM64 架构的 FFmpeg,--target-os=linux 表示编译适用于 Linux 系统的 FFmpeg,--enable-cross-compile 表示启用交叉编译,--cross-prefix=aarch64-linux-gnu- 表示交叉编译工具链的前缀,--sysroot=/usr/aarch64-linux-gnu/ 表示系统根目录,--prefix=/usr/local/ffmpeg 表示安装目录,--extra-cflags="-I/usr/aarch64-linux-gnu/include" 表示指定编译器的附加选项,--extra-ldflags="-L/usr/aarch64-linux-gnu/lib" 表示指定链接器的附加选项。 4. 编译 FFmpeg 运行 make 命令编译 FFmpeg: ``` make ``` 5. 安装 FFmpeg 运行 make install 命令安装 FFmpeg: ``` sudo make install ``` 6. 测试 FFmpeg 在安装完成后,您可以在终端中运行 ffmpeg 命令测试 FFmpeg 是否成功安装: ``` ffmpeg -version ``` 如果一切顺利,您将看到 FFmpeg 的版本信息。 希望这些步骤能够帮助您成功编译适用于 ARM64 架构的 FFmpeg。如果您有任何问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值