android 使用 ffmpeg 进行视频转码(一)
16lz
2021-01-25
以下步骤在 Ubuntu 16.04.2 LTS 下完成
第一步:到 ffmpeg 官网 下载 ffmpeg-2.6.9.tar.gz 包到 study/
目录并解压,然后给文件夹读写权限。这里选择 2.6.9 版本,因为目前这个版本比较稳定
> mkdir study/ > cd study> wget ffmpeg.org/releases/ffmpeg-2.6.9.tar.gz> tar -xvf ffmpeg-2.6.9.tar.gz> sudo chmod -R 777 ffmpeg-2.6.9
第二步:进入ffmpeg-2.6.9
文件夹,然后新建 build_android.sh
文件
> cd ffmpeg-2.6.9> touch build_android.sh
文件中添加如下内容:
#!/bin/bashmake cleanexport NDK=/home/user/IDE/sdk/ndk-bundleexport SYSROOT=$NDK/platforms/android-9/arch-arm/export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64export CPU=armexport PREFIX=$(pwd)/android/$CPUexport ADDI_CFLAGS="-marm"./configure --target-os=linux \--prefix=$PREFIX --arch=arm \--disable-doc \--enable-shared \--disable-static \--disable-yasm \--disable-symver \--enable-gpl \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--disable-ffserver \--disable-doc \--disable-symver \--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \--enable-cross-compile \--sysroot=$SYSROOT \--extra-cflags="-Os -fpic $ADDI_CFLAGS" \--extra-ldflags="$ADDI_LDFLAGS" \$ADDITIONAL_CONFIGURE_FLAGmake cleanmakemake install
其中以下三个地方需要修改
export NDK=你的 NDK 所在路径
export SYSROOT=你的NDK中的平台
export TOOLCHAIN=你的 NDK 工具链交叉编译环境
一般情况下,只要配置好 NDK 路径即可,SYSROOT
和 TOOLCHAIN
可以不做修改,如果需要修改,请根据自己的 NDK 路径情况进行修改。其他配置参数不用改动
第三步:给 build_android.sh
添加可执行权限,并运行该脚本
> sudo chmod +x build_android.sh> sudo ./build_android.sh
运行完成后,会在 ffmpeg-2.6.9 文件夹下生成 android 目录,里面的内容如下:
arm├── include│ ├── libavcodec│ ├── libavdevice│ ├── libavfilter│ ├── libavformat│ ├── libavutil│ ├── libpostproc│ ├── libswresample│ └── libswscale└── lib ├── libavcodec-56.so ├── libavdevice-56.so ├── libavfilter-5.so ├── libavformat-56.so ├── libavutil-54.so ├── libpostproc-53.so ├── libswresample-1.so ├── libswscale-3.so
其中 include 目录下存放 ffmpeg 八大模块的头文件,lib 则存在放着编译后生成的带版本号的 .so 库文件。这些文件后续在使用 android NDK 进行 ffmpeg 视频转码编程中需要用到。
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Android之智能问答机器人
- 3000套IOS android源码分享 7.2G UI素材
- Android(安卓)2.3新增API - DownloadManager
- Android(安卓)stutdio2.2 启动模拟器出现“/dev/kvm is not foun
- Android(安卓)Input设备debug技巧