金山云android连麦源代码,Android-SDK开发指南

Android短视频SDK使用指南

1.名词解释

视频录制:采集摄像头及麦克风音视频数据,通过编码合成最终生成一个本地的mp4文件

视频预览编辑:对指定视频播放的同时添加滤镜、水印并时时显示添加后的效果

视频合成:对指定视频加入滤镜、水印等特效并输出mp4文件

KS3:金山云服务

SDK鉴权:取得SDK的使用权

2.功能介绍

短视频SDK基于金山Android融合库SDK 短视频SDK支持功能:

短视频录制(支持美颜滤镜、麦克风&配乐控制,麦克风&配乐音量控制、前置镜像、动态贴纸、水印)

短视频文件导入,支持mp4/3gp/mov

录制或导入视频预览编辑

录制断点续拍

录制时支持定时拍摄

支持横屏录制

编辑合成添加滤镜

编辑合成添加水印

编辑合成添加背景音乐

编辑合成视频时长裁剪

编辑文件合成,支持H.264、H.265、GIF编码

合成文件上传KS3

上传后文件预览播放

录制添加动态贴纸

编辑添加静态贴纸

支持片头/片尾

美颜、特效

编辑添加字幕

录制编辑变声变调

MV主题

涂鸦

3.运行环境

最低支持版本为Android 4.4 (API level 19)

支持的cpu架构:armv7, arm64, x86

4.关于费用

KSYMediaEditorKit短视频SDK是一款免费SDK,录制、编辑和播放功能都免费提供,可以用于商业集成和使用。

License说明请见wiki

4.1 鉴权

短视频SDK涉及两个鉴权,区别如下:SDK鉴权免费,是必需的

KS3(金山云存储服务)鉴权涉及费用,可以选择不用

SDK鉴权

使用KSYMediaEditorKit短视频编辑SDK前需要注册金山云帐号,SDK需要使用开发者帐号鉴权。请在此注册开发者帐号。

SDK鉴权本身不需要付费。

为了开始开发用于SDK鉴权所需要的鉴权串,提供了服务器端鉴权需要的代码:服务器鉴权代码--JAVA版本

服务器鉴权代码--GO版本

KS3鉴权

如果您的APP不使用金山云的对象存储服务或者使用其他家云存储提供的存储或者CDN服务,上传阶段置null即可。

如果使用金山云对象存储需要开通商务帐号(涉及付费业务),请直接联系金山云商务。

4.2 付费

KSYMediaEditorKit可以免费使用。涉及付费的包括:动态贴纸(可以不集成,如果需要集成需要向第三方供应商付费)

云存储(可以不集成)

点播CDN(可以不集成)

涉及的云存储和CDN,具体费用请参考金山云官网

5.集成说明视频相关jar(必选)

libksysv.jar

可通过jcenter依赖:compile 'com.ksyun.media:libksysv-java:0.8.3'dependencies {

compile 'com.ksyun.media:libksylive-java:2.4.0'

compile 'com.ksyun.media:libksylive-arm64:2.4.0'

compile 'com.ksyun.media:libksylive-armv7a:2.4.0'

compile 'com.ksyun.media:libksylive-x86:2.4.0'

}

KS3上传SDK(必须,可以不用ks3的功能,但是SDK内部集成了ks3的上传逻辑,所以必须依赖ks3关联jar)

通过jcenter方式依赖ks3的关联jar

volley及org.apache.http.Header依赖(同步获取ks3的token时使用)dependencies {

compile 'com.android.volley:volley:1.0.0'

compile 'com.ksyun.ks3:ks3androidsdk:1.4.1'

}

动态贴纸相关库(可选)

demo中只集成了金山云魔方的动态贴纸,详细集成请移步AR贴纸

6.架构说明

8566d770d15840da6d9b724da6e84790.png

7.关键类说明

0d9924a18c60f5efe43ecdd1c3313276.png

8.关键功能集成流程

8.1 SDK鉴权

鉴权需要向AppServer获取鉴权信息,并通过SDK的AuthInfoManager的checkAuth接口来完成。示例代码:参考ShortVideoActivity的onAuthClick函数

流程说明:参考4.2中模块 1:SDK鉴权

wiki:SDK鉴权

鉴权在合成前必须完成,否则影响合成

8.2 录制

准备待编辑文件,提供录制和本地文件导入两种方式来生成待编辑文件示例代码: 录制文件,提供KSYRecordKit来完成录制功能

1) 配置录制参数:使用ShortVideoConfigDialog示例了录制参数的配置,参考ShortVideoActivity的onRecordClick函数

2) 录制预览显示:调用KSYRecordKit的startCameraPreview启动录制预览显示,参考RecordActiviyt的startCameraPreviewWithPermCheck()

3) 录制开始:调用KSYRecordKit的startRecord(string)开始了录制,参考RecordAcitvity的startRecord()函数

4) 录制结束:调用KSYRecordKit的stopRecord()停止录制,参考RecordAcitvity的stopRecord()函数

SDK内部当前没有限制录制时长,建议在3秒~5分钟之间,Demo中最短为5s

文件导入,Demo中提供了文件导入的示例代码,参考FileImportActivity(此部分不涉及与SDK交互)流程说明:参考4.2 中模块2:短视频录制和导入

8.3 编辑

输入编辑文件路径,启动EditActivity对第二步中生成的文件进行编辑,SDK提供KSYEditKit类来完成编辑功能示例代码:

1) 启动编辑:调用KSYEditKit的函数startEditPreview(string)来启动编辑预览,参考EditActivity中startEditPreview()函数只提供mp4、3gpp、mov三种文件的编辑,该函数会对文件格式进行check,不符合会抛出IllegalArgumentException异常

2) 添加滤镜:只提供GPU滤镜的添加,参考EditAcitvity中initBeautyUI()函数,与推流库的滤镜设置方式基本相同,参考内置美颜和自定义GPU滤镜

3) 添加水印:参考EditActivity中onWaterMarkLogoClick()函数,只提供图片水印的添加,与推流库的图片水印基本相同,参考水印流程说明:参考4.2 中模块3:短视频预览编辑合成中的1~3步骤

8.4 合成

编辑结束,开始文件合成示例代码:

1) 配置合成参数:使用ShortVideoConfigDialog示例了录制参数的配置,当前合成提供帧率、encodeType、videobitrate,后续会持续完善

2) 开始合成:调用KSYEditKit的函数startCompose(string)来开始合成,参考EditActivity的onNextClick(函数),合成过程的信息通过OnInfoListener和OnErrorListener来提供,消息通知参考mOnErrorListener和mOnInfoListener,具体说明,请移步状态和错误回调

startCompose中会触发SDK鉴权检查,鉴权失败返回SHORTVIDEO_ERROR_SDK_AUTHFAILED消息,合成无法继续 调用KSYEditKit的getProgress()可以获取到合成进度,App需要自己启动Time来更新进度显示,参考ComposeAlertDialog中的composeStarted()函数流程说明:参考4.2 中模块3:短视频预览编辑合成中的4~8步骤

8.5 上传

文件合成结束,开始上传文件示例代码:

1) 触发上传:接收到回调合成结束SHORTVIDEO_COMPOSE_FINISHED后,在回调接口中返回上传信息KS3ClientWrap.KS3UploadInfo,即可触发上传,参考mOnInfoListener中相关处理

2) 上传鉴权:接收到回调SHORTVIDEO_GET_KS3AUTH后,需要向AppServer请求KS3鉴权Token,Token获取代码参考KS3TokenTask,在回调中返回Token信息,KS3Client会检查token是否正确,正确继续开始文件上传,错误,文件上传失败,文件上传回调参考EditAcitvity中,mPutObjectResponseHandler

通过PutObjectResponseHandler的回调onTaskProgress(double progress)可以获取到上传进度流程说明:参考4.2 中模块4:短视频上传

8.6 播放

上传后文件预览播放示例代码

1) 获取文件地址:当接收到PutObjectResponseHandler的回调onTaskSuccess后,说明上传成功,可以开始获取上传后的文件播放地址,Demo中提供HttpRequestTask类来示例http请求,地址获取参考ComposeAlertDialog中的uploadFinished()函数

2) 开始预览播放:文件获取成功后,可以使用播放器对其进行播放,Demo中示例参考ComposeAlertDialog中的startPreview()此部分不涉及与SDK交互流程说明:参考4.2 中模块5:上传后文件预览播放

功能点详细说明

SDK鉴权(TODO)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
注意:本项目使用android studio开发,eclipse可能无法直接使用。 简介 RTMPCHybirdEngine是为移动端应用量身打造的基于RTMP和RTC混合引擎的连麦互动流媒体直播系统。通过集成本SDK,只需几个简单API调用,便可实现一套完整的连线麦互动直播流媒体应用。包含了流媒体应用中:『采集->编码->传输->解码->播放->连麦视频互动』的所有步骤。 优势 超低延时 超低内存 无缝连接(原有方案不变的情况,直接嵌入SDK) 文字互动、弹幕消息 人员上下线 多达4人同时在线连麦视频互动 SDK包含 RTC 连麦互动 RTMP 推流器 RTMP 播放器 编译环境 Android Studio 替换RTMPUrlHelper.java文件中的RTMP_PUSH_URL和RTMP_PULL_URL 支持的系统平台 Android 4.0及以上 支持的CPU架构 Android armv7 arm64 项目特点 1,商业级开源代码,高效稳定 2,超小内存占有率,移动直播针对性极致优化,代码冗余率极低 3,iOS全平台适配,硬件编解码可保证99%的可用性 4,接口极简,推流:2个 拉流:2个 5,底层库C 核心库代码风格采用:Google code style 6,极简内核,无需再去深扒复杂的FFMpeg代码 7,实用主义,那些什么坑什么优化等概念请搜索相关文章 8,OpenH264软件编码,FFMpeg软件解码,FAAC/FAAD软件编解码,适配不同系统的硬件编解码统统包含 9,支持SRS、Nginx-RTMP等标准RTMP服务;同时支持各大CDN厂商的接入

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值