热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

androidx86vmwaretools_Mac交叉编译Android平台的librtmp库

1.下载源码gitclonegit:git.ffmpeg.orgrtmpdump2.ndk生成toolchainUsersarikesThirdAndroidndkandroid-
81fa4f5cad59af6cc8025390c79ae569.png

1.下载源码

git clone git://git.ffmpeg.org/rtmpdump

2.ndk生成toolchain

/Users/arikes/Third/Android/ndk/android-ndk-r10e/build/tools/make-standalone-toolchain.sh --platform=android-19 --install-dir=/Users/arikes/Third/Android/tmp/android-19-toolchainps:
Error:Unable to auto-config arch from toolchain
A.先看看你的ndk支持编译哪些cpu
~/android-ndk$ ls toolchains/
aarch64-linux-android-4.9 mipsel-linux-android-4.8
aarch64-linux-android-clang3.4 mipsel-linux-android-4.9
aarch64-linux-android-clang3.5 mipsel-linux-android-clang3.4
arm-linux-androideabi-4.6 mipsel-linux-android-clang3.5
arm-linux-androideabi-4.8 renderscript
arm-linux-androideabi-4.9 x86-4.6
arm-linux-androideabi-clang3.4 x86-4.8
arm-linux-androideabi-clang3.5 x86-4.9
llvm-3.4 x86_64-4.9
llvm-3.5 x86_64-clang3.4
mips64el-linux-android-4.9 x86_64-clang3.5
mips64el-linux-android-clang3.4 x86-clang3.4
mips64el-linux-android-clang3.5 x86-clang3.5
mipsel-linux-android-4.6b.编辑 make-standalone-toolchain.sh,找到并修改 TOOLCHAIN_NAME= 为TOOLCHAIN_NAME=arm-linux-androideabi-4.9

//最后实际上没有使用上述toolchain

3.开始准备编译工程

3.1 新建一个jni目录,目录结构如上。然后将下载RTMPDump的头文件(.h)拷贝到include中,将.c文件拷贝到src中。

3.2 然后需要在jni目录下新建Android.mk和Application.mk文件

Android.mk

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)
LOCAL_MODULE := librtmp
LOCAL_SRC_FILES := src/amf.c src/hashswf.c src/log.c src/parseurl.c src/rtmp.c LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
LOCAL_CFLAGS := -Wall -O2 -DSYS=posix -DNO_CRYPTO
TARGET_PLATFORM := android-23### librtmp library ###
### shared library use the first line
### static library use the second line
### !!! only one line can be used !!! ###include $(BUILD_SHARED_LIBRARY)
#include $(BUILD_STATIC_LIBRARY)

Application.mk

APP_ABI := all

3.3 到此就配置完成了在rtmp的根目录下执行

[root@MiWiFi-R2D-srv home]# ndk-build

3.4 具体使用参考如下:

https://www.jianshu.com/p/3ee9e5e4d630

参考:

librtmp开源库与android平台编译记录_LinChengChun的博客-CSDN博客​blog.csdn.net
bf933e7dfc2b2865ddb08849fe9250ac.png



推荐阅读
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
author-avatar
刘惠雯661556
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有