腾讯云直播SDKV2TXLivePusher_音视频解决方案_同尘科技

直播SDK 2年前 (2023-10-19) 浏览 117

Copyright (c) 2021 Tencent. All rights reserved.
Module: V2TXLivePusher @ TXLiteAVSDK
Function: 腾讯云直播推流器

功能

腾讯云直播推流器

介绍

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

V2TXLivePusher

函数列表 描述
release 释放 V2TXLivePusher 资源
setObserver 设置推流器回调
setRenderView 设置本地摄像头预览 View
setRenderView 设置本地摄像头预览 View
setRenderView 设置本地摄像头预览 View
setRenderMirror 设置本地摄像头预览镜像
setEncoderMirror 设置视频编码镜像
setRenderRotation 设置本地摄像头预览画面的旋转角度
setRenderFillMode 设置本地摄像头预览画面的填充模式
startCamera 打开本地摄像头
stopCamera 关闭本地摄像头
startMicrophone 打开麦克风
stopMicrophone 关闭麦克风
startVirtualCamera 开启图片推流
stopVirtualCamera 关闭图片推流
startScreenCapture 开启屏幕采集
stopScreenCapture 关闭屏幕采集
pauseAudio 暂停推流器的音频流
resumeAudio 恢复推流器的音频流
pauseVideo 暂停推流器的视频流
resumeVideo 恢复推流器的视频流
startPush 开始音视频数据推流
stopPush 停止推送音视频数据
isPushing 当前推流器是否正在推流中
setAudioQuality 设置推流音频质量
setVideoQuality 设置推流视频编码参数
getAudioEffectManager 获取音效管理对象
getBeautyManager 获取美颜管理对象
getDeviceManager 获取设备管理对象
snapshot 截取推流过程中的本地画面
setWatermark 设置推流器水印。默认情况下,水印不开启
enableVolumeEvaluation 启用采集音量大小提示
enableCustomVideoProcess 开启/关闭自定义视频处理
enableCustomVideoCapture 开启/关闭自定义视频采集
enableCustomAudioCapture 开启/关闭自定义音频采集
sendCustomVideoFrame 在自定义视频采集模式下,将采集的视频数据发送到SDK
sendCustomAudioFrame 在自定义音频采集模式下,将采集的音频数据发送到SDK
enableAudioProcessObserver 开启/关闭对经过前处理后的本地音频帧的监听回调
sendSeiMessage 发送 SEI 消息
startSystemAudioLoopback 打开系统声音采集
stopSystemAudioLoopback 关闭系统声音采集
showDebugView 显示仪表盘。
setProperty 调用 V2TXLivePusher 的高级 API 接口。
setMixTranscodingConfig 设置云端的混流转码参数
startLocalRecording 开始录制音视频流
stopLocalRecording 停止录制音视频流

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 (V2TXLiveVideoEncoderParam param)

设置推流视频编码参数

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

返回值说明:

返回值 V2TXLiveCode。 V2TXLIVE_OK: 成功。

getAudioEffectManager

getAudioEffectManager

获取音效管理对象


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

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。

注意RTMP 支持格式:format = V2TXLivePixelFormatTexture2D && buffetType = V2TXLiveBufferTypeTexture。RTC 支持格式:format = V2TXLivePixelFormatTexture2D && bufferType = V2TXLiveBufferTypeTexture。format = V2TXLivePixelFormatI420 && bufferType = V2TXLiveBufferTypeByteBuffer。format = V2TXLivePixelFormatI420 && bufferType = V2TXLiveBufferTypeByteArray。

返回值说明:

返回值 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: 发送失败,视频帧数据不合法。 V2TXLIVE_ERROR_REFUSED: 发送失败,您必须先调用 enableCustomVideoCapture 开启自定义视频采集。

sendCustomAudioFrame

sendCustomAudioFrame

int sendCustomAudioFrame (V2TXLiveAudioFrame audioFrame)

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


@info 在自定义音频采集模式下,将采集的音频数据发送到SDK,SDK不再采集麦克风数据,仅保留编码和发送功能。
@param audioFrame 向 SDK 发送的 音频帧数据 V2TXLiveAudioFrame。@return 返回值 V2TXLiveCode。 V2TXLIVE_OK: 成功。 V2TXLIVE_ERROR_REFUSED: 发送失败,您必须先调用 enableCustomAudioCapture 开启自定义音频采集。@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 (V2TXLiveTranscodingConfig config)

设置云端的混流转码参数


如果您在实时音视频 控制台 中的功能配置页开启了“启用旁路推流”功能,房间里的每一路画面都会有一个默认的直播 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 (V2TXLiveLocalRecordingParams params)

开始录制音视频流

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

返回值说明:

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

stopLocalRecording

stopLocalRecording

停止录制音视频流

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

对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?