详情页标题前

腾讯云云直播Web 推流 SDK API

详情页1

API 概览

TXLivePusher

腾讯云直播推流器,主要用于浏览器 Web 推流。通过浏览器采集用户的画面和声音,通过 WebRTC 将视频流和音频流传输推送到腾讯云直播服务端。

API 描述
checkSupport 静态函数,检查浏览器支持性。
setRenderView 设置本地视频画面的预览容器。
setVideoQuality 设置推流视频质量。
setAudioQuality 设置推流音频质量。
setProperty 调用高级 API 接口。
startCamera 打开摄像头设备。
stopCamera 关闭摄像头设备。
startMicrophone 打开⻨克⻛设备。
stopMicrophone 关闭⻨克⻛设备。
startScreenCapture 开启屏幕采集。
stopScreenCapture 关闭屏幕采集。
startVirtualCamera 开始采集本地媒体文件流。
stopVirtualCamera 停止采集本地媒体文件流。
startCustomCapture 使用用户自定义的音视频流。
stopCustomCapture 关闭用户自定义的音视频流。
startPush 开始推流。
stopPush 停止推流。
isPushing 查询当前是否正在推流中。
getMediaStream 根据流 ID 获取采集到的音视频流。
getDeviceManager 获取设备管理对象。
getVideoEffectManager 获取视频效果管理对象。
getAudioEffectManager 获取音频效果管理对象。
setVideoMute 设置是否禁用视频流。
setAudioMute 设置是否禁用音频流。
pauseVideo 禁用视频流。
pauseAudio 禁用音频流。
resumeVideo 恢复视频流。
resumeAudio 恢复音频流。
setVideoContentHint 设置视频内容提示,用于提升在不同内容场景下的视频编码质量。
setObserver 设置推流事件回调通知。
destroy 离开⻚面或者退出时,清理 SDK 实例。

TXDeviceManager

设备管理接口,主要用于管理摄像头、⻨克⻛设备,进行设备的获取和切换操作。

API 描述
getDevicesList 获取设备列表。
getCurrentDevice 获取当前流的设备信息。
switchDevice 切换当前正在使用的设备。
switchCamera 切换摄像头设备。
switchMicrophone 切换⻨克⻛设备。

TXAudioEffectManager

音频效果管理接口,主要用于调整音量的操作。

API 描述
setVolume 设置音频流的音量大小。

TXVideoEffectManager

视频效果管理接口,主要用于设置画中画、镜像、滤镜、水印、文本等操作。

API 描述
enableMixing 开启本地视频画面混流功能。
setMixingConfig 设置混流参数。
getMixingConfig 获取最终采用的混流参数。
setLayout 设置视频流的画中画布局参数。
getLayout 获取指定流的画中画布局参数。
setMirror 设置视频流的镜像效果。
setNormalFilter 设置视频流的普通滤镜效果。
setWatermark 设置水印。
setText 设置文本。

TXLivePusher

腾讯云直播推流器,主要用于浏览器 Web 推流。通过浏览器采集用户的画面和声音,通过 WebRTC 将视频流和音频流传输推送到腾讯云服务端。如果需要开启本地混流功能,调用 TXVideoEffectManager 方法 enableMixing() 来启用。请先创建实例对象,用于后续所有操作。

const livePusher = new TXLivePusher();

checkSupport

静态函数,检查浏览器支持性。

static checkSupport(): Promise<TXSupportResult>;

返回:返回 Promise 对象,其中检查结果数据结构请参考 TXSupportResult

setRenderView

设置本地视频画面的预览容器,需提供一个 div 节点,本地采集的视频会在容器里渲染。如果开启了本地混流功能,容器里面会渲染混流处理之后的音视频。

setRenderView(container: string | HTMLDivElement): void;

参数:

字段 类型 说明
container string | HTMLDivElement 容器的 ID 或者 dom 节点。

setVideoQuality

设置推流视频质量,SDK 已经内置了视频质量模板,直接通过预定义的模板来设置推流视频质量。

setVideoQuality(quality: string): void;

参数:

字段 类型 说明
quality string 预定义的视频质量模板名称。

内置的视频质量模板如下所示:

模板名 分辨率(宽 x 高) 帧率(fps) 码率(kbps)
120p 160 x 120 15 200
180p 320 x 180 15 350
240p 320 x 240 15 400
360p 640 x 360 15 800
480p 640 x 480 15 900
720p 1280 x 720 15 1500
1080p 1920 x 1080 15 2000
2K 2560 x 1440 30 4860
4K 3840 x 2160 30 9000

说明:1. 由于设备和浏览器的限制,视频分辨率不一定能够完全匹配,在这种情况下,浏览器会自动调整分辨率使其接近对应的分辨率。2. 如果视频质量参数(分辨率、帧率和码率)不符合您的要求,您可以通过 setProperty() 单独设置自定义的值。3. 此处视频分辨率主要表示本地采集的视频分辨率,推流时分辨率可能会低于采集的分辨率,浏览器会根据网络带宽等情况自动调整推流分辨率。4. 默认使用 720p ,即 setVideoQuality('720p')

setAudioQuality

设置推流音频质量,SDK 已经内置了音频质量模板,直接通过预定义的模板来设置推流音频质量。

setAudioQuality(quality: string): void;

参数:

字段 类型 说明
quality string 预定义的音频质量模板名称。

内置的音频质量模板如下所示:

模板名 采样率 码率(kbps)
standard 48000 40
high 48000 128

说明:1. 如果音频质量参数(采样率和码率)不符合您的要求,您可以通过 setProperty() 单独设置自定义的值。2. 默认使用 standard ,即 setAudioQuality('standard')

setProperty

主要用于调用一些高级功能,比如设置视频的分辨率、帧率和码率,设置音频的采样率和码率等。

setProperty(key: string, value: any): void;

参数:

字段 类型 说明
key string 高级 API 对应的 key。
value * 调用 key 所对应的高级 API 时需要的参数。

目前支持以下高级功能:

Key Value 描述 示例
setVideoResolution { width: number; height:number; } 设置视频的分辨率 setProperty(‘setVideoResolution’, { width: 1920, height: 1080 })
setVideoFPS number 设置视频的帧率 setProperty(‘setVideoFPS’, 25)
setVideoBitrate number 设置视频的码率 setProperty(‘setVideoBitrate’, 2000)
setAudioSampleRate number 设置音频的采样率 setProperty(‘setAudioSampleRate’, 44100)
setAudioBitrate number 设置音频的码率 setProperty(‘setAudioBitrate’, 200)
setConnectRetryCount number 设置连接重试次数,默认值:3;取值范围:0 – 10。当 SDK 与服务器异常断开连接时,SDK 会尝试与服务器重连。 setProperty(‘setConnectRetryCount’, 5)
setConnectRetryDelay number 设置连接重试延迟,默认值:1,单位为秒;取值范围:0 – 10。当 SDK 与服务器异常断开连接时, SDK 会尝试与服务器重连。 setProperty(‘setConnectRetryDelay’, 2)
enableAudioAEC boolean 启用回声消除 setProperty(‘enableAudioAEC’, true)
enableAudioAGC boolean 启用自动增益 setProperty(‘enableAudioAGC’, true)
enableAudioANS boolean 启用噪声抑制 setProperty(‘enableAudioANS’, true)
enableLog boolean 是否在控制台打印日志 setProperty(‘enableLog’, true)

说明:1. 回声消除、自动增益和噪声抑制默认全部启用,最终是否起效依赖于设备和浏览器。这三个功能建议要么全部启用,要么全部禁用。2. 请在采集流和推流之前进行设置。

startCamera

打开摄像头设备。需要用户授权允许浏览器访问摄像头,授权失败或者访问设备失败,返回的 Promise 对象会抛出错误。

startCamera(deviceId?: string): Promise<string>;

参数:

字段 类型 说明
deviceId string 摄像头设备 ID,可选参数,指定打开的摄像头设备。设备 ID 可通过 TXDeviceManager 中的方法 getDevicesList() 获取。在移动设备上,可以通过传入 ‘user’ 和 ‘environment’ 来指定打开前置和后置摄像头。

返回:返回 Promise 对象,成功时返回流 ID 作为流在 SDK 内部的唯一标识,失败时抛出对应的错误信息。说明:1. 该接口不支持在 http 协议下使用,请使用 https 协议部署您的网站。2. 打开摄像头失败时返回的错误信息,可参考 getUserMedia 异常

stopCamera

关闭摄像头设备。

stopCamera(streamId?: string): void;

参数:

字段 类型 说明
streamId string 流 ID,可选参数,指定需要关闭的摄像头流。启用本地混流之后,如果采集了多路摄像头流,可通过流 ID 关闭指定的摄像头流,否则关闭所有的摄像头流。

startMicrophone

打开⻨克⻛设备。需要用户授权允许浏览器访问⻨克⻛,授权失败或者访问设备失败,返回的 Promise 对象会抛出错误。

startMicrophone(deviceId?: string): Promise<string>;

参数:

字段 类型 说明
deviceId string 麦克风设备 ID,可选参数,指定打开的麦克风设备。设备 ID 可通过 TXDeviceManager 中的方法 getDevicesList() 获取。

返回:返回 Promise 对象,成功时返回流 ID 作为流在 SDK 内部的唯一标识,失败时抛出对应的错误信息。说明:1. 该接口不支持在 http 协议下使用,请使用 https 协议部署您的网站。2. 打开麦克风失败时返回的错误信息,可参考 getUserMedia 异常3. 如果出现回声现象,可以将本地用于播放预览的视频元素 video 静音,避免回声现象的出现。

livePusher.videoView.muted = true;

stopMicrophone

关闭⻨克⻛设备。

stopMicrophone(streamId?: string): void;

参数:

字段 类型 说明
streamId string 流 ID,可选参数,指定需要关闭的麦克风流。启用本地混流之后,如果采集了多路麦克风流,可通过流 ID 关闭指定的麦克风流,否则关闭所有的麦克风流。

startScreenCapture

开启屏幕采集。需要用户授权允许浏览器访问屏幕,授权失败或者访问屏幕失败,返回的 Promise 对象会抛出错误。

startScreenCapture(audio?: boolean): Promise<string>;

参数:

字段 类型 说明
audio boolean 是否采集系统声音或者标签⻚声音,true – 采集声音,false – 不采集声音,默认 false。

返回:返回 Promise 对象,成功时返回流 ID 作为流在 SDK 内部的唯一标识,失败时抛出对应的错误信息。说明:1. 该接口不支持在 http 协议下使用,请使用 https 协议部署您的网站。2. 打开屏幕采集失败时返回的错误信息,可参考 getDisplayMedia 异常3. 目前只有 Chrome 74+ 和 Edge 79+ 支持采集声音,在 windows 系统可以采集整个系统的声音,在 Linux 和 Mac 上面只能采集标签⻚的声音。4. 如果设置了 audio 为 true,在浏览器的屏幕分享弹窗中还需要确保弹窗最下面的采集声音选项是勾选状态,否则也不会采集声音。如果设置了 audio 为 false,浏览器的屏幕分享弹窗中不会出现采集声音的选项。

stopScreenCapture

关闭屏幕采集。

stopScreenCapture(streamId?: string): void;

参数:

字段 类型 说明
streamId string 流 ID,可选参数,指定需要关闭的屏幕分享流。启用本地混流之后,如果采集了多路屏幕分享流,可通过流 ID 关闭指定的屏幕分享流,否则关闭所有的屏幕分享流。

startVirtualCamera

开始采集本地媒体文件流。目前支持的文件格式有视频 mp4,音频 mp3 和图片 jpg、png、bmp。

startVirtualCamera(file: File): Promise<string>;

参数:

字段 类型 说明
file File 本地媒体文件,必传。文件格式必须是以下几种:mp4、mp3、jpg、png、bmp。

返回:返回 Promise 对象,成功时返回流 ID 作为流在 SDK 内部的唯一标识,失败时抛出对应的错误信息。说明:1. 本地文件支持视频、音频和图片。视频文件采集视频流和音频流,音频文件只采集音频流,图片文件只采集视频流。2. 必须手动传入 file 对象,需要提前使用 引导用户选择本地文件。

stopVirtualCamera

停止采集本地媒体文件流。

stopVirtualCamera(streamId?: string): void;

参数:

字段 类型 说明
streamId string 流 ID,可选参数,指定需要关闭的媒体文件流。启用本地混流之后,如果采集了多路媒体文件流,可通过流 ID 关闭指定的媒体文件流,否则关闭所有的媒体文件流。

startCustomCapture

使用用户自定义的音视频流。将用户自己采集的流用于本地混流和推送。

startCustomCapture(stream: MediaStream): Promise<string>;

参数:

字段 类型 说明
stream MediaStream 用户自定义的流。

返回:返回 Promise 对象,成功时返回流 ID 作为流在 SDK 内部的唯一标识,失败时抛出对应的错误信息。

stopCustomCapture

关闭自定义的音视频流,仅移除自定义流,不会停止自定义流。

stopCustomCapture(streamId?: string): void;

参数:

字段 类型 说明
streamId string 流 ID,可选参数,指定需要移除的自定义流。启用本地混流之后,如果添加了多路自定义流,可通过流 ID 移除指定的自定义流,否则移除所有的自定义流。

startPush

开始推流,建立 WebRTC 连接,往腾讯云服务器推送音视频流。如果开启了本地混流功能,推送的则是混流处理之后的流数据。

startPush(pushUrl: string): Promise<void>;

参数:

字段 类型 说明
pushUrl string WebRTC 推流地址。

返回:返回 Promise 对象。说明:推流地址的格式参考 拼装推流 URL

stopPush

停止推送音视频流,关闭 WebRTC 连接。

stopPush(): void;

isPushing

查询当前是否正在推流中。

isPushing(): boolean;

返回:布尔值,true – 正在推流,false – 未推流。

getMediaStream

根据流 ID 获取采集到的音视频流。

getMediaStream(streamId: string): MediaStream;

参数:

字段 类型 说明
streamId string 流 ID,由 startCamera()startMicrophone()startScreenCapture() 等接口调用成功之后返回。

返回:采集到的流对象,可以通过传给 video 标签的 srcObject 属性进行播放。

getDeviceManager

获取设备管理对象。通过设备管理,可以进行查询设备列表,切换设备等操作。

getDeviceManager(): TXDeviceManager;

返回:设备管理对象,具体用法请参考 TXDeviceManager

getVideoEffectManager

获取视频效果管理对象。通过视频效果管理,可以进行画中画、镜像、滤镜、水印、文本等操作。

getVideoEffectManager(): TXVideoEffectManager;

返回:视频效果管理对象,具体用法请参考 TXVideoEffectManager

getAudioEffectManager

获取音频效果管理对象。通过音频效果管理,可以进行调整音量的操作。

getAudioEffectManager(): TXAudioEffectManager;

返回:音频效果管理对象,具体用法请参考 TXAudioEffectManager

setVideoMute

设置是否禁用视频流。如果开启了本地混流功能,禁用的是最终生成的视频流。

setVideoMute(mute: boolean): void;

参数:

字段 类型 说明
mute boolean true – 禁用,false – 启用。

说明:1. 当前有视频流时,设置才会生效。2. 禁用之后每一帧都会用黑色像素填充,实际上仍在采集视频流。3. 建议直接使用 pauseVideo()resumeVideo()

setAudioMute

设置是否禁用音频流。如果开启了本地混流功能,禁用的是最终生成的音频流。

setAudioMute(mute: boolean): void;

参数:

字段 类型 说明
mute boolean true – 禁用,false – 启用。

说明:1. 当前有音频流时,设置才会生效。2. 禁用之后是没有声音的,实际上仍在采集音频流。3. 建议直接使用 pauseAudio()resumeAudio()

pauseVideo

禁用视频流。等同于 setVideoMute(true)

pauseVideo(): void;

pauseAudio

禁用音频流。等同于 setAudioMute(true)

pauseAudio(): void;

resumeVideo

恢复视频流。等同于 setVideoMute(false)

resumeVideo(): void;

resumeAudio

恢复音频流。等同于 setAudioMute(false)

resumeAudio(): void;

setVideoContentHint

设置视频内容提示,用于提升在不同内容场景下的视频编码质量。

setVideoContentHint(contentHint: string): void;

参数:

字段 类型 说明
contentHint string 内容提示,参考 MediaStreamTrack.contentHint

内容提示取值范围如下:

取值 说明
默认值,浏览器会自动评估视频内容,并选择合适的提示配置进行编码。
‘motion’ 表现为流畅度优先,用于视频内容为摄像头采集、电影、视频、游戏的情况。
‘detail’ 表现为清晰度优先,用于视频内容包含图片、文本混排的情况。在进行屏幕分享时,建议使用这个提示。
‘text’ 表现为清晰度优先,用于视频内容只包含大量文本的情况。

说明:当前有视频流时,设置才会生效。

setObserver

设置推流事件回调通知。通过设置回调,可以监听推流的一些事件通知,包括推流状态、统计数据、警告和错误信息等。

setObserver(observer: TXLivePusherObserver): void;

参数:

字段 类型 说明
observer TXLivePusherObserver 推流的回调目标对象。

说明:目前部分回调事件通知,比如 onErroronWarningonCaptureFirstAudioFrameonCaptureFirstVideoFrame 也可以通过调用对应接口返回的 Promise 对象来获取。用户可以根据自己的使用习惯,自由选择获取相应事件通知的方式。例如:startCamera().then() 等同于 onCaptureFirstVideoFrame() ,同样可以获取采集视频首帧成功的状态。startCamera().catch() 等同于 onWarning() ,同样可以获取打开摄像头失败的错误。

destroy

离开⻚面或者退出时,清理 SDK 实例,避免可能会产生的内存泄露,调用前先执行 stop 相关的方法。

destroy(): void;



TXDeviceManager

设备管理接口。主要用于管理摄像头、⻨克⻛设备。如果开启了本地混流功能,需要传入对应的流 ID 进行操作。
通过 TXLivePusher 方法 getDeviceManager() 来获取对象实例。

const deviceManager = livePusher.getDeviceManager();



getDevicesList

获取设备列表。

getDevicesList(type?: string): Promise<TXMediaDeviceInfo[]>;

参数:

字段 类型 说明
type string 取值 video 或者 audio,可选参数。不传返回所有设备列表,传 video 返回摄像头设备列表,传 audio 返回⻨克⻛设备列表。

返回:返回 Promise 对象,其中设备信息结构请参考 TXMediaDeviceInfo说明:1. 该接口不支持在 http 协议下使用,请使用 https 协议部署您的网站。2. 浏览器出于安全的考虑,在用户未授权摄像头或⻨克⻛访问权限前,deviceId 及 deviceName 字段可能都是空的。因此建议在用户授权访问后,再调用该接口获取设备详情。

getCurrentDevice

获取当前流的设备信息。如果启用了本地混流,必须指定流 ID。

getCurrentDevice(type: string, streamId?: string): Promise<TXMediaDeviceInfo>;

参数:

字段 类型 说明
type string 设备类型:video – 摄像头设备,audio – ⻨克⻛设备。
streamId string 流 ID,指定要获取设备信息的流,启用本地混流后必须传,对应的流必须是摄像头或者麦克风设备采集的流。

返回:返回 Promise 对象,其中设备信息结构请参考 TXMediaDeviceInfo

switchDevice

切换当前正在使用的设备。如果启用了本地混流,必须指定流 ID。

switchDevice(type: string, deviceId: string, streamId?: string): Promise<void>;

参数:

字段 类型 说明
type string 设备类型:video – 摄像头设备,audio – ⻨克⻛设备。
deviceId string 设备 ID,可以通过调用 getDevicesList() 获取设备 ID。
streamId string 流 ID,指定要切换设备的流,启用本地混流后必须传,对应的流必须是摄像头或者麦克风设备采集的流。

返回:返回 Promise 对象。说明:1. 该方法仅适用于从摄像头和⻨克⻛采集音视频时调用,其他采集方式采集的流不支持调用该接口。2. 如果还没开始推流,则只更新本地流;如果已经开始推流,同步更新推到服务器的音视频流。3. 切换流的设备时,对应流的 ID 不会发生变化。4. 指定流 ID 时,对应流的类型必须和 type 匹配,比如 type 是 video,对应的流必须是摄像头采集的流。5. 建议直接使用 switchCamera()switchMicrophone()

switchCamera

切换摄像头设备。等同于 switchDevice('video', deviceId, streamId)

switchCamera(deviceId: string, streamId?: string): Promise<void>;

参数:

字段 类型 说明
deviceId string 设备 ID,可以通过调用 getDevicesList() 获取设备 ID。在移动设备上,可以通过传入 ‘user’ 和 ‘environment’ 来切换前置和后置摄像头。
streamId string 流 ID,指定要切换摄像头设备的流,启用本地混流后必须传,对应的流必须是摄像头设备采集的流。

返回:返回 Promise 对象。

switchMicrophone

切换⻨克⻛设备。等同于 switchDevice('audio', deviceId, streamId)

switchMicrophone(deviceId: string, streamId?: string): Promise<void>;

参数:

字段 类型 说明
deviceId string 设备 ID ,可以通过调用 getDevicesList() 获取设备 ID 。
streamId string 流 ID,指定要切换麦克风设备的流,启用本地混流后必须传,对应的流必须是麦克风设备采集的流。

返回:返回 Promise 对象。

TXAudioEffectManager

音频效果管理接口。主要用于调整音量的操作。如果开启了本地混流功能,需要传入对应的流 ID 进行操作。通过 TXLivePusher 方法 getAudioEffectManager() 来获取对象实例。

const audioEffectManager = livePusher.getAudioEffectManager();

setVolume

设置音频流的音量大小。如果启用了本地混流,必须指定流 ID。

setVolume(volume: number, streamId?: string): void;

参数:

字段 类型 说明
volume number 音量大小,取值范围为 0 – 100,默认值是 100。
streamId string 流 ID,指定要设置的流,启用本地混流后必须传。

说明:如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 设置超过 100,但超过 100 的 volume 会有爆音的⻛险,请谨慎操作。

TXVideoEffectManager

视频效果管理接口。主要用于设置画中画、镜像、滤镜、水印、文本等操作。使用前需要先调用接口 enableMixing() 启用功能。通过 TXLivePusher 方法 getVideoEffectManager() 来获取对象实例。

const videoEffectManager = livePusher.getVideoEffectManager();

enableMixing

开启本地视频画面混流功能。

enableMixing(enabled: boolean): void;

参数:

字段 类型 说明
enabled boolean 是否开启本地混流功能,默认关闭。

说明:1. 启用本地混流功能之前,预览和推送的流都是原始采集的流,启用之后,预览和推送的流都是经过浏览器本地混流处理之后的流,会有一定的浏览器性能开销。2. 在调用 TXVideoEffectManager 其他方法前必须先调用该接口启用本地混流功能。3. 没启用本地混流功能时,只能采集一路视频流和一路音频流。4. 启用本地混流功能成功后,可以采集多路流,比如执行两个 startCamera 采集两个不同的摄像头画面,或者先执行 startCamera 采集摄像头画面,再执行 startScreenCapture 采集屏幕画面。采集的多路流的画面和声音都会出现在最终的混流输出结果中。

setMixingConfig

设置混流参数。不调用该接口进行设置时,默认混流参数直接使用 TXLivePusher 中方法 setVideoQuality()setProperty() 设置之后的结果。

setMixingConfig(config: TXMixingConfig): void;

参数:

字段 类型 说明
config TXMixingConfig 混流参数配置。

getMixingConfig

获取最终采用的混流参数,优先使用 setMixingConfig() 设置的结果,其次使用 TXLivePusher 中方法 setVideoQuality()setProperty() 设置之后的结果。

getMixingConfig(): TXMixingConfig;

返回:混流参数配置,数据结构请参考 TXMixingConfig

setLayout

设置视频流的画中画布局参数。

setLayout(config: TXLayoutConfig | TXLayoutConfig[]): void;

参数:

字段 类型 说明
config TXLayoutConfig | TXLayoutConfig[] 画中画布局配置,支持传对象或者对象数组。

说明:1. 开启本地混流之后,所有采集的流都会自动添加到最终输出的视频流当中,默认的布局参数是保证视频流画面紧贴左上角原点出现。2. 配置参数可以传对象数组,批量设置多个流的画中画布局效果,也可以只传对象单独设置指定的流。3. 如果不想显示采集流的画面,只想保留声音,可以将布局宽度和高度设置为 0 。

getLayout

获取指定流的画中画布局参数。

getLayout(streamId: string): TXLayoutConfig | null;

参数:

字段 类型 说明
streamId string 流 ID,指定要获取画中画布局参数的流。

返回:返回指定流的画中画布局参数,数据结构请参考 TXLayoutConfig 。如果流不存在,返回 null 。

setMirror

设置视频流的镜像效果,包括左右镜像和上下镜像。

setMirror(config: TXMirrorConfig | TXMirrorConfig[]): void;

参数:

字段 类型 说明
config TXMirrorConfig | TXMirrorConfig[] 镜像效果配置,支持传对象或者对象数组。

说明:配置参数可以传对象数组,批量设置多个流的镜像效果,也可以只传对象单独设置指定的流。

setNormalFilter

设置视频流的普通滤镜效果,包括对比度、亮度和饱和度。

setNormalFilter(config: TXNormalFilterConfig | TXNormalFilterConfig[]): void;

参数:

字段 类型 说明
config TXNormalFilterConfig | TXNormalFilterConfig[] 普通滤镜效果配置,支持传对象或者对象数组 。

说明:配置参数可以传对象数组,批量设置多个流的普通滤镜效果,也可以只传对象单独设置指定的流。

setWatermark

设置水印,支持同时设置多个水印。

setWatermark(config: TXWatermarkConfig | TXWatermarkConfig[] | null): void;

参数:

字段 类型 说明
config TXWatermarkConfig | TXWatermarkConfig[] | null 水印配置参数,支持传对象、对象数组或者 null 。

说明:1. 配置参数可以传对象数组,同时设置多个水印,也可以只传对象单独设置一个水印。2. 配置参数传 null 或者空数组表示删除已有水印。

setText

设置文本,支持同时设置多个文本。

setText(config: TXTextConfig | TXTextConfig[] | null): void;

参数:

字段 类型 说明
config TXTextConfig | TXTextConfig[] | null 文本配置参数,支持传对象、对象数组或者 null 。

说明:1. 配置参数可以传对象数组,同时设置多个文本,也可以只传对象单独设置一个文本。2. 配置参数传 null 或者空数组表示删除已有文本。

类型定义

TXSupportResult

浏览器支持性检查结果。数据结构:

字段 类型 说明
isWebRTCSupported boolean 是否支持 WebRTC
isH264EncodeSupported boolean 是否支持 H264 编码
isH264DecodeSupported boolean 是否支持 H264 解码
isMediaDevicesSupported boolean 是否支持获取媒体设备及媒体流
isScreenCaptureSupported boolean 是否支持屏幕采集
isMediaFileSupported boolean 是否支持获取本地媒体文件流

TXLivePusherObserver

推流的回调通知,回调包括推流器状态,统计信息,警告以及错误信息。数据结构:

字段 类型 说明
onError onError 推流错误通知。
onWarning onWarning 推流警告通知。
onCaptureFirstAudioFrame onCaptureFirstAudioFrame 首帧音频采集完成的回调通知。
onCaptureFirstVideoFrame onCaptureFirstVideoFrame 首帧视频采集完成的回调通知。
onPushStatusUpdate onPushStatusUpdate 推流连接状态回调通知。
onStatisticsUpdate onStatisticsUpdate 推流统计数据回调通知。

onError

推流错误通知,推流出现错误时,会回调该通知。

onError(code: number, message: string, extraInfo: object): void;

参数:

字段 类型 说明
code number 错误码。
message string 错误信息。
extraInfo object 扩展信息。

错误码参考如下:

枚举值 数值 描述
TXLIVE_ERROR_WEBRTC_FAILED -1 WebRTC 接口调用失败。
TXLIVE_ERROR_REQUEST_FAILED -2 请求服务器推流接口返回报错。

onWarning

推流警告通知。

onWarning(code: number, message: string, extraInfo: object): void;

参数:

字段 类型 说明
code number 错误码。
message string 错误信息。
extraInfo object 扩展信息。

错误码参考如下:

枚举值 数值 描述
TXLIVE_WARNING_CAMERA_START_FAILED -1001 打开摄像头失败。
TXLIVE_WARNING_MICROPHONE_START_FAILED -1002 打开麦克风失败。
TXLIVE_WARNING_SCREEN_CAPTURE_START_FAILED -1003 打开屏幕分享失败。
TXLIVE_WARNING_VIRTUAL_CAMERA_START_FAILED -1004 打开本地媒体文件失败。
TXLIVE_WARNING_CAMERA_INTERRUPTED -1005 摄像头被中断(设备被拔出或者权限被用户取消)。
TXLIVE_WARNING_MICROPHONE_INTERRUPTED -1006 麦克风被中断(设备被拔出或者权限被用户取消)。
TXLIVE_WARNING_SCREEN_CAPTURE_INTERRUPTED -1007 屏幕分享被中断( Chrome 浏览器点击自带的停止共享按钮)。

说明:1. 打开摄像头、⻨克⻛、屏幕分享失败时返回的错误信息,可参考 getUserMedia 异常getDisplayMedia 异常2. 摄像头、麦克风、屏幕分享异常中断时返回的扩展信息,会包含对应流的流 ID。

onCaptureFirstAudioFrame

首帧音频采集完成的回调通知。如果启用本地混流功能,则在最终混流生成音频流时进行回调通知。

onCaptureFirstAudioFrame(): void;

onCaptureFirstVideoFrame

首帧视频采集完成的回调通知。如果启用本地混流功能,则在最终混流生成视频流时进行回调通知。

onCaptureFirstVideoFrame(): void;

onPushStatusUpdate

推流连接状态回调通知。

onPushStatusUpdate(status: number, message: string, extraInfo: object): void;

参数:

字段 类型 说明
status number 连接状态码。
message string 连接状态信息。
extraInfo object 扩展信息。

连接状态码参考如下:

枚举值 数值 描述
TXLIVE_PUSH_STATUS_DISCONNECTED 0 与服务器断开连接
TXLIVE_PUSH_STATUS_CONNECTING 1 正在连接服务器
TXLIVE_PUSH_STATUS_CONNECTED 2 连接服务器成功
TXLIVE_PUSH_STATUS_RECONNECTING 3 重连服务器中

onStatisticsUpdate

推流统计数据回调,主要是 WebRTC 相关的统计数据。

onStatisticsUpdate(statistics: object): void;

参数:

字段 类型 说明
statistics object 推流统计数据。
statistics.timestamp number 数据采样的时间,自 1970年1月1日(UTC)起经过的毫秒数。
statistics.video object 视频流相关的数据。
statistics.video.bitrate number 视频码率,单位:bit/s 。
statistics.video.framesPerSecond number 视频帧率。
statistics.video.frameWidth number 视频宽度。
statistics.video.frameHeight number 视频高度。
statistics.video.framesEncoded number 编码帧数。
statistics.video.framesSent number 发送帧数。
statistics.video.packetsSent number 发送包数。
statistics.video.nackCount number NACK(Negative ACKnowledgement)数。
statistics.video.firCount number FIR(Full Intra Request),关键帧重传请求数。
statistics.video.pliCount number PLI(Picture Loss Indication),视频帧丢失重传数。
statistics.video.frameEncodeAvgTime number 平均编码时间,单位:ms 。
statistics.video.packetSendDelay number 数据包发送之前本地缓存的平均时间,单位:ms 。
statistics.audio object 音频流相关的数据。
statistics.audio.bitrate number 音频码率,单位:bit/s 。
statistics.audio.packetsSent number 发送包数。

说明:1. 直播推流过程中,SDK 会以一秒一次的频率统计 WebRTC 相关的数据,然后调用该回调接口返回数据。2. 如果返回的字段数据是空(undefined)的话,说明当前浏览器获取不到对应的数据,目前只有 Chrome 浏览器可以拿到全部的数据。

TXMediaDeviceInfo

设备信息。数据结构:

字段 类型 说明
type string 设备类型,video – 摄像头,audio – 麦克风。
deviceId string 设备 ID。
deviceName string 设备名称。

TXMixingConfig

混流参数配置。数据结构:

字段 类型 说明
videoWidth number 最终混流后的视频宽度。
videoHeight number 最终混流后的视频高度。
videoFramerate number 最终混流后的视频帧率。
backgroundColor number 混合后画面的底色颜色,格式为十六进制数字,默认黑色,即 0x000000 。

TXLayoutConfig

画中画布局参数。数据结构:

字段 类型 说明
streamId string 流 ID,指定要设置的流。
x number 布局 x 坐标。
y number 布局 y 坐标。
width number 布局宽度。
height number 布局高度。
zOrder number 布局层级。

说明:1. 以左上⻆为原点 (0, 0),元素的坐标属性描述元素中心点。例如一个分辨率为 100*100 的视频流紧贴原点完整出现在最终生成视频流中,那么它的 x 、 y 坐标都是50。2. zOrder 值越大,视频流会出现在越上方,覆盖其他视频流画面。

TXMirrorConfig

镜像参数。数据结构:

字段 类型 说明
streamId string 流 ID,指定要设置的流。
mirrorType number 镜像类型:0 – 无镜像效果,1 – 左右镜像,2 – 上下镜像,3 – 左右+上下镜像。

TXNormalFilterConfig

普通滤镜参数。数据结构:

字段 类型 说明
streamId string 流 ID,指定要设置的流。
contrast number 对比度,取值范围 [-100, 100],0 表示不处理。
brightness number 亮度,取值范围 [-100, 100],0 表示不处理。
saturation number 饱和度,取值范围 [-100, 100],0 表示不处理。

TXWatermarkConfig

水印配置参数。数据结构:

字段 类型 说明
image HTMLImageElement 水印图片对象。
x number 水印 x 坐标。
y number 水印 y 坐标。
width number 水印宽度。
height number 水印高度。
zOrder number 水印层级。

说明:1. 以左上⻆为原点 (0, 0),元素的坐标属性描述元素中心点。例如一个分辨率为 100*100 的水印图片紧贴原点完整出现在最终生成视频流中,那么它的 x 、 y 坐标都是50。2. zOrder 值越大,水印图片会出现在越上方,覆盖其他视频流画面。

TXTextConfig

文本配置参数。数据结构:

字段 类型 说明
text string 文本内容,不能为空字符串。
style object 文本样式,可以参考对应的 css 样式设置。
style.font string 字体名。
style.font_size number 字体大小。
style.font_color string 字体颜色,十六进制表示,例如 #000000 。
style.font_alpha number 字体透明度,范围 [0, 100],默认 100(不透明)。
style.bold number 字体加粗,0 – 不加粗,1 – 加粗,默认 0 。
style.italic number 字体倾斜,0 – 正常,1 – 斜体,默认 0 。
style.shadow_color string 文字阴影颜色,十六进制表示,例如 #000000 。
style.shadow_alpha number 文字阴影透明度,范围 [0, 100],shadow_color 存在时有效,默认 100(不透明)。
style.stroke_color string 文字描边颜色,十六进制表示,例如 #000000 。
style.stroke_thickness number 文字描边粗细,默认 0,即没有描边。
style.background_color string 背景颜色,十六进制表示,例如 #000000 。
style.background_alpha number 背景透明度,范围 [0, 100],background_color 存在时有效,默认 100(不透明)。
x number 文本 x 坐标。
y number 文本 y 坐标。
zOrder number 文本层级。

说明:1. 以左上⻆为原点 (0, 0),元素的坐标属性描述元素中心点。假设文本的最终宽度是 100px,高度是 50px,如果文本要紧贴原点出现在最终生成视频流中的话,它的 x 坐标是 50, y 坐标是 25。2. zOrder 值越大,文本会出现在越上方,覆盖其他视频流画面。

云直播官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/143118.html

(0)
上一篇 2023年12月9日 上午1:31
下一篇 2023年12月9日 上午1:31
详情页2

相关推荐

  • 腾讯云内容分发网络CDN访问 URL 重写配置

    配置场景 若您需要将实际访问的 URL 修改为与源站匹配的 URL,腾讯云 CDN 为您提供了访问 URL 重写配置功能。您可通过自定义访问 URL 重写配置,将 URL 302 重定向到目标 URL。 配置指南 查看配置 登录 CDN 控制台,在左侧菜单栏选择域名管理,单击域名操作列的管理,进入域名配置页面,切换 Tab 至缓存配置,即可找到访问 URL …

    2023年12月9日
  • 腾讯云CVM服务器运维问题

    用云服务器托管一个小型网站,有哪些日常运维建议? 维护网站应用时,您可以参考以下运维建议:云硬盘数据日常备份。详情请参见 创建快照。建议您使用 SSL 证书服务,实现网站的身份验证和数据加密传输。详情请参见 SSL证书。安装恶意软件查杀插件、防 DDoS 攻击服务或购买主机安全服务。监控网站流入和流出流量情况,识别出异常流量区间。通过添加拒绝访问的安全组规则…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云负载均衡授权RAM用户(子账号)使用CLB访问日志-云淘科技

    RAM用户(子账号)使用传统型负载均衡CLB访问日志功能前,需要阿里云账号(主账号)对其进行授权。 前提条件 阿里云账号(主账号)已开通日志访问功能。具体操作,请参见开通访问日志功能。 创建授权策略 本文为您介绍通过脚本编辑模式创建自定义权限策略。如需通过可视化编辑模式创建自定义权限策略,请参见通过可视化编辑模式创建自定义权限策略。 使用阿里云账号登录RAM…

    阿里云负载均衡 2023年12月10日
  • 腾讯云TDSQL-C MySQL版备份与回档概述

    数据是企业的核心资产。随着业务发展,企业数据呈现出规模化、爆炸式的增长,业务应用要求实时、在线的快速处理,对于数据库运维人员来说,保护企业核心数据的任务越来越有挑战性,例如数据误删除、相关系统漏洞和病毒、硬件故障,甚至自然灾害都可能造成数据的丢失,因此,备份和回档是数据库非常重要的功能。 备份概述 TDSQL-C MySQL 版支持数据备份和 binlog …

    2023年12月9日
  • 腾讯云云直播直播鉴黄

    开通直播鉴黄,首先要开通直播截图功能,您可以通过 云直播控制台 或直播截图鉴黄 API 来实现,本文主要介绍如何通过直播截图鉴黄 API 来实现直播鉴黄功能。 注意事项 当 COS Bucket 的访问权限为公有读时,并且 Bucket 中存在涉黄涉政及其他违禁的截图内容,建议前往对应的 COS Bucket 中把对应的图片进行删除处理。避免 COS Buc…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。