全部产品
云市场

视频录制

更新时间:2019-07-01 10:30:35

简介

阿里云短视频SDK录制模块提供了视频录制的能力,分为基础版、标准版和专业版。基础版除了提供基础录制能力外,还增加了滤镜和普通美颜能力。标准版在基础版的能力上增加了视频变速和音乐功能。专业版具备滤镜、音乐和变速、高级美颜和美肌、普通美颜、人脸动图等能力。本文档暂时只提供专业版的集成过程。

录制功能集成

步骤1.文件导入

  • 模块导入

将所需模块AlivcCore 、AliyunSVideoBase、AliyunFileDownLoader、AliyunSvideoMusic、AliyunRecorder、AliyunVideoSdk、AliyunVideoCommon、thirdparty-lib拷贝到您当前项目所在的目录,下图中ApsaraVideoQuVideo为一个示例工程,选中部分是从Demo中拷贝的所需模块。趣视频录制复制文件

  • so文件导入

将app/src/main/jniLibs文件夹下的.so文件,拷贝到工程下指定的的so库中。

名称 作用 编辑模块是否必须
libfdk-aac.so 短视频SDK依赖音频第三方库
liblive-openh264.so 短视频SDK依赖第三方库
libQuCore.so 短视频SDK核心库
libaivcffmpeg.so 短视频SDK依赖第三方库
libAliFaceAREngine.so 人脸识别相关库

tips : 短视频目前提供了armeabi-v7a,arm64-v8a两种cpu架构的so库tips:请注意您项目中指定加载so文件的位置,默认为app/src/main/jniLibs

步骤2.gradle配置

  • 引入模块

将拷贝的模块,添加到您项目的依赖中。将下列代码复制到您项目的settings.gradle文件里。

  1. include ':AlivcCore'
  2. include ':AliyunSVideoBase'
  3. include ':AliyunFileDownLoader:downloadermanager'
  4. include ':AliyunSvideoMusic'
  5. include ':AliyunRecorder:record_demo'
  6. include ':AliyunVideoSdk'
  7. include ':AliyunVideoCommon'
  • 添加配置文件

由于Demo中所依赖的一些第三方开源库、sdk版本等配置,都是通过thirdparty-lib中的配置文件config.gradle做统一管理的,所以需要引入该文件。实现方式为:将下面代码拷贝到工程级别的build.gradle文件中,然后重新同步gradle。

  1. apply from: 'thirdparty-lib/config.gradle'

add_thirdlib

  • 添加maven仓库

将下面代码拷贝到 工程级别的build.gradle文件对应的位置。

  1. allprojects {
  2. repositories {
  3. google()
  4. jcenter()
  5. maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }
  6. }
  7. }
  • 添加依赖

接下来,将下面依赖的代码,添加到您工程的主模块(一般是app)的build.gradle中 的dependencies里面。

  1. implementation project(':AliyunRecorder:record_demo')
  2. implementation externalAliyunOSS
  • 删除编辑模块相关内容

如果不需要编辑功能,则需要删除录制中辑模块相关的代码,位置为:AlivcSvideoRecordActivity里跳转到编辑模块的代码,具体代码如下

  1. videoRecordView.setCompleteListener(new AliyunSVideoRecordView.OnFinishListener() {
  2. @Override
  3. public void onComplete(String path, int duration) {
  4. // 2019/5/27 跳转到下一个页面,如果不需要跳转到编辑模块,根据需要修改下面的代码
  5. MediaInfo mediaInfo = new MediaInfo();
  6. mediaInfo.filePath = path;
  7. mediaInfo.startTime = 0;
  8. mediaInfo.mimeType = "video";
  9. mediaInfo.duration = duration;
  10. List<MediaInfo> infoList = new ArrayList<>();
  11. infoList.add(mediaInfo );
  12. AlivcEditInputParam param = new AlivcEditInputParam.Builder()
  13. .setHasTailAnimation(false)
  14. .addMediaInfo(mediaInfo)
  15. .setCanReplaceMusic(isUseMusic)
  16. .setGop(mInputParam.getGop())
  17. .setBitrate(mInputParam.getBitrate())
  18. .setFrameRate(mInputParam.getFrame())
  19. .setVideoQuality(mInputParam.getVideoQuality())
  20. .setVideoCodec(mInputParam.getVideoCodec())
  21. .build();
  22. EditorActivity.startEdit(AlivcSvideoRecordActivity.this, param );
  23. }
  24. });

录制模块的build.gradle文件中删除编辑模块的依赖,代码如下

  1. dependencies {
  2. implementation fileTree(include: ['*.jar'], dir: 'libs')
  3. api project(':AliyunSVideoBase')
  4. implementation project(":AliyunSvideoMusic")
  5. api project(path: ':AliyunFileDownLoader:downloadermanager')
  6. implementation externalGSON
  7. implementation externalFaceUnity
  8. implementation project(':AliyunEditor:editor_demo')//不需要编辑模块时,需要删除的依赖
  9. }

步骤3.功能使用

tips:录制需要camera权限和存储权限,为保证6.0以上机器可以正确使用您需要申请动态权限,您如果出现界面黑屏或者其他异常情况,请务必保证您拥有权限。

  • 创建MyApplication继承android.app.Application或者在项目中已经指定的Application中添加以下代码
  1. @Override
  2. public void onCreate() {
  3. super.onCreate();
  4. QupaiHttpFinal.getInstance().initOkHttpFinal();
  5. DownloaderManager.getInstance().init(this);
  6. }
  • 调用下面代码,进入录制界面。
  1. public void startRecord(View view) {
  2. AlivcRecordInputParam recordParam = new AlivcRecordInputParam.Builder()
  3. .build();
  4. AlivcSvideoRecordActivity.startRecord(this, recordParam);
  5. }

高级美颜美肌

短视频解决方案已经集成依赖faceUnity的高级美颜功能,开发者仅需要替换相应的authpack证书文件即可完成高级美颜效果的展示。

如何获取faceUnity证书

开发者可以通过发送邮件申请试用,试用时需要额外注明:faceUnity高级美颜,我方通过邮件发送证书。邮件地址:videosdk@service.aliyun.com发送内容:请提供应用名、bundleID、包名和签名(MD5格式小写无冒号)

发送邮件获取证书完成之后会获取得到一个authpack.java的文件,替换工程文件中的authpack.java即可,注意必须要保证包名和签名一致。

注意:

  • 短视频解决方案录制模块faceUnity相关的集成核心代码参考:FaceUnityManager类
  • 高级美颜仅在短视频专业版SDK中可使用
  • 如您需要理解如何完整集成faceUnity请参考faceUnity集成短视频Demo集成步骤