centos android build centos7
今天给各位分享centos android build的知识,其中也会对centos7进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
FFmpeg4.2.2 交叉编译
这两天一直在编译FFmpeg库,实话真是踩坑不少,也知道了遇见问题该如何排错,所以还是打算记录下,也算是一个总结.
配置环境:使用CentOS 8系统,并下载了android-ndk-r17c和ffmpeg-4.2.2版本.务必下载linux版的NDK,通过wget命令下载到Linux系统中.
配置参数:使用./configure--help查看帮助选项,根据这些选项配置FFmpeg脚本.编译过程就是对配置的修改.
学习资源:推荐相关学习资料,免费报名课程,链接在文章中.提供音视频免费学习地址,包括FFmpeg、WebRTC、RTMP、NDK、Android音视频流媒体高级开发等.
编译脚本示例:编写Shell脚本用于动态配置,如针对arm64-v8a架构.遇到的坑包括arm-linux-androideabi-gcc无法创建可执行文件,以及config.mak文件未生成等问题,解决方法在文章中详细说明.
生成目标文件:生成指定架构的库文件,如arm64-v8a.生成后在lib、include、share目录下存放相关文件.若未生成,检查配置问题并查看config.log获取错误信息.
库文件下载与压缩:可以使用其他工具下载或通过命令如lrzsz下载生成的库文件.将库文件和头文件复制到对应目录,修改CMakeLists.txt和build.gradle文件以适应Android环境.
移植与测试:移植FFmpeg库到Android中,修改CMakeLists.txt以指定输出的ABI,添加ndk闭包配置以避免混淆不同架构的库,并在cpp中添加测试代码以验证编译与移植成功.
总结:在编译FFmpeg的过程中,会遇到很多坑,每个版本的Shell脚本编写方式都有所不同.建议先复习Shell相关知识,参考教程和踩坑经验以顺利编译.
python编程开发app教程(自学编程软件入门)
准备工作
使用python开发应用程序需要python模块kivy。Kivy是一个开源的跨平台Python开发框架,用于开发创新的应用程序。简而言之,这是一个python桌面程序开发框架。什么的强大在于kivy支持linux、mac、windows、android和ios平台,这也是开发app需要这个模块的原因。一系列python教程,免费提供,遇到bug及时反馈,与按钮裙讨论交流60 61 15 02 7虽然kivy是跨平台的,但是如果要在不同平台上使用python代码,就需要将Python代码打包成相应平台的可执行程序。好在kivy project下面有一个打包工具项目——buildozer,这是官方推荐的打包工具。因为相对简单,自动化程度高,其他项目,比如python-for-android,也能起到类似的作用,所以我赢了这里就不介绍了。基维
搭建kivy开发环境
kivy开发环境需要安装在pc上。这里演示了在mac和linux下的安装过程。
为mac安装kivy
安装一些依赖包:
安装cython和kivy:
如果安装kivy时出现错误,请按照以下方式安装kivy:
安装后测试:
注意:如果导入kivy模块时没有报告错误,则安装成功。
为centos7安装kivy
首先安装依赖项:
安装cython和kivy:
Centos安装kivy参考:3359kivy.org/docs/installation/installation-linux.html#使用软件包
注:其他安装kivy的方式可以移动:
用kivy开发第一个python app
安装kivy后,就可以开发app程序了。这里这是hello-world程序的演示。kivy更复杂的用法不是本文的重点,后面会以书面形式介绍。1)创建一个main.py文件,并编写:
2)创建一个hello.kv文件,并写入:
简单解释:main.py是入口函数,定义了一个HelloApp类,继承了kivy.app;Hello.kv文件是一个kivy程序,相当于定义了界面风格等。这个文件的命名规则是类名小写,app移除。
运行第一个python应用。
运行结果:
安装buildozer工具
通过上面的编码,我创建了我的第一个python app程序,可以直接在mac、linux、windows平台上运行。那么我怎么让它在安卓或者苹果手机上运行呢?我们知道要在android上运行,需要将其打包成apk安装程序,所以需要使用前面提到的buildozer工具,.buildozer的安装过程相对简单:
用buildozer工具将kivy程序打包成apk。
在python项目目录中运行:
成功运行将创建一个配置文件buildozer.spec。您可以通过修改配置文件来更改应用程序的名称,然后运行:
运行上面的命令会生成一个跨平台的安装包,可以应用于Android、ios等。如果是用于Android,那就是python-for-Android项目。
第一次运行上述命令时,系统会自动下载Android sdk等必要文件,如下图所示。
注:这里只把演示打包成apk文件,iso平台可以自己研究。参考文件:
python apk程序测试
如果上述所有步骤都成功运行,应该会在项目目录下的bin目录中生成一个apk文件,如下所示
然后下载apk到安卓手机安装。测试结果如下:
打开应用程序:
推土机制造说明
buildozer包装过程中的坑点
如果在打包过程中遇到错误,可以将buildozer.spec的配置文件中的log_level修改为2,然后重新运行。可以看到具体的错误信息。
错误:您可能错过了安装32位库
这个错误是我在centos7上运行Times的失误,大意是系统缺少一些32位的依赖文件。解决方案:
参考:3359 ask. fedora project. org/en/question/9556/how-do-I-install-32 bit-libraries-on-a-64 bit-fedora/
错误报告:编译Cython文件时出错
意思是cython文件中有一个错误。可能是没有安装cython模块,或者是版本有问题。解决方案:
错误:ioerror:没有这样的文件或目录.
这是包装的最后一步。将apk文件复制到项目bin目录是错误的。这是buildozer的一个bug。解决方案:修改
/usr/local/lib/python 2.7/dist-packages/build dozer/Tagets/Android. py文件:在文件开头导入:
将第786行中的以下代码替换为:XXX发现apk名称实际上是如何根据标题构建的:
构建虚拟机
Kivy正式推出了buildozer的虚拟机镜像,已经安装了buildozer和一些依赖文件,为buildozer包测试提供平台。像我之前在mac上用buildozer打包,一直报错,后来换成centos,还是没有我没有成功,所以我下载了这个虚拟机。测试结果如下:
虚拟机下载地址:
注:给能如果不能解决依赖问题,您可以使用该虚拟机进行程序打包。开发环境还是建议用自己的机器。
王者之心2点击试玩
centos下 Janus Server 搭建笔记
Janus是一个开源的,通过 C语言实现了对 WebRTC支持的 Gateway;Janus自身实现得很简单,提供插件机制来支持不同的业务逻辑,配合官方自带插件就可以用来实现高效的 Media Server服务。
本文主要介绍如何在 Centos 7.0下搭建起 janus服务器,实现 janus官方 Demo浏览器与 Android APP Demo(janus-gateway-android)之间的音视频通话。
目前浏览器仅支持 FireFox浏览器,因为 Chrome浏览器打开音视频采集的话需要 HTTPS加密访问!
效果图如下:
编译运行 Janus Server需要依赖较多的一些第三方库
2.1安装依赖
Ubuntu下通过 aptitude批量安装依赖工具包,这里建议 Ubuntu镜像源(/etc/apt/source.list)不要为了追求速度而改用了国内的某些镜像源,如网易 163,这可能会导致某些工具包下载失败,建议依然使用官方自带的镜像源。
yum list| grep nice
yum install gtk-doc
批量安装命令:
如果出现某个工具包下载失败,请修改镜像源为官方地址,并执行以下命令
以更新镜像源,完成后重新安装。
2、安装 WebSocket
janus支持 WebSocket是可选项,如果不安装,编译 janus时,默认不支持 WebSocket的链接请求,而 Android APP Demo是通过 WebSocket与 janus进行通信的,因为我们希望 Android APP Demo能与浏览器(HTTP)进行视频通话,所以就必须要在编译 janus时支持 WebSocket。
依次执行以下命令,分别进行下载,编译,安装:
安装成功后,在编译 janus时,janus默认会增加对 WebSocket的集成,或者通过增加编译参数--enable-websockets打开 WebSocket开关,或--disable-websockets关闭 WebSocket开关。
3、安装 Http Server
Janus源码目录下的 html下自带 Web Demo(html& JavaScript),Janus编译完成并 Start以后,需要通过 http server访问 Janus Web Demo,其中包括:
以上 janus插件均可通过相应的 http链接进行访问体验。
以下介绍一种快速,便捷,轻巧的 HTTP Server安装方式:
通过 Node.js(基于 Chrome V8引擎的 JavaScript运行环境)进行安装,首先安装 Node.js:
安装成功后,通过 npm(npm是 Node.js的包管理器,是全球最大的开源库生态系统)进行安装 httpserver:
启动方式:
进入到 html目录,执行 http-server命令即可,如:
输入 http url即可访问。
注:需首先 build& start janus Server!
4、安装 libsrtp
Janus需要至少 version 1.5以上的 libsrtp,如果系统中已经安装了 libsrtp,则首先卸载后,手动安装新版本,这里我们安装 libsrtp 2.0,依次执行以下命令:
5、编译 Janus
通过 Git下载 Janus源码,并编译安装:
configure执行成功后,会输出 janus所支持的协议及插件,如下:
6、运行 Janus
如果全部安装以上步骤进行编译的 janus,那么 janus的全局配置文件存放目录为:
或者在启动 janus时,加上相应的启动参数,参数可通过 janus--help查看;
janus默认的配置中是没有 WebSocket的配置的,直接启动 Janus会因没有 WebSocket配置文件而报错。幸运的是在配置目录中 Janus已经给我们提供了一个 WebSocket的示例配置文件: janus.transport.websockets.cfg.sample,(如果我们要通过 WebSocket连接 Janus,则需要有个 WebSocket的配置文件)这里我们可以直接拷贝这个示例文件:
通过查看此配置文件,可以得知 Janus默认的 WebSocket的端口号为 8188,记住这个端口号,在 Android APP Demo中会使用到!
启动 Janus:
根据需要可以选择是否加上后面两个启动参数。
我们使用 PC下的浏览器与 Android APP Demo进行联调。
1、启动 Web Demo
进入到 janus目录下的 html目录,启动 http-server
这样外部便可以通过 进行访问了,进入首页后,找到 videoRoom,Start
2、启动 Android APP Demo
修改源代码
janus-gateway-android支持两个 Demo测试:EchoTest和 VideoRoom,默认情况下会启用 EchoTest,这个 Demo仅仅是连接服务器后,将数据再发回本地进行本地测试,我们要改为与房间内的其它用户(浏览器)进行视频通话,则需要启用另外一个测试用例 VideoRoom,按照如下方式修改代码:
JanusActivity.java类中新增 VideoRenderer.Callbacks数组(视频房间中可能会有多人),暂定义为 2个,实际连接人数不要超过此数字:
OnCreate方法中初始化以上定义的数组:
APP Demo是通过 WebSocket连接 Janus Server,所以修改 VideoRoomTest.java中 JANUS_URL地址为我们启动的 Janus服务器 WebSocket地址,IP为 janus server地址,端口默认为 8188:
3、联调测试
Janus Server默认会开启两个视频房间:1234和 5678,分别使用 VP8和 VP9视频编码器,所以我们通过 Brower和 Android APP Demo进行联调测试时,暂不需要设置房间 ID。
效果图:
修改/opt/janus/etc/janus/janus.jcfg
nat:{
stun_server="stun.voip.eutelia.it"
stun_port= 3478
nice_debug= false