Unity 安卓端推流工具整理

本文详细介绍在Android环境下搭建推流工具的技术流程,包括环境配置、库下载与集成、aar包制作及Unity调用技巧,解决常见问题,适用于音视频开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

推流工具技术整理

1.环境搭建:

软件版本:Android Studio 3.4.2
下载地址:http://www.android-studio.org/
NDK版本:android-ndk-r10e
下载地址:https://developer.android.google.cn/ndk/downloads/
NDK下载到本地之后需要在Android Studio上配置一下地址,

在这里插入图片描述
在这里插入图片描述
将NDK在电脑中的位置配置在上边我红色框中标注的位置。

2.将推流需要的库下载到本地

使用的库地址为:https://github.com/begeekmyfriend/yasea
将库拉取下来之后将库切换为non-gpuimage分支,并将库打成jar包,让我们后面来进行引用

3.打推流需要的aar包

如何打aar包教程

1.https://www.jianshu.com/p/a7d82b3ac0c4
2.Audio导aar包\AndroidStudio导出aar包给Unity(最详细) - 简书.html

打aar包我遇到的问题
1.在Unity中会遇到资源引用的问题
打开AndroidManifest.xml文件在这里插入图片描述
修改为在这里插入图片描述删除TitleBar的引用
关于Unity调用的脚本名字为UnityActivity.Java
将这个接口做了处理只要调用PushStream()方法就直接开始推流,并且将预览分辨率设置为19201080,将推流出去的分辨率设置为1080720。在调用方法的时候必须先打开安卓摄像头,才能打开startEncode()方法。不然程序会crash。
关闭推流的方法是写在安卓界面上的,调用之前必须先调用关闭安卓原生摄像头,不然会造成摄像头内存无法释放导致crash

Unity调用安卓摄像头我之前实现的原理是这样的,我将Unity的
界面作为安卓的一个View来使用,用Unity的界面把整个安
卓的界面都挡住。然后调用Unity的按钮来控制安卓的推流打开
或者关闭。
后来发现没办法Unity的界面没办法遮挡住安卓原生的View
所以改成了切换两个Acivity。点击开始推流就切换至安卓的
Activity,点击安卓原生的按钮切换为Unity的Activity
在这里插入图片描述

在安卓端我修改了一下那个yasea库文件,以便于Unity调用,由于工作保密问题不便发在网上。大家编译什么遇到问题可以私信问我。

一: 使用javacv来实现,最终也是用过ffmpeg来进行编码和,javacv实现到可以直接接收摄像头的帧数据 需要自己实现的代码只是打开摄像头,写一个SurfaceView进行预览,然后实现PreviewCallback将摄像头每一帧的数据交给javacv即可 javacv地址:https://github.com/bytedeco/javacv demo地址:https://github.com/beautifulSoup/RtmpRecoder/tree/master 二: 使用Android自带的编码工具,可实现硬编码,这里有一个国内大神开源的封装很完善的的库yasea,第一种方法需要实现的Camera采集部分也一起封装好了,进行一些简单配置就可以实现编码,并且yasea目前已经直接支持摄像头的热切换,和各种滤镜效果 yasea地址(内置demo):https://github.com/begeekmyfriend/yasea 服务器 媒体服务器我用的是srs,项目地址:https://github.com/ossrs/srs 关于srs的编译、配置、部署、在官方wiki中已经写的很详细了,并且srs同样是国内开发人员开源的项目,有全中文的文档,看起来很方便 这里有最基本的简单编译部署过程 Android直播实现(二)srs媒体服务器部署 播放器 android的播放使用vitamio,还是国内的开源播放器,是不是感觉国内的前辈们越来越屌了^~^! vitamio支持几乎所有常见的的视频格式和媒体协议 vitamio地址(内置demo):https://github.com/yixia/VitamioBundle 这里使用的是yaesa库,先介绍一下直播实现的程:
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值