Android平台下GStreamer SDK使用实践

下载SDK及Demo包

SDK包 prebuilt binaries:https://gstreamer.freedesktop.org/data/pkg/android/
Demo 代码:https://gitlab.freedesktop.org/gstreamer/gst-docs/
解压,分别存放至路径:
D:\GitHub\extra\gst-docs-master
D:\GitHub\extra\gstreamer-1.0-android-universal-1.15.1

构建Demo应用并运行

开发工具相关版本信息如下
开发工具相关版本信息

打开demo路径下的工程
AS打开Demo工程
在AS同步project之后,进行构建。
这里有个GStreamer SDK路径配置问题,需要在ndk-build的构建脚本中引入GSTREAMER_ROOT_ANDROID的值,这个值就是我们存放GStreamer SDK的路径。
在这里插入图片描述
有两种方式可以指定:

  1. 新建系统环境变量GSTREAMER_ROOT_ANDROID并设置其值。
  2. 按照ERROR提示,在gradle.properties中增加gstAndroidRoot变量。

这里我们使用方法2。由于Demo程序project中没有自带gradle.properties配置文件。我在project根路径下新建该配置文件并写入配置。
在这里插入图片描述
上述问题解决,继续构建,在ndk-build阶段遇到新问题:
在这里插入图片描述
找到GStreamer SDK路径下出现问题的构建脚本gstreamer-1.0.mk,路径为:
D:\GitHub\extra\gstreamer-1.0-android-universal-1.15.1\armv7\share\gst-android\ndk-build\gstreamer-1.0.mk
在这里插入图片描述
可以看到对应说明,新版Android NDK使用新的SYSROOT_INC和SYSROOT_LINK替换了以前的SYSROOT变量。然而,在新版NDK中SYSROOT_LINK定义任然是缺失的。查看一下SYSROOT_GST_LNIK的使用方式,是作为libtool-link调用的–sysroot参数使用,用于指定交叉编译环境下的系统根路径。所以,这里可以暂且使用SYSROOT_INC代替,修改如下:
在这里插入图片描述
这里需要注意一下,GStreamer SDK中ABI分为4个,在AS中进行ndk-build时,默认也是会构建这4个类型的ABI,所以4个对应的gstreamer-1.0.mk文件都需要进行修改。如果只需要构建指定的ABI,可以通过ndk-build的abiFilters参数进行配置,如下:
配置ndk-build的ABI
继续构建,即可成功完成。
在手机上运行Demo程序,效果图如下:
Demo运行效果图

AS运行使用ndk-build构建出现问题时排查方法:

AS中打开Project结构视图,查看.externalNativeBuild中的相关文件可以获取到ndk-build的相关信息:
在这里插入图片描述
android_gradle_build.json 文件记录了ndk-build相关的所以信息,包含使用的构建脚本,需要构建的源文件,生成哪些库,ABI,交叉编译工具链等。
ndkBuild_build_command.txt 文件记录着AS要执行的ndk-build命令,记录执行ndk-build脚本时的完整参数列表,我们也可以在命令行手动执行这个命令来验证一些问题。
ndkBuild_build_output.txt 文件记录了ndk-build执行后的输出信息。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值