tencent cloud

文档反馈

V2TXLivePusher

最后更新时间:2024-10-25 16:52:53
    Copyright (c) 2021 Tencent. All rights reserved.
    
    Module: V2TXLivePusher @ TXLiteAVSDK
    
    Function: 腾讯云直播推流器
    

    功能

    腾讯云直播推流器

    介绍

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

    V2TXLivePusher

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

    release

    release

    释放 V2TXLivePusher 资源

    setObserver

    setObserver
    void setObserver
    (V2TXLivePusherObserver observer)

    设置推流器回调

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

    setRenderView

    setRenderView
    int setRenderView
    (TXCloudVideoView view)

    设置本地摄像头预览 View

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK:成功。

    setRenderView

    setRenderView
    int setRenderView
    (TextureView view)

    设置本地摄像头预览 View

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK:成功。

    setRenderView

    setRenderView
    int setRenderView
    (SurfaceView view)

    设置本地摄像头预览 View

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK:成功。

    setRenderMirror

    setRenderMirror
    int setRenderMirror
    (V2TXLiveMirrorType mirrorType)

    设置本地摄像头预览镜像

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    setEncoderMirror

    setEncoderMirror
    int setEncoderMirror
    (boolean mirror)

    设置视频编码镜像

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    setRenderRotation

    setRenderRotation
    int setRenderRotation
    (V2TXLiveRotation rotation)

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

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    setRenderFillMode

    setRenderFillMode
    int setRenderFillMode
    (V2TXLiveFillMode mode)

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

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    startCamera

    startCamera
    int startCamera
    (boolean frontCamera)

    打开本地摄像头

    参数
    描述
    frontCamera
    指定摄像头方向是否为前置。
    true 【默认值】: 切换到前置摄像头。
    false: 切换到后置摄像头。
    注意
    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
    int startVirtualCamera
    (Bitmap image)

    开启图片推流

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    stopVirtualCamera

    stopVirtualCamera

    关闭图片推流

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    startScreenCapture

    startScreenCapture

    开启屏幕采集

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    stopScreenCapture

    stopScreenCapture

    关闭屏幕采集

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    pauseAudio

    pauseAudio

    暂停推流器的音频流

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    resumeAudio

    resumeAudio

    恢复推流器的音频流

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    pauseVideo

    pauseVideo

    暂停推流器的视频流

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    resumeVideo

    resumeVideo

    恢复推流器的视频流

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    startPush

    startPush
    int startPush
    (String 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
    int setAudioQuality
    (V2TXLiveAudioQuality quality)

    设置推流音频质量

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

    返回值说明:

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

    setVideoQuality

    setVideoQuality
    int setVideoQuality

    设置推流视频编码参数

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    getAudioEffectManager

    getAudioEffectManager

    获取音效管理对象

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

    getBeautyManager

    getBeautyManager

    获取美颜管理对象

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

    getDeviceManager

    getDeviceManager

    获取设备管理对象

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

    snapshot

    snapshot

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

    返回值说明:

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

    setWatermark

    setWatermark
    int setWatermark
    (Bitmap image
    
    float x
    
    float y
    
    float scale)

    设置推流器水印。默认情况下,水印不开启

    参数
    描述
    image
    水印图片。如果该值为 null,则等效于禁用水印。
    scale
    水印图片的缩放比例,取值范围为0 - 1的浮点数。
    x
    水印的横坐标,取值范围为0 - 1的浮点数。
    y
    水印的纵坐标,取值范围为0 - 1的浮点数。

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功

    enableVolumeEvaluation

    enableVolumeEvaluation
    int enableVolumeEvaluation
    (int intervalMs)

    启用采集音量大小提示

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    enableCustomVideoProcess

    enableCustomVideoProcess
    int enableCustomVideoProcess
    (boolean enable
    
    V2TXLivePixelFormat pixelFormat
    
    V2TXLiveBufferType bufferType)

    开启/关闭自定义视频处理

    参数
    描述
    enable
    true: 开启; false: 关闭。【默认值】: false。
    注意
    支持的格式组合:
    V2TXLivePixelFormatTexture2D+V2TXLiveBufferTypeTexture
    V2TXLivePixelFormatI420+V2TXLiveBufferTypeByteBuffer

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。
    V2TXLIVE_ERROR_NOT_SUPPORTED: 不支持的格式。

    enableCustomVideoCapture

    enableCustomVideoCapture
    int enableCustomVideoCapture
    (boolean enable)

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

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    enableCustomAudioCapture

    enableCustomAudioCapture
    int enableCustomAudioCapture
    (boolean enable)

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

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    sendCustomVideoFrame

    sendCustomVideoFrame
    int sendCustomVideoFrame
    (V2TXLiveVideoFrame videoFrame)

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

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

    返回值说明:

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

    sendCustomAudioFrame

    sendCustomAudioFrame
    int sendCustomAudioFrame
    (V2TXLiveAudioFrame audioFrame)

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

    
    @info 在自定义音频采集模式下,将采集的音频数据发送到SDK,SDK不再采集麦克风数据,仅保留编码和发送功能。
    
    @param audioFrame 向 SDK 发送的 音频帧数据 V2TXLiveAudioFrame
    @return 返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。
    V2TXLIVE_ERROR_INVALID_PARAMETER: 发送失败,音频帧数据不合法。
    @note 需要在 startPush 之前调用 enableCustomAudioCapture 开启自定义采集。

    enableAudioProcessObserver

    enableAudioProcessObserver
    int enableAudioProcessObserver
    (boolean enable
    
    V2TXLiveDef.V2TXLiveAudioFrameObserverFormat format)

    开启/关闭对经过前处理后的本地音频帧的监听回调

    参数
    描述
    enable
    是否开启。 【默认值】:false。
    format
    设置回调出的 AudioFrame 的格式。
    注意
    需要在 startPush 之前调用,才会生效。

    sendSeiMessage

    sendSeiMessage
    int sendSeiMessage
    (int payloadType
    
    byte[] data)

    发送 SEI 消息

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

    返回值说明:

    返回值 V2TXLiveCode
    V2TXLIVE_OK: 成功。

    startSystemAudioLoopback

    startSystemAudioLoopback

    打开系统声音采集

    开启后可以采集整个操作系统的播放声音,并将其混入到当前麦克风采集的声音中一起发送到云端。
    注意
    1. 该接口只在 Android API 29 及以上的版本生效。
    2. 您需要先使用该接口来开启系统声音采集,当使用屏幕分享接口开启屏幕分享时才会真正生效。
    3. 您需要添加一个前台服务来确保系统声音采集不被静默,并设置 android:foregroundServiceType="mediaProjection"。
    4. SDK 只采集满足捕获策略和音频用法的应用音频,目前采集的音频用法包括USAGE_MEDIA, USAGE_GAME。

    stopSystemAudioLoopback

    stopSystemAudioLoopback

    关闭系统声音采集

    showDebugView

    showDebugView
    void showDebugView
    (boolean isShow)

    显示仪表盘。

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

    setProperty

    setProperty
    int setProperty
    (String key
    
    Object value)

    调用 V2TXLivePusher 的高级 API 接口。

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

    返回值说明:

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

    setMixTranscodingConfig

    setMixTranscodingConfig
    int 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
    int startLocalRecording

    开始录制音视频流

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

    返回值说明:

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

    stopLocalRecording

    stopLocalRecording

    停止录制音视频流

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

    enableVoiceActivityDetection

    enableVoiceActivityDetection
    void enableVoiceActivityDetection
    (boolean enable)

    启用人声检测

    注意
    开启后可以在 OnVoiceActivityDetectionUpdate 回调中获取到语音活动的开始与停止
    联系我们

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

    技术支持

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

    7x24 电话支持