LiteAVSDK
Tencent Cloud LVB SDK, is a high availability components serving tens of thousands of enterprise customers, which is committed to helping you to minimize your research and development costs.
V2TXLivePusher

Detailed Description

Tencent Cloud live pusher.
The live pusher encodes the local audio and video data and pushes the encoded data to a specified push URL.

The pusher has the following capabilities:


Data Structure Documentation

◆ com::tencent::live2::V2TXLivePusher

class com::tencent::live2::V2TXLivePusher

Public Member Functions

abstract void setObserver (V2TXLivePusherObserver observer)
 
abstract int setRenderView (TXCloudVideoView view)
 
abstract int setRenderView (TextureView view)
 
abstract int setRenderView (SurfaceView view)
 
abstract int setRenderMirror (V2TXLiveMirrorType mirrorType)
 
abstract int setEncoderMirror (boolean mirror)
 
abstract int setRenderRotation (V2TXLiveRotation rotation)
 
abstract int startCamera (boolean frontCamera)
 
abstract int stopCamera ()
 
abstract int startMicrophone ()
 
abstract int stopMicrophone ()
 
abstract int startScreenCapture ()
 
abstract int stopScreenCapture ()
 
abstract int startPush (String url)
 
abstract int stopPush ()
 
abstract int isPushing ()
 
abstract int setAudioQuality (V2TXLiveAudioQuality quality)
 
abstract int setVideoQuality (V2TXLiveVideoResolution resolution, V2TXLiveVideoResolutionMode resolutionMode)
 
abstract TXBeautyManager getBeautyManager ()
 
abstract TXAudioEffectManager getAudioEffectManager ()
 
abstract TXDeviceManager getDeviceManager ()
 
abstract int snapshot ()
 
abstract int setWatermark (Bitmap image, float x, float y, float scale)
 
abstract int enableVolumeEvaluation (int intervalMs)
 
abstract int enableCustomVideoProcess (boolean enable, V2TXLivePixelFormat pixelFormat, V2TXLiveBufferType bufferType)
 
abstract int enableCustomVideoCapture (boolean enable)
 
abstract int sendCustomVideoFrame (V2TXLiveVideoFrame videoFrame)
 
abstract void showDebugView (boolean isShow)
 
abstract int setProperty (String key, Object value)
 
abstract int setMixTranscodingConfig (V2TXLiveTranscodingConfig config)
 

Member Function Documentation

◆ setObserver()

abstract void setObserver ( V2TXLivePusherObserver  observer)
abstract

Sets the pusher callback.

By setting the callback, you can listen to some callback events of V2TXLivePusher, including the pusher status, volume callback, statistics, warnings, and error messages.

Parameters
observerCallback target of the pusher. For more information, see V2TXLivePusherObserver

◆ setRenderView() [1/3]

abstract int setRenderView ( TXCloudVideoView  view)
abstract

Sets the local camera preview.

Images collected by the local camera will be eventually displayed on the view that is passed in after it is overlaid by multiple effects, such as beauty filters, facial feature adjustments, and filters.

Parameters
viewLocal camera preview.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ setRenderView() [2/3]

abstract int setRenderView ( TextureView  view)
abstract

Sets the local camera preview.

Images collected by the local camera will be eventually displayed on the view that is passed in after it is overlaid by multiple effects, such as beauty filters, facial feature adjustments, and filters.

Parameters
viewLocal camera preview.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ setRenderView() [3/3]

abstract int setRenderView ( SurfaceView  view)
abstract

Sets the local camera preview.

Images collected by the local camera will be eventually displayed on the view that is passed in after it is overlaid by multiple effects, such as beauty filters, facial feature adjustments, and filters.

Parameters
viewLocal camera preview.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ setRenderMirror()

abstract int setRenderMirror ( V2TXLiveMirrorType  mirrorType)
abstract

Sets the view mirror of the local camera.

Local cameras are divided into the front camera and the rear camera. By default, images from the front camera are mirrored, and images from the rear camera are not mirrored. Here, you can modify the default mirror type of the front or rear camera.

Parameters
mirrorTypeMirror type of the camera V2TXLiveMirrorType
  • V2TXLiveMirrorTypeAuto [Default]: default mirror type. In this case, images from the front camera are mirrored, and images from the rear camera are not mirrored.
  • V2TXLiveMirrorTypeEnable: both the front camera and rear camera are switched to mirror mode.
  • V2TXLiveMirrorTypeDisable: both the front camera and rear camera are switched to non-mirror mode.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ setEncoderMirror()

abstract int setEncoderMirror ( boolean  mirror)
abstract

Sets the video encoder mirror.

Attention
The encoder mirror only influences video effects on the audience side.
Parameters
mirrorSpecifies whether the mirrored images are viewed.
  • false [Default]: non-mirrored images are viewed on the player side.
  • true: mirrored images are viewed on the player side.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ setRenderRotation()

abstract int setRenderRotation ( V2TXLiveRotation  rotation)
abstract

Sets the rotation angle of the view.

Attention
Only the view is rotated, and images that are pushed are not affected.
Parameters
rotationRotation angle of the view V2TXLiveRotation
  • V2TXLiveRotation0 [Default]: 0 degrees, which means the view is not rotated.
  • V2TXLiveRotation90: rotate 90 degrees clockwise.
  • V2TXLiveRotation180: rotate 180 degrees clockwise.
  • V2TXLiveRotation270: rotate 270 degrees clockwise.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ startCamera()

abstract int startCamera ( boolean  frontCamera)
abstract

Enables the local camera.

Parameters
frontCameraSpecifies whether to switch to the front camera.
  • true [Default]: switch to the front camera.
  • false: switch to the rear camera.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ stopCamera()

abstract int stopCamera ( )
abstract

Disables the local camera.

Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ startMicrophone()

abstract int startMicrophone ( )
abstract

Enables the local microphone.

Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ stopMicrophone()

abstract int stopMicrophone ( )
abstract

Disables the microphone.

Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ startScreenCapture()

abstract int startScreenCapture ( )
abstract

Enables video screen capture.

Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ stopScreenCapture()

abstract int stopScreenCapture ( )
abstract

Disables video capture.

Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ startPush()

abstract int startPush ( String  url)
abstract

Starts pushing the audio and video data.

Parameters
urlPush URL, which can be any push server.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: operation succeeded. The pusher starts connecting to the target push URL.
  • V2TXLIVE_ERROR_INVALID_PARAMETER: operation failed. The URL is invalid.
  • V2TXLIVE_ERROR_INVALID_LICENSE: operation failed. The license is invalid and authentication failed.
  • V2TXLIVE_ERROR_REFUSED: operation failed. Duplicate streamId, please ensure that no other player or pusher is using this streamId now.

◆ stopPush()

abstract int stopPush ( )
abstract

Stops pushing the audio and video data.

Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ isPushing()

abstract int isPushing ( )
abstract

Indicates whether the pusher is currently pushing streams.

Returns
Indicates whether the pusher is pushing streams.
  • 1: yes
  • 0: no

◆ setAudioQuality()

abstract int setAudioQuality ( V2TXLiveAudioQuality  quality)
abstract

Sets the audio quality for pushing.

Parameters
qualityAudio quality V2TXLiveAudioQuality
  • V2TXLiveAudioQualityDefault [Default]: universal
  • V2TXLiveAudioQualitySpeech: speech
  • V2TXLiveAudioQualityMusic: music
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful
  • V2TXLIVE_ERROR_REFUSED: the audio quality cannot be adjusted in the pushing process.

◆ setVideoQuality()

abstract int setVideoQuality ( V2TXLiveVideoResolution  resolution,
V2TXLiveVideoResolutionMode  resolutionMode 
)
abstract

Sets the video resolution and aspect ratio mode (portrait or landscape) for pushing.

Parameters
resolutionVideo resolution. Default: V2TXLiveVideoResolution960x540 V2TXLiveVideoResolution
resolutionModeAspect ratio mode (portrait or landscape). Default: V2TXLiveVideoResolutionModePortrait V2TXLiveVideoResolutionMode
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ getBeautyManager()

abstract TXBeautyManager getBeautyManager ( )
abstract

Obtains the beauty manager TXBeautyManager

With the beauty manager, you can use the following features:

  • Set the following cosmetic effects: beauty style, whitening, ruddy, big eyes, slim face, V-shape face, chin, short face, small nose, bright eyes, white teeth, remove eye bags, remove wrinkles, remove laugh lines.
  • Adjust the hairline, eye spacing, eye corners, mouth shape, nose wings, nose position, lip thickness, and face shape.
  • Set animated effects such as face widgets (materials).
  • Add makeup effects.
  • Recognize gestures.

◆ getAudioEffectManager()

abstract TXAudioEffectManager getAudioEffectManager ( )
abstract

Obtains the audio effect manager TXAudioEffectManager.

With the audio effect manager, you can use the following features:

  • Adjust the volume of human voice collected by the microphone.
  • Set the reverb and voice changing effects.
  • Start the headphone monitor, and set the volume of the headphone monitor.
  • Add the BGM, and adjust the playback effect of BGM.

◆ getDeviceManager()

abstract TXDeviceManager getDeviceManager ( )
abstract

Obtains the video device manager TXDeviceManager.

With the device manager, you can use the following features:

  • Switch between the front and rear cameras.
  • Set the auto focus.
  • Adjust the camera magnification.
  • Turn the flash on or off.
  • Switch between the earphone and speaker.
  • Modify the volume type (media volume or conversation volume).

◆ snapshot()

abstract int snapshot ( )
abstract

Captures the local view in the pushing process.

Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful
  • V2TXLIVE_ERROR_REFUSED: pushing is stopped, and the snapshot operation cannot be called.

◆ setWatermark()

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

Sets the pusher watermark image. By default, the watermark is disabled.

Parameters
imageWatermark image. If the value is nil, it is equivalent to disabling the watermark.
xDisplay position of the watermark. Valid range: 0 - 1.
yDisplay position of the watermark. Valid range: 0 - 1.
scaleScaling ratio of the watermark. Valid range: 0 - 1.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ enableVolumeEvaluation()

abstract int enableVolumeEvaluation ( int  intervalMs)
abstract

Enables volume update.

After this feature is enabled, you can obtain the volume evaluation through the onMicrophoneVolumeUpdate callback.

Parameters
intervalMsInterval for triggering the volume callback. The unit is ms. The minimum interval is 100 ms. If the value is equal to or smaller than 0, the callback is disabled. We recommend that you set this parameter to 300 ms. [Default]: 0.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ enableCustomVideoProcess()

abstract int enableCustomVideoProcess ( boolean  enable,
V2TXLivePixelFormat  pixelFormat,
V2TXLiveBufferType  bufferType 
)
abstract

Enables or disables custom video processing.

Attention
Formats supported by RTMP: format = V2TXLivePixelFormatTexture2D && buffetType = V2TXLiveBufferTypeTexture Formats supported by RTC: format = V2TXLivePixelFormatTexture2D && bufferType = V2TXLiveBufferTypeTexture format = V2TXLivePixelFormatI420 && bufferType = V2TXLiveBufferTypeByteBuffer format = V2TXLivePixelFormatI420 && bufferType = V2TXLiveBufferTypeByteArray
Parameters
enabletrue: enable; false: disable (default)
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful
  • V2TXLIVE_ERROR_NOT_SUPPORTED: unsupported format

◆ enableCustomVideoCapture()

abstract int enableCustomVideoCapture ( boolean  enable)
abstract

Enables or disables custom video capture.

In the custom video capture mode, the SDK no longer captures images from cameras. Only the encoding and sending capabilities are retained.

Attention
This API takes effect only when it is called before startPush .
Parameters
enableYES: enable custom video capture; NO (default): disable custom video capture
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful

◆ sendCustomVideoFrame()

abstract int sendCustomVideoFrame ( V2TXLiveVideoFrame  videoFrame)
abstract

Sends the collected video data to the SDK in the custom video capture mode.

In the custom video capture mode, the SDK no longer captures images from cameras. Only the encoding and sending capabilities are retained. You can pack collected SampleBuffer packets into V2TXLiveVideoFrame and periodically send them through this API.

Attention
You must call enableCustomVideoCapture to enable custom video capture before startPush .
Parameters
videoFrameVideo frames sent to the SDK V2TXLiveVideoFrame
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful
  • V2TXLIVE_ERROR_INVALID_PARAMETER: The video frames fail to be sent because they are invalid.
  • V2TXLIVE_ERROR_REFUSED: You must call enableCustomVideoCapture to enable custom video capture before startPush .

◆ showDebugView()

abstract void showDebugView ( boolean  isShow)
abstract

Indicates whether the debug view of the pusher video status information is displayed.

Parameters
isShowSpecifies whether to display the debug view. [Default]: NO

◆ setProperty()

abstract int setProperty ( String  key,
Object  value 
)
abstract

Calls the advanced API of V2TXLivePusher.

Attention
This API is used to call some advanced features.
Parameters
keyKey of the advanced API.
valueParameter needed to call the advanced API corresponding to the key.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful
  • V2TXLIVE_ERROR_INVALID_PARAMETER: operation failed. The key cannot be nil.

◆ setMixTranscodingConfig()

abstract int setMixTranscodingConfig ( V2TXLiveTranscodingConfig  config)
abstract

Sets On-Cloud MixTranscoding parameters.

If you have enabled relayed push on the "Function Configuration" page of the TRTC console, then each stream in a room will have a default CDN address.

There may be multiple anchors in a room, each sending their own video and audio, but CDN audience needs only one live stream. Therefore, you need to mix multiple audio/video streams into one standard live stream, which requires mixing and transcoding.

When you call the setMixTranscodingConfig() API, the SDK will send a command to the Tencent Cloud transcoding server to combine multiple audio/video streams in the room into one stream. You can use the mixUsers parameter to set the position of each channel of image and specify whether to mix only audio. You can also set the encoding parameters of the mixed stream, including videoWidth, videoHeight, and videoBitrate.

**Image 1** => decoding ====> \
                                 \
**Image 2**=> decoding =>  image mixing => encoding => **mixed image**
                                 /
**Image 3** => decoding ====> /
**Audio 1** => decoding ====> \
                                 \
**Audio 2** => decoding => audio mixing => encoding => **mixed audio**
                                 /
**Audio 3** => decoding ====> /

For more information, please see On-Cloud MixTranscoding.

Attention
Notes:
  • On-Cloud MixTranscoding will increase the delay of CDN live streaming by about 1-2 seconds.
  • If you call this API, the streams of co-anchors will be mixed into your stream or the streamId specified in config.
  • If you are still in the room but do not need to mix streams anymore, make sure that you pass in nil to cancel On-Cloud MixTranscoding. The On-Cloud MixTranscoding module starts working the moment you enable On-Cloud MixTranscoding. You may incur additional costs if you do not cancel it in a timely manner.
  • When you leave the room, mixing will be canceled automatically.
Parameters
configPlease see the description of V2TXLiveTranscodingConfig in V2TXLiveDef.h. Passing in nil will cancel On-Cloud MixTranscoding.
Returns
Return code for V2TXLiveCode
  • V2TXLIVE_OK: successful
  • V2TXLIVE_ERROR_REFUSED: failed to set On-Cloud MixTranscoding parameters as stream pushing has not started