Migration from SDK 3.x
The On-Premise Recording SDK 4.x is the latest version that enables audio and video recording during real-time interactions. For a complete list of features and applicable use cases, refer to the Product Overview.
This guide highlights the major changes introduced in version 4.x compared to version 3.x.
Key improvements in 4.x
The On-Premise Recording SDK 4.x is built on top of the latest Agora RTC SDK 4.x. It provides significant improvements in compatibility, performance, and codec support.
New capabilities
- Supports the latest Agora cloud agent
- Improved resilience in weak network conditions and adaptive feedback
- Compatibility with Video SDK 4.x and later
- Support for H.265 and other peer codecs
- Easier upgrades due to shared RTC engine between the RTC SDK and the recording SDK
Functionality changes
Version 4.x focuses on recording audio and video streams in the RTC channel and generating MP4 files.
Deprecated features
The following features are not available in SDK 4.x. If needed, use the Agora RTC Server SDK:
- Access to raw audio and video (For example, YUV or PCM data)
- Local screenshot capture
- Built-in cloud container deployment
Version 4.x is designed for self-hosted deployment. It is not a cloud or aPaaS service.
Changes in service behavior
The following runtime behaviors from version 3.x have been removed in version 4.x:
- Multi-process service management
- Automatic crash recovery
You must implement service management and failover handling in your own infrastructure.
API comparison
The following table compares key APIs between version 4.x and 3.x:
Callback comparison
The following table compares key callbacks between version 4.x and 3.x:
Event | 4.x API | Older versions |
---|---|---|
Local user joins the channel | onConnected | onJoinChannelSuccess |
Local user leaves the channel | onDisconnected | onLeaveChannel |
Local user rejoins after reconnecting | onReconnected | onRejoinChannelSuccess |
Remote user leaves the channel | onUserLeft | onUserOffline |
First frame of remote audio is received | onFirstRemoteAudioDecoded | onFirstRemoteAudioFrame |
Remote user's audio state changes | onUserAudioStateChanged | onRemoteAudioStreamStateChanged |
Remote user's video state changes | onUserVideoStateChanged | onRemoteVideoStreamStateChanged |
For more information, refer to the API reference.