android 使用 ffmpeg 进行视频转码(一)
2017-11-02 16:31
731 查看
以下步骤在 Ubuntu 16.04.2 LTS 下完成
第一步:到 ffmpeg 官网 下载 ffmpeg-2.6.9.tar.gz 包到
第二步:进入
文件中添加如下内容:
其中以下三个地方需要修改
export NDK=你的 NDK 所在路径
export SYSROOT=你的NDK中的平台
export TOOLCHAIN=你的 NDK 工具链交叉编译环境
一般情况下,只要配置好 NDK 路径即可,
第三步:给
运行完成后,会在 ffmpeg-2.6.9 文件夹下生成 android 目录,里面的内容如下:
其中 include 目录下存放 ffmpeg 八大模块的头文件,lib 则存在放着编译后生成的带版本号的 .so 库文件。这些文件后续在使用 android NDK 进行 ffmpeg 视频转码编程中需要用到。
PS:以上博文内容根据 动脑学院 Android 课程内容整理而成,如有侵权,请通知
第一步:到 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/bash make clean export NDK=/home/user/IDE/sdk/ndk-bundle export SYSROOT=$NDK/platforms/android-9/arch-arm/ export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 export CPU=arm export PREFIX=$(pwd)/android/$CPU export 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_FLAG make clean make make 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 视频转码编程中需要用到。
PS:以上博文内容根据 动脑学院 Android 课程内容整理而成,如有侵权,请通知
相关文章推荐
- android 使用 ffmpeg 进行视频转码(二)
- 如何使用 FFmpeg 进行视频转码:字幕
- android端采用FFmpeg进行视频剪切、转码与添加水印
- 使用ffmpeg进行视频截图转码
- windows下使用ffmpeg进行视频转码,图片拉取的Java测试代码
- 使用FFMPEG进行一些视频处理(C#)视频合并、转码、获取时长
- Android音视频学习第1章:使用ffmpeg进行视频解码
- Android音视频学习第2章:使用ffmpeg进行音频解码
- Java调用ffmpeg进行视频转码
- android中使用MediaRecorder进行视频录制笔记
- 用FFMPEG SDK进行视频转码压缩时解决音视频不同步问题的方法(转) PTS DTS
- 一个使用FFmpeg库读取3gp视频的例子-Android中使用FFmpeg媒体库(三)
- Android 中使用MediaRecorder进行录像详解(视频录制)
- 用FFMPEG SDK进行视频转码压缩时解决音视频不同步问题的方法(转) PTS DTS
- php使用ffmpeg-php扩展库进行视频截图
- 使用ffmpeg进行视频文件转换成FLV整理
- 一个使用FFmpeg库读取3gp视频的例子-Android中使用FFmpeg媒体库(三)
- 一个使用FFmpeg库读取3gp视频的例子-Android中使用FFmpeg媒体库(三)
- 使用ffmpeg进行视频解码以及图像转换
- Android 中使用MediaRecorder进行录像详解(视频录制)