全部产品
云市场

视频录制

更新时间:2018-12-12 14:42:14

功能介绍

短视频SDK提供基础视频录制,同时支持添加配乐,变速录制,人脸贴纸等录制效果,录制核心类AliyunIRecorder

版本差异

版本 功能描述
专业版 支持所有功能
标准版 支持基础录制和音乐功能,不支持人脸识别
基础版 支持基础录制,不支持音乐和人脸识别

录制流程

录制功能需要获取摄像头和麦克风权限,否则无法录制。视频录制的流程如下:

1. 配置参数
2. 开启预览
3. 录制控制/管理
4. 设置特效
5. 开始录制
6. 完成录制

配置参数

初始化

  • 创建录制接口实例
    1. AliyunIRecorder recorder = AliyunRecorderCreator.getRecorderInstance(Context context);//参数context为当前页面的上下文
  • 销毁录制接口实例
    1. AliyunIRecorder#destroy();

输出设置

  • 设置录制视频输出参数(预览帧率、编码帧率、输出分辨率、编码器类型)
    1. AliyunIRecorder#setMediaInfo(MediaInfo mediaInfo);//相关参数描述请参考MedianInfo的接口文档
  • 设置输出路径
    1. AliyunIRecorder#setOutputPath(String path);
  • 设置录制视频质量
    1. AliyunIRecorder#setVideoQuality(VideoQuality quality);
  • 设置录制视频的码率
    1. AliyunIRecorder#setVideoBitrate(int bitrate);//单位:kbps
  • 设置输出视频的GOP大小
    1. AliyunIRecorder#setGop(int gop);//单位:帧数

回调设置

  • 设置录制回调
    1. AliyunIRecorder#setRecordCallBack(RecordCallback callBack);
  • 设置视频帧采集回调
    1. AliyunIRecorder#setOnFrameCallback(OnFrameCallBack callback);
  • 设置音频采集数据的回调
    1. AliyunIRecorder#setOnAudioCallback(OnAudioCallBack callback);

开启预览

  • 开始预览
    1. AliyunIRecorder#startPreview();
  • 结束预览
    1. AliyunIRecorder#stopPreview();

录制控制/管理

录制控制

  • 获取摄像头数量
    1. AliyunIRecorder#getCameraCount();
  • 设置摄像头类型
    1. AliyunIRecorder#setCamera(CameraType cameraType);
  • 设置摄像头预览参数(闪光灯、对焦模式、zoom、曝光度)
    1. AliyunIRecorder#setCameraParam(CameraParam
    2. cameraParam);//也可以单独设置,参考下面的接口
  • 切换摄像头
    1. AliyunIRecorder#switchCamera();
  • 设置闪光灯模式
    1. AliyunIRecorder#setLight(FlashType flashType);
  • 设置Zoom
    1. AliyunIRecorder#setZoom(float rate);
  • 设置曝光度
    1. AliyunIRecorder#setExposureCompensationRatio(float value);
  • 设置对焦模式
    1. AliyunIRecorder#setFocusMode(int mode);
  • 手动对焦
    1. AliyunIRecorder#setFocus(float xRatio, float yRatio);
  • 设置录制预览窗口View(GLSurfaceView)
    1. AliyunIRecorder#setDisplayView(GLSurfaceView glSurfaceView);//参数glsurfaceView为用户自己定义的GLSurfaceView及其子类对象
  • 设置传感器角度值(非常重要,建议仔细阅读接口文档)
    1. AliyunIRecorder#setRotation(int rotation);
  • 设置人脸角度的检测值(非常重要,建议仔细阅读接口文档)
    1. AliyunIRecorder#setFaceDetectRotation(int rotation);
  • 设置录制视频的角度(非常重要,建议仔细阅读接口文档)
    1. AliyunIRecorder#setRecordRotation(int rotation);
  • 设置静音录制
    1. AliyunIRecorder#setMute(boolean isMute);

录制管理

  • 获取片段管理器
    1. AliyunIRecorder#getClipManager();
  • 设置最大录制时长(总录制时长,不是单个片段的最大时长)
    1. AliyunIClipManager#setMaxDuration(int maxDurationMs);
  • 设置最小录制时长(总录制时长,不是单个片段的时长)
    1. AliyunIClipManager#setMinDuration(int minDurationMs);
  • 获取片段总时长
    1. AliyunIClipManager#getDuration();
  • 获取总的片段数量
    1. AliyunIClipManager#getPartCount();
  • 删除最后一段片段
    1. AliyunIClipManager#deletePart();
  • 删除指定的片段
    1. AliyunIClipManager#deletePart(int index);
  • 删除所有片段
    1. AliyunIClipManager#deleteAllPart();
  • 获取片段路径列表
    1. AliyunIClipManager#getVideoPathList();

设置特效

美颜

  • 设置美颜程度
    1. AliyunIRecorder#setBeautyLevel(int level);
  • 设置美颜开关
    1. AliyunIRecorder#setBeautyStatus(boolean on);

滤镜

  • 设置普通滤镜效果
    1. AliyunIRecorder#applyFilter(EffectFilter effectFilter);//参数路径设置为null表示移除滤镜效果
  • 移除滤镜效果
    1. AliyunIRecorder#applyFilter(new EffectFilter(null));

动效滤镜

  • 设置动效滤镜(灵魂出窍等)
    1. AliyunIRecorder#applyAnimationFilter(EffectFilter effectFilter);
  • 移除动效滤镜
    1. AliyunIRecorder#removeAnimationFilter(EffectFilter effctFilter);

人脸识别(仅专业版支持)

  • 设置人脸坐标数据(接入第三方人脸识别时会用到)
    1. AliyunIRecorder#setFace(float[][] faces);
  • 设置是否需要使用SDK内置的人脸识别
    1. AliyunIRecorder#needFaceTrackInternal(boolean need);
  • 为SDK内置的人脸识别指定模型文件
    1. AliyunIRecorder#setFaceTrackInternalModelPath(String path);
  • 设置SDK内置人脸识别支持的最大人脸个数
    1. AliyunIRecorder#setFaceTrackInternalMaxFaceCount(int maxFaceCount);

动图(仅专业版支持)

  • 添加人脸动图
    1. AliyunIRecorder#addPaster(EffectPaster effectPaster);
  • 添加普通动图
    1. AliyunIRecorder#addPaster(EffectPaster effectPaster,float sx,float sy,float sw,float sh,float rotation,boolean flip);
  • 移除动图
    1. AliyunIRecorder#removePaster(EffectPaster effectPaster);

静态贴纸/水印

  • 添加静态水印/静态贴纸
    1. AliyunIRecorder#addImage(EffectImage effctImage);
  • 移除静态水印/静态贴纸
    1. AliyunIRecorder#removeImage(EffectImage effctImage);

背景音乐(仅专业版、标准版支持)

  • 设置背景音乐
    1. AliyunIRecorder#setMusic(String path,long startTime,long duration);
  • 移除背景音乐
    1. AliyunIRecorder#setMusic(null, 0, 0);

变速(仅专业版、标准版支持)

  • 设置录制变速
    1. AliyunIRecorder#setRate(float rate);

自定义渲染

  • 设置自定义渲染的回调
    1. AliyunIRecorder#setOnTextureIdCallback(OnTextureIdCallBack callback);

拍照

  • 带特效拍照
    1. AliyunIRecorder#takePhoto(boolean needBitmap);
  • 系统拍照(不带特效)
    1. AliyunIRecorder#takePicture(boolean needBitmap);
  • 设定系统拍照的照片大小(只支持系统拍照,特效拍照不支持)
    1. AliyunIRecorder#setPictureSize(Camera.Size size);

其他

  • 设置特效信息(水印、静态贴纸、动图、位置、大小)
    1. AliyunIRecorder#setEffectView(float xRatio,float yRatio,float widthRatio,float heightRatio,EffectBase effectBase);

开始录制

  • 开始录制一个片段视频

    1. AliyunIRecorder#startRecording();
  • 取消录制一个片段视频

    1. AliyunIRecorder#cancelRecording();
  • 停止录制一个片段视频

    1. AliyunIRecorder#stopRecording();

完成录制

  • 结束录制,并且将录制片段视频拼接成一个视频
    1. AliyunIRecorder#finishRecording();
  • 结束录制,生成片段视频的配置信息(不拼接片段)
    1. AliyunIRecorder#finishRecordingForEdit();