编辑

智能视频SDK VideoCreatingSDK

  • 智能视频SDK开发者个人信息保护合规指引
  • 智能视频SDK隐私政策
  • 功能发布记录
  • 播放器SDK
    • SDK&Demo下载
    • 产品简介与下载
    • ios播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 功能列表
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Unity播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • uniapp播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 快速进阶
    • HarmonyOS NEXT
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • Andriod播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Web 播放器
      • license指引
      • 简介
      • 使用指南
      • 版本更新记录
      • 开发指南
      • 接口速查
        • 事件响应接口
        • 控制接口
  • 图片加载SDK
    • SDK&Demo下载
    • SDK集成
    • 快速开始
    • 版本更新记录
    • 接口速查
    • 产品简介
    • 快速进阶
  • 短视频SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • 能力限制
      • DEMO体验
      • SDK下载
    • 使用指南
      • License申请
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 录制
        • 编辑
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • IOS版本开发接入文档
      • 视频指导
        • 视频指南
      • Android开发说明
        • 录制
        • Android版本开发接入文档
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • 概述
  • 移动直播SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • demo体验
      • SDK下载
    • 使用指南
      • 接入教程
      • License申请
      • License续费
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 互动直播
        • 特效直播
        • 拉流
        • IOS接入概述
        • 超低延迟直播
        • 直播推流
      • Android开发说明
        • 超低延时直播
        • 互动直播
        • 普通直播
        • 特效直播
        • 拉流
        • Android接入概述
        • 推流参数配置
所有文档
menu
没有找到结果,请重新输入

智能视频SDK VideoCreatingSDK

  • 智能视频SDK开发者个人信息保护合规指引
  • 智能视频SDK隐私政策
  • 功能发布记录
  • 播放器SDK
    • SDK&Demo下载
    • 产品简介与下载
    • ios播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 功能列表
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Unity播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • uniapp播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 快速进阶
    • HarmonyOS NEXT
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • Andriod播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Web 播放器
      • license指引
      • 简介
      • 使用指南
      • 版本更新记录
      • 开发指南
      • 接口速查
        • 事件响应接口
        • 控制接口
  • 图片加载SDK
    • SDK&Demo下载
    • SDK集成
    • 快速开始
    • 版本更新记录
    • 接口速查
    • 产品简介
    • 快速进阶
  • 短视频SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • 能力限制
      • DEMO体验
      • SDK下载
    • 使用指南
      • License申请
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 录制
        • 编辑
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • IOS版本开发接入文档
      • 视频指导
        • 视频指南
      • Android开发说明
        • 录制
        • Android版本开发接入文档
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • 概述
  • 移动直播SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • demo体验
      • SDK下载
    • 使用指南
      • 接入教程
      • License申请
      • License续费
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 互动直播
        • 特效直播
        • 拉流
        • IOS接入概述
        • 超低延迟直播
        • 直播推流
      • Android开发说明
        • 超低延时直播
        • 互动直播
        • 普通直播
        • 特效直播
        • 拉流
        • Android接入概述
        • 推流参数配置
  • 文档中心
  • arrow
  • 智能视频SDKVideoCreatingSDK
  • arrow
  • 短视频SDK
  • arrow
  • 开发指南
  • arrow
  • IOS开发说明
  • arrow
  • 编辑
本页目录
  • 视频预览
  • 插入视频或图片
  • 素材删除
  • 视频裁剪
  • 视频时码线
  • 视频截图
  • 音乐剪辑
  • 创建剪辑面板
  • 设置剪辑入点

编辑

更新时间:2025-08-22
  • 编辑的相关接口在VideoProducer.framewrok中。

视频预览

  • 完成拍摄或选取本地视频,将实时预览窗口与创建的媒体轨道中心(MediaTrackCenter)连接,对已完成拍摄的视频或本地视频根据需要进行编辑,然后生成视频输出.mov格式的文件
  • 代码示例如下:
Plain Text
1	//初始化预览视图
2
3    self.previewer = [[RMVPMediaPreviewer alloc] init];
4
5    self.previewer.displayView.frame = CGRectMake(65, 9, SCREEN_WIDTH - 65*2, SCREEN_HEIGHT - 9 - 221);
6
7    self.previewer.displayView.backgroundColor = [UIColor blackColor];
8
9    self.previewer.delegate = self;
10
11    self.previewer.needRepeatPlay = YES;
12
13    [self.view addSubview:self.previewer.displayView];
14
15
16	//需要视频原始尺寸
17
18    RMVPMediaPreviewConfig *previewConfig = [RMVPMediaPreviewConfig defaultConfig];
19
20    previewConfig.width = 720;
21
22    previewConfig.height = 1280;
23
24    previewConfig.gravity = RMVPMediaPreviewGravityAspectFit;
25
26    self.previewer.previewConfig = previewConfig;

插入视频或图片

  • 编辑阶段中的视频,称之为片段(segment),由媒体轨道中心(MediaTrackCenter)管理,负责插入、删除,插入视频完成后,再与配置好的预览参数进行连接,就可以实时预览页面。
  • 代码示例如下:
Plain Text
1	//创建媒体轨道中心
2	self.trackCenter = [[RMVPMediaTracksCenter alloc] init];
3
4    RMVPMediaVideoBlendItem *blendItem = [[RMVPMediaVideoBlendItem alloc] initWithBlendMode:RMVPMediaVideoBlendModeNormal];
5
6    self.videoTrack = [[RMVPMediaVisibleTrack alloc] initWithBlendItem:blendItem];
7
8
9	//创建视频片段(segment) 
10	RMVPMediaVideoSegment *segment = [[RMVPMediaVideoSegment alloc] initWithVideoAsset:tempAVAsset decoderType:RMVPMediaSegmentDecoderTypeAVPlayer];
11
12    [self.videoTrack addSegment:segment];
13
14
15	//插入视频到媒体轨道中心
16	[self.trackCenter addVideoTrack: self.videoTrack];
17
18
19	//连接编辑预览与媒体轨道中心
20	[self.previewer loadTracksCenter:self.trackCenter];
21
22
23	//开始预览
24	[self.previewer resumePreview];

素材删除

  • 片段/素材删除,片段成功添加到轨道中心后,通过传入片段索引,可以移除轨道中心上对应素材
  • 代码示例如下:
Plain Text
1	//删除轨道中心索引对应视频
2	[self.videoTrack removeSegmentAtIndex:index];
3
4
5	//重新链接预览与轨道中心
6	[self.previewer loadTracksCenter:self.trackCenter];
7
8
9	//重新计算轨道视频长度
10	[self.previewer seekToTime:kCMTimeZero completionBlock:^(BOOL success) {
11
12        [self.previewer resumePreview];
13
14    }];

视频裁剪

  • 视频裁剪,通过设置视频出点和入点,基于时间出入点裁剪视频,此接口同样适应于音乐裁剪
  • 代码示例如下:
Plain Text
1	// 拖拽片段头, 向后拖拽 2 秒钟
2	CMTime deltaTime = CMTimeMakeWithSeconds(2, NSEC_PER_SEC);
3
4	[self.videoTrack clipSegmentAtIndex:draggingSegmentIndex forTime:deltaTime
5
6position:RMVPMediaTrackCilpSegmentPositionPre];
7
8
9	// 拖拽片段尾部, 向前拖拽 3 秒钟
10	CMTime deltaTime = CMTimeMakeWithSeconds(-3, NSEC_PER_SEC);
11
12	[self.videoTrack clipSegmentAtIndex:draggingSegmentIndex forTime:deltaTime
13
14position:RMVPMediaTrackCilpSegmentPositionPost];

视频时码线

  • 视频时码线,素材\片段添加到媒体轨道后,会抽取片段缩略图形式平铺显示,这里使用系统级接口完成,主要提供两个UI组件,一个用于设置视频裁剪出点、入点视频进度条组件。另一个是抽取缩略图组件。
  • 代码示例如下:
Plain Text
1	//初始化视频进度条组件
2	//segments当前媒体轨道中心的片段数据集合
3	_progressBar = [[BDMVPhotoVideoProgressBar alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 58) photoVideoSegments:self.segments totalDuration:duration minDuration:3 maxSellectDuration:60];
4	// 设置代理,用户接收用户拖动行为
5    _progressBar.delegate = self;
6	[self.view addSubview:_progressBar];
7	//BDMVPhotoVideoProgressBar中会调用抽取缩略图组件
8	//计算抽取缩略图个数
9	//默认缩略图分辨率{38,50},最大缩略图分辨率{100,100}。视频最大长度不超过60s

视频截图

  • 视频截图,通过传递参数截取指定媒资的在某时间上的图片
Plain Text
1UIImage *image = [BDMVVideoClipViewController buildImageWithAsset:newSegment.asset maximunSize:CGSizeMake(200.f,200.f) time:CMTimeMake(1, 10)];
2
3
4+ (UIImage *)buildImageWithAsset:(AVAsset *)avasset maximunSize:(CGSize)size time:(CMTime)time {
5
6    if (avasset) {
7
8        AVAssetImageGenerator *imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:avasset];
9
10        imageGenerator.appliesPreferredTrackTransform = YES;
11
12        if (!CGSizeEqualToSize(size, CGSizeZero)) {
13
14            imageGenerator.maximumSize = size;
15
16        }
17
18        if (CMTIME_IS_INVALID(time) || CMTimeCompare(time, kCMTimeZero) == 0) {
19
20            time = CMTimeMake(1, 10);
21
22        }
23
24        NSError *error = nil;
25
26        CGImageRef cgimage = [imageGenerator copyCGImageAtTime:time actualTime:nil error:&error];
27
28        
29
30        UIImage *image = [UIImage imageWithCGImage:cgimage];
31
32        CGImageRelease(cgimage);
33
34        return image;
35
36    }
37
38    return nil;
39
40}

音乐剪辑

  • 支持将选择的音乐设定入点,进入音乐剪辑页面
Plain Text
1	// 选择的音乐
2    BDMVComposeMusictem *item = self.audioConfig.musicItem;
3
4    [item setupNetMusicLocalPath];
5
6    BDMVMusicClipViewController *vc = [[BDMVMusicClipViewController alloc] initWithItem:item];
7
8    vc.delegate = self;
9
10    [self presentViewController:vc animated:YES completion:^{}];

创建剪辑面板

  • 剪辑面板是UI页面,可添加到指定父页面中,用于用户选择入点
Plain Text
1    self.waveView = [[BDMVWaveformAbstractView alloc] initWithFrame:CGRectMake(16, 84, self.view.frame.size.width - 32, 52)];
2
3    self.waveView.delegate = self;
4
5    NSURL *musicUrl = [NSURL fileURLWithPath:self.musicItem.localPathString];
6
7    AVAsset *musicAsset = [AVAsset assetWithURL:musicUrl];
8
9    self.waveView.asset = musicAsset;
10
11
12	// MusicClipView任意父页面
13    [MusicClipView addSubview:self.waveView];

设置剪辑入点

  • 在选择的音乐基础上(通过初始化BDMVMusicClipViewController类传入),设置入点
Plain Text
1    self.musicItem.clipStartPos = time;
2
3    self.musicItem.clipOffset = self.startPos;

上一篇
录制
下一篇
字幕