Skip to content

BrushStream

jiangdsuccess edited this page Jun 26, 2017 · 12 revisions

画笔推流

1. 使用场景

在直播过程中,主播使用画笔画出任意文字、图形等,通过与摄像头画面合成后,再一起推送给观众端,该功能从v2.4.0版本引入

2. 使用示例

  • 先构造kit类的实例
KSYGPUBrushStreamerKit * brushKit = [[KSYGPUBrushStreamerKit alloc] initWithDefaultCfg];

KSYGPUBrushStreamerKit继承KSYGPUStreamerKit类,在KSYGPUStreamerKit的基础上添加了一个画笔图层drawLayer和画笔图层的显示位置drawPicRect

2.1 构建画笔图层并画图

//构建图层
_drawView = [[KSYDrawingView alloc] initDraw:_drawViewRect];
_drawView.frame = _drawViewRect;
//图层边框颜色和大小
[_drawView.layer setBorderColor:[[UIColor blueColor] CGColor]];
[_drawView.layer setBorderWidth:2.0f];
//加载图层
[self.view addSubview:_drawView];
//利用UIBezierPath和画图
@property (nonatomic, strong) UIBezierPath *path;
//画图起点
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
//画线
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;

KSYDrawingView是我们定义的一个简单画笔图层演示类,用户可以根据画图需求自己来定义

2.2 添加推流画笔图层

UIImage * img = [self imageFromUIView:_drawView];
_drawPic = [[GPUImagePicture alloc] initWithImage:img];
[self addDrawPic:_drawPic ToMixerAt:_drawLayer];
[_drawPic processImage];

将画笔图层作为推流的一个新图层,利用定时器NSTimer来刷新画笔图层

2.3 启动采集

[brushKit startPreview:self.view];

2.4 启动推流

NSString *rtmpSrv  = @"rtmp://test.uplive.ksyun.com/live/888";
NSURL* _hostURL = [[NSURL alloc] initWithString:rtmpSrv];
[brushKit.streamerBase startStream:_hostURL];

2.5 停止推流

[brushKit.streamerBase stopStream];

2.6 停止采集

[brushKit stopPreview];

3. 效果演示

1. 推流环节说明

2. 特色功能说明

2.1 采集

2.2 音频处理

2.3 视频处理

2.4 编码

2.5 推流

2.6 输入多样化

2.7 集成

3. 第三方功能

4. 技术专栏

5. 已知问题

8. FAQ

金山云计算

Clone this wiki locally