七牛短视频文档

视频内容编辑

6.3 视频内容编辑

6.3.1 配置编辑参数

通过 PLVideoEditSetting 可以配置视频编辑的必要参数:

  1. PLVideoEditSetting setting = new PLVideoEditSetting();
  2. // 视频源文件路径
  3. setting.setSourceFilepath(videopath);
  4. // 编辑后保存的目标文件路径
  5. setting.setDestFilepath(outputpath);
  6. // 编辑保存后,是否保留源文件
  7. setting.setKeepOriginFile(true);

6.3.2 创建编辑对象

  1. // glSurfaceView 用于渲染视频编辑后的效果
  2. mShortVideoEditor = new PLShortVideoEditor(glSurfaceView, setting);

6.3.3 添加滤镜

添加内置滤镜

  • 获取内置的视频滤镜列表
  1. mShortVideoEditor.getBuiltinFilterList();
  • 选择一个滤镜
  1. mShortVideoEditor.setBuildinFilter(String filterName);

添加外置滤镜

  1. mShortVideoEditor.setExternalFilter(String filterFilePath);

6.3.4 添加实时水印

PLShortVideoEditor 支持在视频上添加并动态更新水印,通过 PLWatermarkSetting 设置水印参数:

  1. PLWatermarkSetting mWatermarkSetting = new PLWatermarkSetting();
  2. mWatermarkSetting.setResourceId(R.drawable.qiniu_logo);
  3. mWatermarkSetting.setPosition(0.01f, 0.75f);
  4. mWatermarkSetting.setAlpha(128);
  5. mShortVideoEditor.setWatermark(mWatermarkSetting);

通过 updatePreviewWatermark 方法更新预览视频的水印:

  1. PLWatermarkSetting mPreviewWatermarkSetting = new PLWatermarkSetting();
  2. mPreviewWatermarkSetting.setResourceId(R.drawable.qiniu_logo);
  3. //更新了预览视频的水印位置
  4. mPreviewWatermarkSetting.setPosition(0.5f, 1f);
  5. mPreviewWatermarkSetting.setAlpha(128);
  6. mShortVideoEditor.updatePreviewWatermark(mPreviewWatermarkSetting);

通过 updateSaveWatermark 方法更新保存视频的水印:

  1. PLWatermarkSetting mSaveWatermarkSetting = new PLWatermarkSetting();
  2. mSaveWatermarkSetting.setResourceId(R.drawable.qiniu_logo);
  3. //更新了保存的视频的水印位置
  4. mSaveWatermarkSetting.setPosition(0.5f, 1f);
  5. mSaveWatermarkSetting.setAlpha(128);
  6. mShortVideoEditor.updateSaveWatermark(mSaveWatermarkSetting);

6.3.5 预览效果

  1. // 开始播放
  2. mShortVideoEditor.startPlayback();
  3. // 恢复播放
  4. mShortVideoEditor.resumePlayback();
  5. // 暂停播放
  6. mShortVideoEditor.pausePlayback();
  7. // 结束播放
  8. mShortVideoEditor.stopPlayback();
  9. // 跳到 msec 处播放
  10. mShortVideoEditor.seekTo(int msec);
  11. // 获取当前播放时间
  12. mShortVideoEditor.getCurrentPosition();

6.3.6 音频混合

注意:** 以下方法只是针对单个混音文件处理,请勿与“多重音频混合”的相关方法混合使用 **

  1. // 设置混音文件(本地音频文件)
  2. mShortVideoEditor.setAudioMixFile(String filePath);
  3. // 设置混音文件(assets 下的音频文件)
  4. mShortVideoEditor.setAudioMixAsset(AssetFileDescriptor afd);
  5. // 设置原音(前景)和混音文件(背景)的音量 [0-1.0f]
  6. mShortVideoEditor.setAudioMixVolume(float fgVolume, float bgVolume);
  7. // 设置混音的起始和结束位置
  8. mShortVideoEditor.setAudioMixFileRange(long beginTime, long endTime);
  9. // 设置混音是否循环
  10. mShortVideoEditor.setAudioMixLooping(false);

6.3.7 保存视频

编辑后的视频效果,调用如下接口最终可以保存到本地:

  1. // 设置视频的速度(默认速度为 1.0)
  2. mShortVideoEditor.setSpeed(1.0);
  3. // 设置需要保存的视频时间段为 0 到 6000 毫秒(默认为整个视频)
  4. mShortVideoEditor.setVideoRange(0, 6000)
  5. // 监听保存状态和结果
  6. mShortVideoEditor.setVideoSaveListener(this);
  7. // 执行保存操作
  8. mShortVideoEditor.save();

6.3.8 添加文字特效

  1. // 创建文字特效控件
  2. PLTextView textView = new PLTextView(this);
  3. // 设置文字内容,字体大小,字体颜色,透明度等一系列属性
  4. textView.setText("点击输入文字");
  5. textView.setTextSize(40);
  6. textView.setTextColor(Color.RED);
  7. textView.setAlpha(0.8f);
  8. // 添加文字特效
  9. mShortVideoEditor.addTextView(textView);
  10. // 设置文字特效的显示时间段为 0 到 3000 毫秒
  11. mShortVideoEditor.setViewTimeline(textView, 0, 3000);
  12. // 删除文字特效
  13. mShortVideoEditor.removeTextView(textView);

6.3.9 添加MV特效

  1. // 添加MV特效
  2. // 注:mvFilePath 为MV视频文件路径,maskFilePath 为蒙版文件路径
  3. mShortVideoEditor.setMVEffect(mvFilePath, maskFilePath);
0.062187s