Mac下面编译Android FFmpeg3.2.4

需要搞直播,打算使用ffmpeg进行推流,于是在Mac下进行了编译FFMmpeg。

1、下载ffmpeg源码,我下载的是ffmpeg-3.2.4

2、配置好build_android.sh编译安卓脚本,脚本如下,

cd /Users/xxxx/Documents/DevTool/ffmpeg-3.2.4
NDK=/Users/xxxx/Documents/DevTool/AndroidSDK/android-sdk-macosx/ndk-bundle
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
function build_one{
./configure \
 --prefix=$PREFIX \
 --enable-shared \
 --disable-static \
 --disable-doc \
 --disable-ffmpeg \
 --disable-ffplay \
 --disable-ffprobe \
 --disable-ffserver \
 --disable-avdevice \
 --disable-doc \
 --disable-symver \
 --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
 --target-os=linux \
 --arch=arm \
 --enable-cross-compile \
 --sysroot=$SYSROOT \
 --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
 --extra-ldflags="$ADDI_LDFLAGS" \
 $ADDITIONAL_CONFIGURE_FLAG
 make clean
 make
 make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU 
ADDI_CFLAGS="-marm"
build_one

我这里选择的CPU的架构是arm,有其他需要可自行添加;

3、为脚本赋予可执行权限;

chmod -R 775 build_android.sh

4、执行脚本,经过一番编译等待之后,我这边编译了几遍大约在十五分钟编译完成;
这里写图片描述

5、打开AS,我的测试版本是AS 2.3版本,所以使用的是CMakelist.txt来进行编译的,把刚才编译好的源码复制到项目的libs下面;
这里写图片描述

6、编译CMakelist.txt文件,完整的如下;

//For more information about using CMake with Android Studio, read the
//documentation: https://d.android.com/studio/projects/add-native-code.html
//Sets the minimum version of CMake required to build the native library.

cmake_minimum_required(VERSION 3.4.1)

find_library( # Sets the name of the path variable.
              log-lib

              # Specifies the name of the NDK library that
              # you want CMake to locate.
              log )

set(distribution_DIR ${CMAKE_SOURCE_DIR}/../../../../libs)

add_library( avutil-55
             SHARED
             IMPORTED )
set_target_properties( avutil-55
                       PROPERTIES IMPORTED_LOCATION
                       ../../../../libs/arm/libavutil-55.so )

add_library( swresample-2
             SHARED
             IMPORTED )
set_target_properties( swresample-2
                       PROPERTIES IMPORTED_LOCATION
                       ../../../../libs/arm/libswresample-2.so )

add_library( avcodec-57
             SHARED
             IMPORTED )
set_target_properties( avcodec-57
                       PROPERTIES IMPORTED_LOCATION
                       ../../../../libs/arm/libavcodec-57.so )

add_library( avfilter-6
             SHARED
             IMPORTED)
set_target_properties( avfilter-6
                       PROPERTIES IMPORTED_LOCATION
                       ../../../../libs/arm/libavfilter-6.so )

add_library( swscale-4
             SHARED
             IMPORTED)
set_target_properties( swscale-4
                       PROPERTIES IMPORTED_LOCATION
                       ../../../../libs/arm/libswscale-4.so )

add_library( avformat-57
             SHARED
             IMPORTED)
set_target_properties( avformat-57
                       PROPERTIES IMPORTED_LOCATION
                       ../../../../libs/arm/libavformat-57.so )

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")

add_library( native-lib
             SHARED
             src/main/cpp/native-lib.cpp )

include_directories(libs/include)

//target_include_directories(native-lib PRIVATE libs/include)

target_link_libraries(native-lib
                     ${avutil-55}
                     ${swresample-2}
                     ${avcodec-57}
                     ${avfilter-6}
                     ${swscale-4}
                     ${avformat-57}
                     ${log-lib} )

7、编译运行,成功,明天就可以开撸直播了,哈哈,附上下载链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要创建一个可编译的工程,我们需要按照以下步骤进行: 1. 下载和安装Visual Studio 2017。确保选择的是支持C++的版本,并选择安装适用于开发桌面应用程序的组件。 2. 下载pjsip 2.7.1,ffmpeg 3.2.4,sdl2.0.7 和MicroSIP3.16.4的源代码。 3. 解压缩下载的源代码文件。 4. 打开Visual Studio 2017,选择“文件”菜单中的“新建”和“项目”。 5. 在“新建项目”对话框中,选择“Visual C++”和“空项目”,然后为项目命名并选择保存。 6. 在“解决方案资源管理器”窗口中,右键单击新建的项目并选择“属性”。 7. 在“属性页”中,选择“C/C++”、“常规”,然后将pjsip、ffmpeg、sdl2和MicroSIP的头文件路径添加到“附加包含目录”中。 8. 在同一属性页上,选择“链接器”、“常规”,并将pjsip、ffmpeg、sdl2和MicroSIP的库文件路径添加到“附加库目录”中。 9. 继续在“链接器”下选择“输入”,将pjsip、ffmpeg、sdl2和MicroSIP的库文件名添加到“附加依赖项”中。 10. 单击“应用”按钮保存更改并关闭“属性页”。 11. 在“解决方案资源管理器”窗口中,右键单击“源文件”文件夹,并选择“添加”和“现有项”。 12. 在“添加现有项”对话框中,选择pjsip、ffmpeg、sdl2和MicroSIP的源代码文件,并单击“添加”。 13. 右键单击项目,选择“生成”和“生成解决方案”。 14. 如果没有任何错误,那么你的项目应该被编译成功了。 以上步骤应该可以帮助你在Visual Studio 2017中创建一个可编译的工程,包含pjsip 2.7.1,ffmpeg 3.2.4,sdl2.0.7和MicroSIP3.16.4的资源。如果你遇到任何问题,请仔细检查每个步骤是否正确执行,并确保所有的依赖项都正确配置。 ### 回答2: 要在VS2017中创建一个可编译工程,包括pjsip 2.7.1、ffmpeg 3.2.4、sdl2.0.7和microsip 3.16.4,需要按照以下步骤进行操作: 1. 下载并安装Visual Studio 2017。确保选择了正确的版本(Community、Professional或Enterprise),并安装C++开发工具。 2. 下载并解压pjsip 2.7.1、ffmpeg 3.2.4、sdl2.0.7和microsip 3.16.4的源代码。确保解压的文件夹路径没有中文或特殊字符。 3. 打开Visual Studio 2017,并选择“新建项目”。 4. 在新建项目窗口的左侧面板中选择“Visual C++”节点,并选择“空项目”。 5. 输入项目名称,并选择项目的保存路径。 6. 单击“确定”按钮。 7. 在解决方案资源管理器中,右键单击项目,选择“属性”。 8. 在属性管理器中,选择“平台”和“所有配置”,然后选择“VC++目录”。 9. 在“包含目录”中,添加pjsip、ffmpeg、sdl2和microsip的源代码路径。 10. 在“库目录”中,添加pjsip、ffmpeg、sdl2和microsip的库文件路径。 11. 在“链接器”下的“输入”中,添加以下附加依赖项: pjsua2.lib pjmedia-codec.lib ffmpeg.lib sdl2.lib microsip.lib 12. 单击“应用”按钮,然后关闭属性管理器。 13. 在解决方案资源管理器中,右键单击项目,选择“添加”->“现有项”。 14. 选择pjsip、ffmpeg、sdl2和microsip的源代码文件,并将其添加到项目中。 15. 在解决方案资源管理器中,右键单击项目,选择“生成”。 16. 等待编译和链接完成。 17. 如果没有错误和警告,说明编译成功。 总结: 以上是在VS2017中创建一个可编译工程,包括pjsip 2.7.1、ffmpeg 3.2.4、sdl2.0.7和microsip 3.16.4的步骤。确保按照指定的顺序安装和配置所需的软件和库,并确保路径设置正确,以避免编译错误。 ### 回答3: 要在VS2017上创建一个可编译的工程,使用以下步骤: 1. 首先,确保已经正确安装了VS2017,并且安装了所有必需的组件和工具。 2. 下载并安装对应版本的pjsip、ffmpeg、sdl2和microsip。将它们解压到适当的位置。 3. 打开VS2017,并创建一个新的空项目。 4. 在项目资源管理器中,右键单击项目名称,选择“属性”。 5. 在“属性”窗口中,选择“VC++目录”选项卡。 6. 在“包含目录”中,添加pjsip、ffmpeg、sdl2和microsip的头文件目录。 7. 在“库目录”中,添加pjsip、ffmpeg、sdl2和microsip的库文件目录。 8. 在“链接器”选项卡下的“输入”中,添加pjsip、ffmpeg、sdl2和microsip的库文件。 9. 选择“编译”选项卡,将“C++”->“常规”->“附加包含目录”设置为pjsip、ffmpeg、sdl2和microsip的头文件目录。 10. 在“链接器”选项卡下,将“输入”->“附加依赖项”设置为pjsip、ffmpeg、sdl2和microsip的库文件。 11. 确认所有设置后,编译并运行项目。 这样,你就可以在VS2017中创建一个可编译的工程,使用pjsip 2.7.1、ffmpeg 3.2.4、sdl2.0.7和microsip 3.16.4。请注意,根据你的项目需求,你可能还需要稍作调整和配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值