Low-Latency Live Streaming
  • Platform
  • Framework / Engine
  • iOS
  • Android
  • macOS
  • Windows
  • Linux
  • Web
  • WeChat Mini Program
Standard
Express-Video SDK
Download
Note
with WhiteBoard
Express-Video SDK
Download
Note
2021.06.11 Version: 2.8.0

New Features

1. Support login room and push stream authentication in user room.

User permission control refers to the fact that when a user logs in to a room, or performs operations such as push/pull streaming in the room, the ZEGO server judges whether the user has the corresponding permission according to the Token parameter carried when the user logs in, so as to avoid the lack of permission control or Risk issues caused by improper operation. Currently, it only supports the verification of two permissions for the user to log in to the room and push streaming in the user's room.

For related API, please refer to loginRoom, renewToken, onRoomTokenWillExpire

2. Added the ability of the auxiliary stream to share the video data of the main stream.

Open the ability of the auxiliary stream to replicate the video data of the main stream. With this capability, developers can use different protocols to push the same data in the main and auxiliary streams. If developers need this ability, please contact ZEGO technical support to provide a trial API.

For related API, please refer to callExperimentalAPI

3. Added spatial audio capabilities.

The spatial audio can perceive the sound position of 360° in the space. Developers can use the spatial audio function to create a more realistic "seat" effect in the audio and video room. Users can perceive the source direction of the sound through the spatial audio and restore the offline scene. It is suitable for scenes such as language chat room, script killing and online meeting.

For related API, please refer to enablePlayStreamVirtualStereo

Enhancements

1. The minimum supported version of the SDK iOS platform has been increased from 8.0 to 9.0.

Bug Fixes

1. Fixed the problem of deadlock that may be caused in the process of [createEngine] and [createMediaPlayer] on iOS at the same time.

2. Fixed an issue where calling [enableHeadphoneAEC] after [createEngine] but before [startPublishingStream] or [startPreview] may be invalid.

3. Fixed a crash that may occur after [destroyEngine] in the process of using custom video rendering.

2021.04.29 Version: 2.7.0

New Features

1. Add experimental API functions.

ZEGO provides some technical previews or special customized functions in the RTC business through this API. If you need to obtain the use of this function or its details, please consult ZEGO technical support.

For related API, please refer to callExperimentalAPI

Bug Fixes

1. Fixed the problem that load so fails on some models

2021.04.15 Version: 2.6.0

New Features

1. Added focus voice feature in mix stream.

In the case of mixed streaming, the developer sets the target stream that needs to be highlighted on the streaming end, so as to highlight the voice of a specific user in a noisy environment where multiple people are talking at the same time. For example, in a meeting scenario, the voice of key people can be guaranteed. When calling the [startMixerTask] interface to start mixing, first set the "mixMode" in the incoming [ZegoMixerAudioConfig] mixed audio configuration parameter to "focused", and configure the "isAudioFocus" of [ZegoMixerInput] in the stream that needs to be highlighted. If it is "true", the stream can be designated as the focus voice stream.

For related API, please refer to startMixerTask

Bug Fixes

1. Fix known issues

2021.04.01 Version: 2.5.0

New Features

1. The body player supports setting the maximum cache configuration of network resources and obtaining real-time network resource cache conditions.

Developers can set the maximum cache duration and maximum cache data size of media player network resources through the [setNetWorkResourceMaxCache] interface before loading resources according to actual needs (the two cannot be 0 at the same time), and can obtain the current network resources through the [getNetWorkResourceCache] interface The playable duration and size of the buffered data in the buffer queue.

For related API, please refer to ZegoMediaPlayer > setNetWorkResourceMaxCache, ZegoMediaPlayer > getNetWorkResourceCache

2. Support setting the cache threshold that the media player needs to resume playback.

When the network status is poor and the media player has finished playing the cached network resources, it will stop playing. Only when the cached network resource is greater than the threshold set by the SDK (the default value is 5000 ms, and the valid value is greater than or equal to 1000 ms), the media player will automatically resume playback at the original paused position.

For related API, please refer to ZegoMediaPlayer > setNetWorkBufferThreshold

2021.03.18 Version: 2.4.0

New Features

1. Media player added screenshot function.

Take a screenshot of the screen currently playing in the media player.

For related API, please refer to ZegoMediaPlayer > takeSnapshot

2. Support setting and obtaining audio quality configuration.

The audio encoding type, bit rate, and audio channel combination value can be set and obtained as required.

For related API, please refer to setAudioConfig, getAudioConfig

3. Support for setting the factors of concern that trigger flow control.

When the flow control of the designated push channel is enabled through the [enableTrafficControl] interface, the [setTrafficControlFocusOn] interface can be used to control whether to start the flow control due to poor remote network conditions.

For related API, please refer to setTrafficControlFocusOn

4. Add local preview first frame rendering callback.

This callback will be received after the first frame of video data is rendered.

For related API, please refer to onPublisherRenderVideoFirstFrame

5. Media player adds precise search function.

For related API, please refer to ZegoMediaPlayer> enableAccurateSeek

6. The streaming terminal provides the function of closing all audio or video.

This function can be used when the audio or video streams of all remote users need to be closed at one time when pulling the stream.

For related API, please refer to muteAllPlayStreamAudio, muteAllPlayStreamVideo

Enhancements

1. Optimized the error code description of the publishing and playing stream state update callback when the room login failed.

Bug Fixes

1. Fix the problem that internal threads may get stuck when login room fails.

2021.03.05 Version: 2.3.1

Bug Fixes

1. Fix known issues

2021.03.04 Version: 2.3.0

New Features

1. Added a interface for setting log attributes.

When developers need to customize the log file size and path, they can call the [setLogConfig] interface to complete the configuration, and it must be set before calling [createEngine] to take effect. If set after [createEngine], it will take effect at the next [createEngine] after [destroyEngine]. Once the [setLogConfig] interface is called, before [destroyEngine], that is, during the entire life cycle of the engine, the old way of setting the log size and path through [setEngineConfig] will be invalid. It is recommended that once you use this interface, you always only use it to complete the requirements for setting the log path and size.

For related API, please refer to setLogConfig

2. Added [setApiCalledCallback] interface, used to set the callback of the execution result of the calling method.

After setting [setApiCalledCallback], you can get the detailed information of the execution result of the ZEGO SDK method through the [onApiCalledResult] callback.

For related API, please refer to setApiCalledCallback

3. Added [setPlayStreamVideoType] interface, used to set the playback video stream type.

When the pusher has set the "codecID" to "SVC" through [setVideoConfig] (it can be set before and after the pull), the puller can dynamically set and select different stream types (small resolution is the two-division of the standard layer) one). When the network is weak or the rendered UI window is small, you can choose to use a small resolution video to save bandwidth.

For related API, please refer to setPlayStreamVideoType

4. Added [setAudioRouteToSpeaker] interface for setting audio routing to speakers.

Via [setAudioRouteToSpeaker], you can set the audio route to the speaker. When you choose not to use the built-in speaker to play the sound, that is, when it is set to "false", the SDK will select the audio output device with the highest current priority to play the sound according to the system schedule.

For related API, please refer to setAudioRouteToSpeaker

5. Added [setAllPlayStreamVolume] interface to set the volume of all streaming sounds.

The local user can control the playback volume of all audio streams.

For related API, please refer to setAllPlayStreamVolume

6. Added [startNetworkProbe] interface for starting network probes. Added [stopNetworkProbe] interface to stop network probing.

Before pushing and pulling the stream, detect and locate some possible network problems through the network.

For related API, please refer to startNetworkProbe, stopNetworkProbe

Enhancements

1. Add unencrypted log printing, which is convenient for developers to troubleshoot abnormal interface calls.

2. The "logConfig" property of the "ZegoEngineConfig" class is discarded, and the "setLogConfig" interface is added to implement the original function.

For related API, please refer to setLogConfig

3. Deprecated the [setDebugVerbose] interface, please use the [setEngineConfig] function to set the advanced property "advancedConfig" to achieve the original function.

Switch between Chinese and English by setting the "key" of "advancedConfig" to "language" and "value" to "chinese" or "english". Switch the console printing function by setting "key" to "set_verbose" and "value" to "true" or "false".

For related API, please refer to setEngineConfig

4. Deprecated [setBuiltInSpeakerOn] interface, please use [setAudioRouteToSpeaker] to realize the original function.

For related API, please refer to setAudioRouteToSpeaker

Bug Fixes

1. Fix the problem of abnormal audio device mode switching.

2021.02.04 Version: 2.2.1

Bug Fixes

1. Fixed the problem that the publish watermark may not be deleted.

For related API, please refer to setPublishWaterma

2. Fixed the issue that may cause a crash when sending custom video capture data under extreme conditions.

3. Fixed the crash caused by unreasonable parameter transmission of the developer's audio channel when plugging data into the SDK for custom audio collection.

For related API, please refer to sendCustomAudioCaptureAACData, sendCustomAudioCapturePCMData

4. Fixed the issue that the rendered screen may rotate arbitrarily on some devices when the decoded stream is thrown.

For related API, please refer to onRemoteVideoFrameEncodedData

2021.01.28 Version: 2.2.0

New Features

1. Add custom video processing function.

When developers need to pre-process the captured video, such as using a third-party beauty SDK, they can use the custom video processing function to easily use to the video pre-processing operation. Compared with the custom video capture function, this function does not require the developer to manage the input source of the device. It only needs to manipulate the raw data thrown by the SDK and then send it back to the SDK side.

For related API, please refer to enableCustomVideoProcessing

2. Add RoomSessionID information for audio and video calls.

Multiple users conduct audio and video communication in the room, and each audio and video communication will have a unique RoomSessionID, which identifies the continuous communication from the first user in the room to the end of the audio and video communication. It can be used in scenarios such as call quality scoring and call problem diagnosis.

For related API, please refer to onRoomStateUpdate

3. Added SEI callback for media player

Use a media player to play a media file. When the media player parses that the media file contains SEI, it will trigger the [onMediaPlayerRecvSEI] callback.

For related API, please refer to ZegoMediaPlayer > onMediaPlayerRecvSEI

4. Support setting advanced configuration when start mixer task

add [advancedConfig] into [ZegoMixerTask] to support advance config for mixer task. if you need to use it, please contact ZEGO technical support.

For related API, please refer to startMixerTask

Added Prism related quality reports to facilitate developers to discover, locate, and solve problems in a timely manner, so as to better and more comprehensively improve user experience.

Enhancements

1. When the unknown error code 100XX99 appears when logging in to the room, publishing stream, or playing stream, the original server code will be thrown in the [extendedData] field, which is convenient for developers to feedback detailed problems.

2021.01.21 Version: 2.1.1

Bug Fixes

1. Fix the problem that the AudioEffectPlayer loads resources and the timing of callback loading results is inaccurate.

2. Fix a crash that may occur when [startPlayingStream], [stopPlayingStream] are invoked repeatedly at very high frequency.

2021.01.14 Version: 2.1.0

New Features

1. Added support for delivery of XCFramework products, adapted to Xcode 12.3

Please choose to download XCFramework from the Download SDK on the developer center.

2. Added the function of setting the buffer interval value.

This function is used to specify the range of adaptive adjustment of the playback buffer, and the developer can set it according to the scene.

For related API, please refer to setPlayStreamBufferIntervalRange

Bug Fixes

1. Fix known problems

2021.01.07 Version: 2.0.1

Bug Fixes

1. Fix known problems

2020.12.31 Version: 2.0.0

New Features

1. Added low latency live broadcast feature.

Low latency live broadcast focuses on providing stable and reliable live broadcast services. Compared with standard live video products, audio and video delays are lower, synchronization is stronger, and weak network resistance is better. It can provide users with a millisecond-level live broadcast experience; usage scenarios as education class, live show broadcast, e-commerce live broadcast, watch together, online auction. For more details, please refer to Low Latency Live.

For related API, please refer to startPlayingStream

2. Added support for H.265 (HEVC) encoding.

Added support for H.265 encoding, which can reduce the bit rate at the same resolution and frame rate.

For related API, please refer to setVideoConfig

Bug Fixes

1. Fixed a crash caused by resetting internal objects when the seek callback of the media player is triggered.

Deleted

1. Deleted [customVideoCaptureMainConfig] and [customVideoCaptureAuxConfig] in [ZegoEngineConfig], please use [enableCustomVideoCapture] function in [ZegoExpressEngine] instead.

The legacy function follows the life cycle of [setEngineConfig] function and is not flexible enough. After allowing the setting of [custom video capture] before the engine is started, Express SDK has added an independent [enableCustomVideoCapture] function to set the custom video capture.

For related API, please refer to enableCustomVideoCapture

2. Deleted [customVideoRenderConfig] in [ZegoEngineConfig], please use [enableCustomVideoRender] function in [ZegoExpressEngine] instead.

The legacy function follows the life cycle of [setEngineConfig] and is not flexible enough. After allowing the setting of [custom video render] before the engine is started, Express SDK has added an independent [enableCustomVideoRender] function to set the custom video render.

For related API, please refer to enableCustomVideoRender

3. Deleted [destroyEngine()] function, please use [destroyEngine(callback)] instead.

Added a new destroy engine function with the [callback] parameter. If the developer needs to switch between multiple audio/video SDK, the ZEGO SDK can be assumed to have freed up the device's hardware resources when the callback is received. If there is no need to listen, just set null for the [callback] parameter.

For related API, please refer to destroyEngine

4. Deleted [onRemoteAudioData] callback, please use [onPlaybackAudioData] instead.

The name of the legacy callback does not match the actual function, so delete and rename.

For related API, please refer to onPlaybackAudioData

5. Deleted [muteAudioOutput], please use [muteSpeaker] instead.

The naming style and semantics of the legacy function are not clear. [muteSpeaker] uses the definition of Speaker to correspond to the Microphone.

For related API, please refer to muteSpeaker

6. Deleted [createMediaPlayer] function in [ZegoMediaPlayer] class, please use [createMediaPlayer] in [ZegoExpressEngine] class instead.

The life cycle of the media player follows the engine, so it is changed to the instance method of the same name of [ZegoExpressEngine] class.

For related API, please refer to createMediaPlayer

7. Delete [volume] and [getVolume] in [ZegoMediaPlayer], please use [setPublishVolume], [getPublishVolume], [setPlayVolume], [getPlayVolume] instead.

The engine provides the function of separately acquiring the player's publish volume and local playback volume, so the original unified acquisition interface is deprecated.

For related APIs, please refer to ZegoMediaPlayer > setPublishVolume, ZegoMediaPlayer > getPublishVolume, ZegoMediaPlayer > setPlayVolume, ZegoMediaPlayer > getPlayVolume