# 自定义视频采集
# 简介
实时视频传输过程中,JC SDK 会启动默认的视频模块进行采集和渲染。当遇到不支持系统标准 API 的视频设备的时候,或者希望使用自己已经拥有的视频模块进行视频采集和渲染的时候,将视频文件作为视频输入源。
# 前提条件
在自定义视频采集和渲染前,确保已经初始化了 JCMediaDevice 模块。
# 自定义视频输入源
在视频通话中,您可以自定义视频输入源,菊风提供将视频文件作为视频源的方案以实现该功能:
- 调用 startVideoFile (opens new window) 开启该功能。
- 调用 setVideoFileFrame (opens new window)逐帧添加视频数据。
- 发起通话或者加入频道。
- 渲染视频画面。
- 在结束通话后调用 stopVideoFile (opens new window) 关闭该功能。
// 开启以视频文件作为视频源的功能
[mediaDevice startVideoFile];
// 添加视频数据方法 1:
[mediaDevice setVideoFileFrame:data format:JCMediaDeviceVideoPixelFormatI420 width:640 height:360];
// 添加视频数据方法 2:
[mediaDevice setVideoFileFrame:data angle:90 mirror:1];
// 渲染视频画面
...
// 关闭该功能
[mediaDevice stopVideoFile];
TIP
文件和摄像头作为视频输入源只能存在一种,如果当前摄像头已开启的话会关闭当前摄像头。