tencent cloud

直播 SDK

动态与公告
TUILiveKit 产品动态
云直播推拉流 SDK 产品动态
新手指引
产品简介
产品概述
产品优势
性能数据
基本概念
购买指南
TRTC Live 价格总览
Live 视频直播计费说明
开通服务(TUILiveKit)
Demo 体验
Demo 体验指引
跑通 Demo(TUILiveKit)
接入指南
视频直播
准备工作
主播开播
观众观看
直播列表
语聊房
准备工作
主播开播
观众观看
直播列表
推流助手
推流助手(Electron 桌面应用)
推流助手(Web 桌面浏览器)
直播监播
监播页面(Web 桌面浏览器 React 版)
监播页面(Web 桌面浏览器 Vue 版)
UI 自定义
直播视频组件
视频源编辑组件
观众列表组件
聊天弹幕组件
媒体源配置面板
连麦管理面板
直播送礼组件
无 UI 集成
搭建视频直播
搭建语聊房
功能指南
关注主播(TUILiveKit)
至臻画质(TUILiveKit)
输入媒体流进房(TUILiveKit)
礼物系统(TUILiveKit)
客户端 API
Android
iOS
Web
服务端 API(TUILiveKit)
账号系统
REST API
第三方回调
错误码(TUILiveKit)
常见问题
平台编译
用户鉴权
云直播推拉流 SDK
产品简介
购买指南
Demo 体验
免费测试
SDK 下载
License 管理
高级功能
客户端 API
常见问题
无 UI 集成方案
API 文档
OSS information
OSS Attribution Notice

V2TXLivePusher

聚焦模式
字号
最后更新时间: 2026-03-27 17:23:03
Copyright (c) 2021 Tencent. All rights reserved.

Module: V2TXLivePusher @ TXLiteAVSDK

Function: 腾讯云直播推流器


功能

腾讯云直播推流器

介绍

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

V2TXLivePusher

V2TXLivePusher

函数列表
描述
设置推流器回调
设置本地摄像头预览 View
设置本地摄像头预览镜像
设置视频编码镜像
设置本地摄像头预览画面的旋转角度
设置本地摄像头预览画面的填充模式
打开本地摄像头
关闭本地摄像头
打开麦克风
关闭麦克风
开启图片推流
关闭图片推流
开始全系统的屏幕分享(该接口支持 iOS 11.0 及以上的 iPhone 和 iPad)
关闭屏幕采集
静音本地音频
取消静音本地音频
暂停推流器的视频流
恢复推流器的视频流
开始音视频数据推流
停止推送音视频数据
当前推流器是否正在推流中
设置推流音频质量
设置推流视频编码参数
获取音效管理对象
获取美颜管理对象
获取设备管理对象
截取推流过程中的本地画面
设置推流器水印。默认情况下,水印不开启
启用采集音量大小提示
开启/关闭自定义视频处理
开启/关闭自定义视频采集
开启/关闭自定义音频采集
在自定义视频采集模式下,将采集的视频数据发送到SDK
在自定义音频采集模式下,将采集的音频数据发送到SDK
开启/关闭对经过前处理后的本地音频帧的监听回调
发送 SEI 消息
显示仪表盘
调用 V2TXLivePusher 的高级 API 接口。
调用 V2TXLivePusher 的高级 API 接口。
设置云端的混流转码参数
开始录制音视频流
停止录制音视频流
启用人声检测

setObserver:

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

setRenderView:

setRenderView:
- (V2TXLiveCode)setRenderView:
(TXView *)view
设置本地摄像头预览 View
本地摄像头采集到的画面,经过美颜、脸型调整、滤镜等多种效果叠加之后,最终会显示到传入的 View 上。
参数
描述
view
本地摄像头预览 View。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK:成功。

setRenderMirror:

setRenderMirror:
- (V2TXLiveCode)setRenderMirror:
(V2TXLiveMirrorType)mirrorType
设置本地摄像头预览镜像
本地摄像头分为前置摄像头和后置摄像头,系统默认情况下,是前置摄像头镜像,后置摄像头不镜像,这里可以修改前置后置摄像头的默认镜像类型。
参数
描述
mirrorType
摄像头镜像类型 V2TXLiveMirrorType
V2TXLiveMirrorTypeAuto 【默认值】: 默认镜像类型. 在这种情况下,前置摄像头的画面是镜像的,后置摄像头的画面不是镜像的。
V2TXLiveMirrorTypeEnable: 前置摄像头 和 后置摄像头,都切换为镜像模式。
V2TXLiveMirrorTypeDisable: 前置摄像头 和 后置摄像头,都切换为非镜像模式。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

setEncoderMirror:

setEncoderMirror:
- (V2TXLiveCode)setEncoderMirror:
(BOOL)mirror
设置视频编码镜像
参数
描述
mirror
是否镜像。
NO【默认值】: 播放端看到的是非镜像画面。
YES: 播放端看到的是镜像画面。
注意
编码镜像只影响观众端看到的视频效果。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

setRenderRotation:

setRenderRotation:
- (V2TXLiveCode)setRenderRotation:
(V2TXLiveRotation)rotation
设置本地摄像头预览画面的旋转角度
参数
描述
rotation
预览画面的旋转角度 V2TXLiveRotation
V2TXLiveRotation0【默认值】: 0度, 不旋转。
V2TXLiveRotation90: 顺时针旋转90度。
V2TXLiveRotation180: 顺时针旋转180度。
V2TXLiveRotation270: 顺时针旋转270度。
注意
只旋转本地预览画面,不影响推流出去的画面。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

setRenderFillMode:

setRenderFillMode:
- (V2TXLiveCode)setRenderFillMode:
(V2TXLiveFillMode)mode
设置本地摄像头预览画面的填充模式
参数
描述
mode
画面填充模式 V2TXLiveFillMode
V2TXLiveFillModeFill 【默认值】: 图像铺满屏幕,不留黑边,如果图像宽高比不同于屏幕宽高比,部分画面内容会被裁剪掉。
V2TXLiveFillModeFit: 图像适应屏幕,保持画面完整,但如果图像宽高比不同于屏幕宽高比,会有黑边的存在。
V2TXLiveFillModeScaleFill: 图像拉伸铺满,因此长度和宽度可能不会按比例变化。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

startCamera:

startCamera:
- (V2TXLiveCode)startCamera:
(BOOL)frontCamera
打开本地摄像头
参数
描述
frontCamera
是否为前置摄像头。
YES 【默认值】: 切换到前置摄像头。
NO: 切换到后置摄像头。
注意
startVirtualCamera,startCamera,startScreenCapture,同一 Pusher 实例下,仅有一个采集源可以上行,不同采集源之间切换,请先关闭前一采集源,再开启后一采集源,保证同一采集源的开启和关闭是成对调用的。例如:采集源从Camera切换到VirtualCamera,调用顺序是 startCamera -> stopCamera -> startVirtualCamera。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

stopCamera

stopCamera
关闭本地摄像头返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

startMicrophone

startMicrophone
打开麦克风返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

stopMicrophone

stopMicrophone
关闭麦克风返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

startVirtualCamera:

startVirtualCamera:
- (V2TXLiveCode)startVirtualCamera:
(TXImage *)image
开启图片推流
参数
描述
image
图片。
注意
startVirtualCamera,startCamera,startScreenCapture,同一 Pusher 实例下,仅有一个采集源可以上行,不同采集源之间切换,请先关闭前一采集源,再开启后一采集源,保证同一采集源的开启和关闭是成对调用的。例如:采集源从Camera切换到VirtualCamera,调用顺序是 startCamera -> stopCamera -> startVirtualCamera。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

stopVirtualCamera

stopVirtualCamera
关闭图片推流返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

startScreenCapture:

startScreenCapture:
- (V2TXLiveCode)startScreenCapture:
(NSString *)appGroup
开始全系统的屏幕分享(该接口支持 iOS 11.0 及以上的 iPhone 和 iPad)
参数
描述
appGroup
主 App 与 Broadcast 共享的 Application Group Identifier,可以指定为 nil,但按照文档设置会使功能更加可靠。
注意
startVirtualCamera,startCamera,startScreenCapture,同一 Pusher 实例下,仅有一个采集源可以上行,不同采集源之间切换,请先关闭前一采集源,再开启后一采集源,保证同一采集源的开启和关闭是成对调用的。例如:采集源从Camera切换到ScreenCapture,调用顺序是 startCamera -> stopCamera -> startScreenCapture。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_ERROR_NOT_SUPPORTED: 功能不支持。

stopScreenCapture

stopScreenCapture
关闭屏幕采集返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

pauseAudio

pauseAudio
静音本地音频

静音本地音频后,SDK 不会继续采集麦克风的声音。
与 stopMicrophone 不同之处在于 pauseAudio 并不会停止发送音频数据,而是继续发送码率极低的静音包。
由于 MP4 等视频文件格式,对于音频的连续性是要求很高的,使用 stopMicrophone 会导致录制出的 MP4 不易播放,
因此在对录制质量要求很高的场景中,建议选择 pauseAudio,从而录制出兼容性更好的 MP4 文件。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

resumeAudio

resumeAudio
取消静音本地音频返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

pauseVideo

pauseVideo
暂停推流器的视频流返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

resumeVideo

resumeVideo
恢复推流器的视频流返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

startPush:

startPush:
- (V2TXLiveCode)startPush:
(NSString *)url
开始音视频数据推流
参数
描述
url
推流的目标地址,支持任意推流服务端。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 操作成功,开始连接推流目标地址。
V2TXLIVE_ERROR_INVALID_PARAMETER: 操作失败,url 不合法。
V2TXLIVE_ERROR_INVALID_LICENSE: 操作失败,license 不合法,鉴权失败。
V2TXLIVE_ERROR_REFUSED: 操作失败,RTC 不支持同一设备上同时推拉同一个 StreamId。

stopPush

stopPush
停止推送音视频数据返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

isPushing

isPushing
当前推流器是否正在推流中返回值说明:
是否正在推流。
1: 正在推流中。
0: 已经停止推流。

setAudioQuality:

setAudioQuality:
- (V2TXLiveCode)setAudioQuality:
(V2TXLiveAudioQuality)quality
设置推流音频质量
参数
描述
quality
音频质量 V2TXLiveAudioQuality
V2TXLiveAudioQualityDefault 【默认值】: 通用。
V2TXLiveAudioQualitySpeech: 语音。
V2TXLiveAudioQualityMusic: 音乐。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_REFUSED: 推流过程中,不允许调整音质。

setVideoQuality:

setVideoQuality:
- (V2TXLiveCode)setVideoQuality:
设置推流视频编码参数
参数
描述
param
视频编码参数 V2TXLiveVideoEncoderParam
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

getAudioEffectManager

getAudioEffectManager
获取音效管理对象

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


getBeautyManager

getBeautyManager
获取美颜管理对象

通过美颜管理,您可以使用以下功能:
设置 “美颜风格”、“美白”、“红润”、“大眼”、“瘦脸”、“V脸”、“下巴”、“短脸”、“小鼻”、“亮眼”、“白牙”、“祛眼袋”、“祛皱纹”、“祛法令纹”等美容效果。
调整 “发际线”、“眼间距”、“眼角”、“嘴形”、“鼻翼”、“鼻子位置”、“嘴唇厚度”、“脸型”。
设置人脸挂件(素材)等动态效果。
添加美妆。
进行手势识别。

参考 TXBeautyManager

getDeviceManager

getDeviceManager
获取设备管理对象

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

参考 TXDeviceManager

snapshot

snapshot
截取推流过程中的本地画面返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_REFUSED: 已经停止推流,不允许调用截图操作。

setWatermark:x:y:scale:

setWatermark:x:y:scale:
- (V2TXLiveCode)setWatermark:
(TXImage *)image
x:
(float)x
y:
(float)y
scale:
(float)scale
设置推流器水印。默认情况下,水印不开启
参数
描述
image
水印图片。如果该值为 nil,则等效于禁用水印。
scale
水印图片的缩放比例,取值范围为0 - 1的浮点数。
x
水印的横坐标,取值范围为0 - 1的浮点数。
y
水印的纵坐标,取值范围为0 - 1的浮点数。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

enableVolumeEvaluation:

enableVolumeEvaluation:
- (V2TXLiveCode)enableVolumeEvaluation:
(NSUInteger)intervalMs
启用采集音量大小提示
开启后可以在 onMicrophoneVolumeUpdate 回调中获取到 SDK 对音量大小值的评估。
参数
描述
intervalMs
决定了音量大小回调的触发间隔,单位为 ms,最小间隔为 100ms,如果小于等于0则会关闭回调,建议设置为 300ms。【默认值】:0,不开启。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。

enableCustomVideoProcess:pixelFormat:bufferType:

enableCustomVideoProcess:pixelFormat:bufferType:
- (V2TXLiveCode)enableCustomVideoProcess:
(BOOL)enable
pixelFormat:
(V2TXLivePixelFormat)pixelFormat
bufferType:
(V2TXLiveBufferType)bufferType
开启/关闭自定义视频处理
参数
描述
bufferType
指定回调的数据格式。
enable
YES: 开启; NO: 关闭。【默认值】:NO。
pixelFormat
指定回调的像素格式。
注意
支持的格式组合:
V2TXLivePixelFormatTexture2D+V2TXLiveBufferTypeTexture
V2TXLivePixelFormatNV12+V2TXLiveBufferTypePixelBuffer
V2TXLivePixelFormatBGRA32+V2TXLiveBufferTypePixelBuffer
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_NOT_SUPPORTED: 不支持的格式。

enableCustomVideoCapture:

enableCustomVideoCapture:
- (V2TXLiveCode)enableCustomVideoCapture:
(BOOL)enable
开启/关闭自定义视频采集

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

enableCustomAudioCapture:

enableCustomAudioCapture:
- (V2TXLiveCode)enableCustomAudioCapture:
(BOOL)enable
开启/关闭自定义音频采集

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

sendCustomVideoFrame:

sendCustomVideoFrame:
- (V2TXLiveCode)sendCustomVideoFrame:
(V2TXLiveVideoFrame *)videoFrame
在自定义视频采集模式下,将采集的视频数据发送到SDK

在自定义视频采集模式下,SDK不再采集摄像头数据,仅保留编码和发送功能。
您可以把采集到的 SampleBuffer 打包到 V2TXLiveVideoFrame 中,然后通过该API定期的发送。
参数
描述
videoFrame
向 SDK 发送的 视频帧数据 V2TXLiveVideoFrame
注意
需要在 startPush 之前调用 enableCustomVideoCapture 开启自定义采集。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_INVALID_PARAMETER: 发送失败,视频帧数据不合法。

sendCustomAudioFrame:

sendCustomAudioFrame:
- (V2TXLiveCode)sendCustomAudioFrame:
(V2TXLiveAudioFrame *)audioFrame
在自定义音频采集模式下,将采集的音频数据发送到SDK

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

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

enableAudioProcessObserver:format:

enableAudioProcessObserver:format:
- (V2TXLiveCode)enableAudioProcessObserver:
(BOOL)enable
format:
开启/关闭对经过前处理后的本地音频帧的监听回调
参数
描述
enable
是否开启。 【默认值】:false。
format
设置回调出的 AudioFrame 的格式。
注意
需要在 startPush 之前调用,才会生效。

sendSeiMessage:data:

sendSeiMessage:data:
- (V2TXLiveCode)sendSeiMessage:
(int)payloadType
data:
(NSData *)data
发送 SEI 消息

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

showDebugView:

showDebugView:
- (void)showDebugView:
(BOOL)isShow
显示仪表盘
参数
描述
isShow
是否显示。【默认值】:NO。

setProperty:value:

setProperty:value:
- (V2TXLiveCode)setProperty:
(NSString *)key
value:
(NSObject *)value
调用 V2TXLivePusher 的高级 API 接口。
参数
描述
key
高级 API 对应的 key, 详情请参考 V2TXLiveProperty 定义。
value
调用 key 所对应的高级 API 时,需要的参数。
注意
该接口用于调用一些高级功能。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_INVALID_PARAMETER: 操作失败,key 不允许为空。

getProperty:

getProperty:
- (NSString *)getProperty:
(NSString *)key
调用 V2TXLivePusher 的高级 API 接口。
参数
描述
key
高级 API 对应的 key
返回值说明:
返回值

setMixTranscodingConfig:

setMixTranscodingConfig:
- (V2TXLiveCode)setMixTranscodingConfig:
设置云端的混流转码参数

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


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


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



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

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



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

startLocalRecording:

startLocalRecording:
- (V2TXLiveCode)startLocalRecording:
开始录制音视频流
注意
推流开启后才能开始录制,非推流状态下开启录制无效。
录制过程中不要动态切换分辨率和软/硬剪辑,生成的视频极有可能出现异常。
返回值说明:
返回值 V2TXLiveCode
V2TXLIVE_OK : 成功。
V2TXLIVE_ERROR_INVALID_PARAMETER : 参数不合法,例如 filePath 为空。
V2TXLIVE_ERROR_REFUSED : API被拒绝,推流尚未开始。

stopLocalRecording

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

enableVoiceActivityDetection:

enableVoiceActivityDetection:
- (void)enableVoiceActivityDetection:
(BOOL) enable
启用人声检测
注意
开启后可以在 OnVoiceActivityDetectionUpdate 回调中获取到语音活动的开始与停止

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈