tencent cloud

文档反馈

V2TXLivePusher

最后更新时间:2024-03-07 15:43:02
    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 接口。
    设置云端的混流转码参数
    开始录制音视频流
    停止录制音视频流

    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 不允许为空。

    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 内部会自动结束录制。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持