v2txlivepusher

最近更新时间:2026-05-06 12:10:52

我的收藏
Copyright (c) 2021 Tencent. All rights reserved.

Module: V2TXLivePusher @ TXLiteAVSDK

Function: 腾讯云直播推流器


功能

腾讯云直播推流器

介绍

主要负责将本地的音频和视频画面进行编码,并推送到指定的推流地址,支持任意的推流服务端。
推流器包含如下能力:
自定义的视频采集,让您可以根据项目需要定制自己的音视频数据源。
美颜、滤镜、贴纸,包含多套美颜磨皮算法(自然&光滑)和多款色彩空间滤镜(支持自定义滤镜)。
Qos 流量控制技术,具备上行网络自适应能力,可以根据主播端网络的具体情况实时调节音视频数据量。
脸型调整、动效挂件,支持基于优图 AI 人脸识别技术的大眼、瘦脸、隆鼻等脸型微调以及动效挂件效果,只需要购买优图 License 就可以轻松实现丰富的直播效果。

v2txlivepusher

V2TXLivePusher

函数列表
描述
设置推流器回调
设置本地摄像头预览 View
设置本地摄像头预览镜像
设置视频编码镜像
设置本地摄像头预览画面的旋转角度
设置本地摄像头预览画面的填充模式
打开本地摄像头
关闭本地摄像头
打开麦克风
关闭麦克风
开启图片推流
关闭图片推流
开启屏幕采集
关闭屏幕采集
暂停推流器的音频流
恢复推流器的音频流
暂停推流器的视频流
恢复推流器的视频流
开始音视频数据推流
停止推送音视频数据
当前推流器是否正在推流中
设置推流音频质量
设置推流视频编码参数
获取音效管理对象
获取设备管理对象
截取推流过程中的本地画面
设置推流器水印。默认情况下,水印不开启。
启用采集音量大小提示
开启/关闭自定义视频采集
开启/关闭自定义音频采集
在自定义视频采集模式下,将采集的视频数据发送到SDK
在自定义音频采集模式下,将采集的音频数据发送到SDK
发送 SEI 消息
显示仪表盘。
调用 V2TXLivePusher 的高级 API 接口。
调用 V2TXLivePusher 的高级 API 接口。
设置云端的混流转码参数
开始录制音视频流
停止录制音视频流

setObserver

setObserver
setObserver
(observer: V2TXLivePusherObserver)

设置推流器回调

通过设置回调,可以监听 V2TXLivePusher 推流器的一些回调事件,
包括推流器状态、音量回调、统计数据、警告和错误信息等。
参数
描述
observer
推流器的回调目标对象,更多信息请查看 V2TXLivePusherObserver

setRenderView

setRenderView
setRenderView
(view: string)

设置本地摄像头预览 View

本地摄像头采集到的画面,经过美颜、脸型调整、滤镜等多种效果叠加之后,最终会显示到传入的 View 上。
参数
描述
view
本地摄像头预览 View。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK:成功。

setRenderMirror

setRenderMirror
setRenderMirror
(mirrorType: V2TXLiveMirrorType)

设置本地摄像头预览镜像

本地摄像头分为前置摄像头和后置摄像头,系统默认情况下,是前置摄像头镜像,后置摄像头不镜像,这里可以修改前置后置摄像头的默认镜像类型。
参数
描述
mirrorType
摄像头镜像类型 V2TXLiveMirrorType
V2TXLiveMirrorTypeAuto 【默认值】: 默认镜像类型. 在这种情况下,前置摄像头的画面是镜像的,后置摄像头的画面不是镜像的。
V2TXLiveMirrorTypeEnable: 前置摄像头 和 后置摄像头,都切换为镜像模式。
V2TXLiveMirrorTypeDisable: 前置摄像头 和 后置摄像头,都切换为非镜像模式。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

setEncoderMirror

setEncoderMirror
setEncoderMirror
(mirror: boolean)

设置视频编码镜像

参数
描述
mirror
是否镜像。
false【默认值】: 播放端看到的是非镜像画面。
true: 播放端看到的是镜像画面。
注意
编码镜像只影响观众端看到的视频效果。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

setRenderRotation

setRenderRotation
setRenderRotation
(rotation: V2TXLiveRotation)

设置本地摄像头预览画面的旋转角度

参数
描述
rotation
预览画面的旋转角度 V2TXLiveRotation
V2TXLiveRotation0【默认值】: 0度, 不旋转。
V2TXLiveRotation90: 顺时针旋转90度。
V2TXLiveRotation180: 顺时针旋转180度。
V2TXLiveRotation270: 顺时针旋转270度。
注意
只旋转本地预览画面,不影响推流出去的画面。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

setRenderFillMode

setRenderFillMode
setRenderFillMode
(mode: V2TXLiveFillMode)

设置本地摄像头预览画面的填充模式

参数
描述
mode
画面填充模式 V2TXLiveFillMode
V2TXLiveFillModeFill 【默认值】: 图像铺满屏幕,不留黑边,如果图像宽高比不同于屏幕宽高比,部分画面内容会被裁剪掉。
V2TXLiveFillModeFit: 图像适应屏幕,保持画面完整,但如果图像宽高比不同于屏幕宽高比,会有黑边的存在。
V2TXLiveFillModeScaleFill: 图像拉伸铺满,因此长度和宽度可能不会按比例变化。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

startCamera

startCamera
startCamera
(frontCamera: boolean)

打开本地摄像头

参数
描述
frontCamera
指定摄像头方向是否为前置。
true 【默认值】: 切换到前置摄像头。
false: 切换到后置摄像头。
注意
startVirtualCamera,startCamera,startScreenCapture,同一 Pusher 实例下,仅有一个采集源可以上行,不同采集源之间切换,请先关闭前一采集源,再开启后一采集源,保证同一采集源的开启和关闭是成对调用的。例如:采集源从Camera切换到VirtualCamera,调用顺序是 startCamera -> stopCamera -> startVirtualCamera。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

stopCamera

stopCamera
stopCamera
()

关闭本地摄像头

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

startMicrophone

startMicrophone
startMicrophone
()

打开麦克风

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

stopMicrophone

stopMicrophone
stopMicrophone
()

关闭麦克风

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

startVirtualCamera

startVirtualCamera
startVirtualCamera
(pixelMap: image.PixelMap|null)

开启图片推流

参数
描述
pixelMap
图片。
注意
startVirtualCamera,startCamera,startScreenCapture,同一 Pusher 实例下,仅有一个采集源可以上行,不同采集源之间切换,请先关闭前一采集源,再开启后一采集源,保证同一采集源的开启和关闭是成对调用的。例如:采集源从Camera切换到VirtualCamera,调用顺序是 startCamera -> stopCamera -> startVirtualCamera。

stopVirtualCamera

stopVirtualCamera
stopVirtualCamera
()

关闭图片推流

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

startScreenCapture

startScreenCapture
startScreenCapture
()

开启屏幕采集

注意
startVirtualCamera,startCamera,startScreenCapture,同一 Pusher 实例下,仅有一个采集源可以上行,不同采集源之间切换,请先关闭前一采集源,再开启后一采集源,保证同一采集源的开启和关闭是成对调用的。例如:采集源从Camera切换到ScreenCapture,调用顺序是 startCamera -> stopCamera -> startScreenCapture。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

stopScreenCapture

stopScreenCapture
stopScreenCapture
()

关闭屏幕采集

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

pauseAudio

pauseAudio
pauseAudio
()

暂停推流器的音频流

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

resumeAudio

resumeAudio
resumeAudio
()

恢复推流器的音频流

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

pauseVideo

pauseVideo
pauseVideo
()

暂停推流器的视频流

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

resumeVideo

resumeVideo
resumeVideo
()

恢复推流器的视频流

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

startPush

startPush
startPush
(url: string)

开始音视频数据推流

参数
描述
url
推流的目标地址,支持任意推流服务端。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 操作成功,开始连接推流目标地址。
V2TXLIVE_ERROR_INVALID_PARAMETER: 操作失败,url 不合法。
V2TXLIVE_ERROR_INVALID_LICENSE: 操作失败,license 不合法,鉴权失败。
V2TXLIVE_ERROR_REFUSED: 操作失败,RTC 不支持同一设备上同时推拉同一个 StreamId。

stopPush

stopPush
stopPush
()

停止推送音视频数据

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

isPushing

isPushing
isPushing
()

当前推流器是否正在推流中

返回值说明:

是否正在推流。
1: 正在推流中。
0: 已经停止推流。

setAudioQuality

setAudioQuality
setAudioQuality
(quality: V2TXLiveAudioQuality)

设置推流音频质量

参数
描述
quality
音频质量 V2TXLiveAudioQuality
V2TXLiveAudioQualityDefault 【默认值】: 通用。
V2TXLiveAudioQualitySpeech: 语音。
V2TXLiveAudioQualityMusic: 音乐。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_REFUSED: 推流过程中,不允许调整音质。

setVideoQuality

setVideoQuality
setVideoQuality

设置推流视频编码参数

参数
描述
param
视频编码参数 V2TXLiveVideoEncoderParam

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

getAudioEffectManager

getAudioEffectManager
getAudioEffectManager
()

获取音效管理对象


通过音效管理,您可以使用以下功能:
调整麦克风收集的人声音量。
设置混响和变声效果。
开启耳返,设置耳返音量。
添加背景音乐,调整背景音乐的播放效果。


getDeviceManager

getDeviceManager
getDeviceManager
()

获取设备管理对象


通过设备管理,您可以使用以下功能:
切换前后摄像头。
设置自动聚焦。
设置摄像头缩放倍数。
打开或关闭闪光灯。
切换耳机或者扬声器。
修改音量类型(媒体音量或者通话音量)。

参考 TXDeviceManager

snapshot

snapshot
snapshot
()

截取推流过程中的本地画面

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_REFUSED: 已经停止推流,不允许调用截图操作。

setWatermark

setWatermark
setWatermark
(watermarkPath: string

x: number

y: number

scale: number)

设置推流器水印

默认情况下,水印不开启。

水印的位置是通过 x, y, scale 来指定的。
x:水印的坐标,取值范围为0 - 1的浮点数。
y:水印的坐标,取值范围为0 - 1的浮点数。
scale:水印的大小比例,取值范围为0 - 1的浮点数。
参数
描述
scale
水印显示的宽度占画面宽度比例(水印按该参数等比例缩放显示)。
watermarkPath
水印图片文件路径,为 nullptr 则等同于关闭水印。
x
水印显示的左上角 x 轴偏移。
y
水印显示的左上角 y 轴偏移。
注意
watermarkPath
1、在 iOS/Mac 坏境下,如果图片存放在 .xcassets 中,请直接传入文件名:
self.pusher->setWatermark(“imageName”, 0.1, 0.1, 0.2)。
2、在 Android 坏境,如果图片存放在 assets 目录下,请直接传入文件名或者路径名:
self.pusher->setWatermark(“imageName.png”, 0.1, 0.1, 0.2)。
其它没有列举到的情况,按照各平台的方式获取文件路径并传入即可。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

enableVolumeEvaluation

enableVolumeEvaluation
enableVolumeEvaluation
(intervalMs: number)

启用采集音量大小提示

开启后可以在 onMicrophoneVolumeUpdate 回调中获取到 SDK 对音量大小值的评估。
参数
描述
intervalMs
决定了 onMicrophoneVolumeUpdate 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms;【默认值】:0,不开启。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

enableCustomVideoCapture

enableCustomVideoCapture
enableCustomVideoCapture
(enable: boolean)

开启/关闭自定义视频采集


在自定义视频采集模式下,SDK 不再从摄像头采集图像,只保留编码和发送能力。
参数
描述
enable
true:开启自定义采集;false:关闭自定义采集。【默认值】:false。
注意
需要在 startPush 之前调用,才会生效。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

enableCustomAudioCapture

enableCustomAudioCapture
enableCustomAudioCapture
(enable: boolean)

开启/关闭自定义音频采集


@brief 开启/关闭自定义音频采集。
在自定义音频采集模式下,SDK 不再从麦克风采集声音,只保留编码和发送能力。
参数
描述
enable
true: 开启自定义采集; false: 关闭自定义采集。【默认值】: false。
注意
需要在 startPush 前调用才会生效。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

sendCustomVideoFrame

sendCustomVideoFrame
sendCustomVideoFrame
(videoFrame: V2TXLiveVideoFrame)

在自定义视频采集模式下,将采集的视频数据发送到 SDK


在自定义视频采集模式下,SDK 不再采集摄像头数据,仅保留编码和发送功能。
参数
描述
videoFrame
向 SDK 发送的 视频帧数据 V2TXLiveVideoFrame
注意
需要在 startPush 之前调用 enableCustomVideoCapture 开启自定义采集。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_INVALID_PARAMETER: 发送失败,视频帧数据不合法。

sendCustomAudioFrame

sendCustomAudioFrame
sendCustomAudioFrame
(audioFrame: V2TXLiveAudioFrame)

在自定义音频采集模式下,将采集的音频数据发送到 SDK


@info 在自定义音频采集模式下,将采集的音频数据发送到SDK,SDK不再采集麦克风数据,仅保留编码和发送功能。

@param audioFrame 向 SDK 发送的 音频帧数据 V2TXLiveAudioFrame
@return 返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_INVALID_PARAMETER: 发送失败,音频帧数据不合法。
@note 需要在 startPush 之前调用 enableCustomAudioCapture 开启自定义采集。

sendSeiMessage

sendSeiMessage
sendSeiMessage
(payloadType: number

data: ArrayBuffer)

发送 SEI 消息


播放端 V2TXLivePlayer 通过 V2TXLivePlayerObserver 中的 onReceiveSeiMessage 回调来接收该消息。
参数
描述
data
待发送的数据。
payloadType
数据类型,支持 5、242。推荐填:242。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

showDebugView

showDebugView
showDebugView
(isShow: boolean)

显示仪表盘

参数
描述
isShow
是否显示。【默认值】:false。

setProperty

setProperty
setProperty
(key: string

value: Object)

调用 V2TXLivePusher 的高级 API 接口

参数
描述
key
高级 API 对应的 key, 详情请参考 V2TXLiveProperty 定义。
value
调用 key 所对应的高级 API 时,需要的参数。
注意
该接口用于调用一些高级功能。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_INVALID_PARAMETER: 操作失败,key 不允许为空。

getProperty

getProperty
getProperty
(key: string)

调用 V2TXLivePusher 的高级 API 接口

参数
描述
key
高级 API 对应的 key

返回值说明:

返回值

setMixTranscodingConfig

setMixTranscodingConfig
setMixTranscodingConfig

设置云端的混流转码参数


如果您在实时音视频 控制台 中的功能配置页开启了“启用旁路推流”功能,
房间里的每一路画面都会有一个默认的直播 CDN 地址


一个直播间中可能有不止一位主播,而且每个主播都有自己的画面和声音,但对于 CDN 观众来说,他们只需要一路直播流,
所以您需要将多路音视频流混成一路标准的直播流,这就需要混流转码。


当您调用 setMixTranscodingConfig() 接口时,SDK 会向腾讯云的转码服务器发送一条指令,目的是将房间里的多路音视频流混合为一路,
您可以通过 mixStreams 参数来调整每一路画面的位置,以及是否只混合声音,也可以通过 videoWidth、videoHeight、videoBitrate 等参数控制混合音视频流的编码参数。



【画面1】=> 解码 ====> \\
\\
【画面2】=> 解码 => 画面混合 => 编码 => 【混合后的画面】
/
【画面3】=> 解码 ====> /

【声音1】=> 解码 ====> \\
\\
【声音2】=> 解码 => 声音混合 => 编码 => 【混合后的声音】
/
【声音3】=> 解码 ====> /



参考文档:云端混流转码
参数
描述
config
请参考 V2TXLiveDef.java 中关于 V2TXLiveTranscodingConfig 的介绍。如果传入 null 则取消云端混流转码。
注意
关于云端混流的注意事项:
仅支持 RTC 模式混流。
云端转码会引入一定的 CDN 观看延时,大概会增加1 - 2秒。
调用该函数的用户,会将连麦中的多路画面混合到自己当前这路画面或者 config 中指定的 streamId 上。
请注意,若您还在房间中且不再需要混流,请务必传入 null 进行取消,因为当您发起混流后,云端混流模块就会开始工作,不及时取消混流可能会引起不必要的计费损失。
请放心,您退房时会自动取消混流状态。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_REFUSED: 未开启推流时,不允许设置混流转码参数。

startLocalRecording

startLocalRecording
startLocalRecording

开始录制音视频流

注意
推流开启后才能开始录制,非推流状态下开启录制无效。
录制过程中不要动态切换分辨率和软/硬剪辑,生成的视频极有可能出现异常。

返回值说明:

返回值 V2TXLiveCode
V2TXLIVE_OK : 成功。
V2TXLIVE_ERROR_INVALID_PARAMETER : 参数不合法,例如 filePath 为空。
V2TXLIVE_ERROR_REFUSED : API被拒绝,推流尚未开始。

stopLocalRecording

stopLocalRecording
stopLocalRecording
()

停止录制音视频流

注意
当停止推流后,如果视频还在录制中,SDK 内部会自动结束录制。