Skip to main content

You are viewing Agora Docs forBetaproducts and features. Switch to Docs

Android
iOS
macOS
Web
Windows
Electron
Flutter
React Native
React JS
Unity
Unreal Engine
Unreal (Blueprint)

App size optimization

Reducing the app size is of great significance in improving user experience. A smaller package size means that users consume less bandwidth and time to download the app. Consider the following scenarios where app size optimization is critical:

  • There are strict requirements on the size of the app. For example, running the app on smart wearable devices with limited storage space.

  • The target user group of the app is located in underdeveloped areas. The poor network connectivity causes the app download time to be too long.

This page shows you how to optimize the size of apps with integrated Video SDK.

Use the Lite SDK

Since version 4.4.0, Agora offers a Lite SDK that provides basic audio and video call functions in a smaller package size. If you only need to implement basic audio and video call functions, integrate the Lite SDK. For details see SDKs.

The Lite SDK includes only the following extensions:

  • Video encoding extension
  • Video decoding extension

Other extensions and related functions in the Extension list are not supported.

Use the Voice SDK

Video SDK supports both audio and video functions, and the package size is large. If you only need to use audio features, best practice is to integrate the Voice SDK. For details, see Voice SDK Quickstart.

Remove unnecessary extensions

Video SDK provides optional extension dynamic libraries. The name of the extension is suffixed with extension. See the extension list for details on the function and size of the extensions. Refer to the following ways to exclude these extensions to reduce the size of the app.

Remove extensions when integrating manually

When integrating through the Direct download link, manually delete the extension files that you do not need to use.

Remove extensions when integrating using Maven Central

When integrating the Android SDK through Maven Central, you can modify the /Gradle Scripts/build.gradle(Module: <projectname>.app) file to specify the dynamic libraries you need to integrate and exclude extensions you do not need to use. For details on the correspondence between each file in the Android SDK and the fields in dependencies, see implementation fields for details.

Refer to the following samples to include, all, none, or selected extensions.

dependencies {  implementation 'io.agora.rtc:full-sdk:4.0.1'  implementation 'io.agora.rtc:full-screen-sharing:4.0.1'  // ...}

Dynamically load .so files

Generally, you package the required .so files when compiling the App, and the SDK loads the .so files from the nativeLibraryPath of the App. To reduce the size of the app's installation package, Video SDK provides the mNativeLibPath attribute in the RtcEngineConfig class to support dynamic loading of the required .so files.

Note
  • Since March 6, 2024, using this method to reduce the app size no ​​longer meets the requirements of Google Play. For details, refer to the Developer Program Policies issued by Google. If your app needs to be listed on Google Play, please try other ways to reduce the app size.

  • This method is only applicable to manually integrating the Android SDK and does not apply to integration through Maven Central.

Refer to the following steps to implement this feature:

  1. Download the latest version of the SDK and decompress it.
  2. Integrate agora-rtc-sdk.jar into your project.
  3. Upload the .so files for all architectures to your server and make sure that the app can download the .so files for the target architecture over the network.
  4. When the app runs, it checks for the existence of an .so file. If the file is not found, it downloads the .so file and saves it to the private directory of the app.
  5. When calling create to create and initialize an RtcEngine instance, set the mNativeLibPath config parameter to the app private directory where the .so file is located.
  6. After calling create successfully, the SDK automatically loads the .so file from the specified path.

Reference

This section contains content that completes the information in this page, or points you to documentation that explains other aspects to this product.

Extension list

Refer to the following information for an introduction to each Video SDK extension and the increase in the size of your app after integration.

Information

The information in this section is based on version 4.4.0 of the Video SDK.

AI Noise Suppression

The Video SDK supports a new version of AI noise suppression, which provides better vocal fidelity, cleaner noise suppression, and adds de-reverberation capabilities. After integrating the AI ​​noise reduction extension, call the setAINSMode method to enable the AI ​​noise reduction function and select the noise reduction mode.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_ai_noise_suppression_extension.so196
Androidarmeabi-v7alibagora_ai_noise_suppression_extension.so113
Androidx86_64libagora_ai_noise_suppression_extension.so58
Androidx86libagora_ai_noise_suppression_extension.so57
iOSarm64AgoraAiNoiseSuppressionExtension.xcframework165
iOSarmv7AgoraAiNoiseSuppressionExtension.xcframework10
macOSarm64AgoraAiNoiseSuppressionExtension.xcframework336
macOSx86_64AgoraAiNoiseSuppressionExtension.xcframework272
Windowsx86libagora_ai_noise_suppression_extension.dll372
Windowsx86_64libagora_ai_noise_suppression_extension.dll459

Since version 4.4.0, the SDK provides a low-latency AI noise suppression extension which reduces processing latency while maintaining a good denoising effect. To use this feature, please contact technical support.

Information

The low-latency version and the regular version of the AI noise suppression extension are independent of each other. You can choose to integrate the appropriate version according to your specific requirements. When calling the setAINSMode method to enable AI noise suppression, the regular version of the extension is used by default. To switch to the low-latency version, please contact technical support.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_ai_noise_suppression_ll_extension.so188
Androidarmeabi-v7alibagora_ai_noise_suppression_ll_extension.so111
Androidx86_64libagora_ai_noise_suppression_ll_extension.so58
Androidx86libagora_ai_noise_suppression_ll_extension.so57
iOSarm64AgoraAiNoiseSuppressionLLExtension.xcframework156
iOSarmv7AgoraAiNoiseSuppressionLLExtension.xcframework44
macOSarm64AgoraAiNoiseSuppressionLLExtension.xcframework320
macOSx86_64AgoraAiNoiseSuppressionLLExtension.xcframework272
Windowsx86libagora_ai_noise_suppression_ll_extension.dll374
Windowsx86_64libagora_ai_noise_suppression_ll_extension.dll462
AI Echo Cancellation

Since version 4.1.0, the SDK provides an AI echo cancellation extension that preserves complete, clear, and smooth near-end human voice under poor echo-to-signal conditions. It significantly improves the system's echo cancellation and dual-talk performance, and brings users a more comfortable call and live broadcast experience. It is widely used in conferences, voice chats, karaoke, and other scenarios. To use this feature, please contact technical support.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_ai_echo_cancellation_extension.so322
Androidarmeabi-v7alibagora_ai_echo_cancellation_extension.so169
Androidx86libagora_ai_echo_cancellation_extension.so58
Androidx86_64libagora_ai_echo_cancellation_extension.so56
iOSarm64AgoraAiEchoCancellationExtension.xcframework287
iOSarmv7AgoraAiEchoCancellationExtension.xcframework10
macOSarm64AgoraAiEchoCancellationExtension.xcframework576
macOSx86_64AgoraAiEchoCancellationExtension.xcframework496
Windowsx86libagora_ai_echo_cancellation_extension.dll562
Windowsx86_64libagora_ai_echo_cancellation_extension.dll738

Since version 4.4.0, the SDK provides a low-latency AI echo cancellation extension, which reduces processing latency while maintaining a good echo cancellation effect. To use this feature, please contact technical support.

Information

The low-latency version and the regular version of the AI ​​echo cancellation extension are independent of each other. Choose the appropriate version according to your requirements. When AI echo cancellation is enabled, the regular version of the extension is used by default. To switch to the low-latency version, please contact technical support.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_ai_echo_cancellation_ll_extension.so322
Androidarmeabi-v7alibagora_ai_echo_cancellation_ll_extension.so169
Androidx86libagora_ai_echo_cancellation_ll_extension.so58
Androidx86_64libagora_ai_echo_cancellation_ll_extension.so56
iOSarm64AgoraAiEchoCancellationLLExtension.xcframework287
iOSarmv7AgoraAiEchoCancellationLLExtension.xcframework10
macOSarm64AgoraAiEchoCancellationLLExtension.xcframework576
macOSx86_64AgoraAiEchoCancellationLLExtension.xcframework480
Windowsx86libagora_ai_echo_cancellation_ll_extension.dll560
Windowsx86_64libagora_ai_echo_cancellation_ll_extension.dll734
Audio Beauty

The Audio Beauty extension provides a series of preset vocal effects, and also supports custom vocal effects through pitch, sound balance, and reverberation settings. It is widely used in voice chat, PK live broadcast, K song room, music radio, and other scenarios. After integrating the Audio Beauty extension, call the following methods to enable the desired audio effect:

  • setVoiceBeautifierPreset: Apply chat voice beautifier, singing voice beautifier, or timbre change
  • setAudioEffectPreset: Enable voice changing effects, music style effects, space shaping, electronic music effects.
  • setVoiceConversionPreset: Use basic voice conversion
  • setLocalVoicePitch, setLocalVoiceEqualization, setLocalVoiceReverb: Adjust the pitch, equalization and reverb effects to get the desired audio effect

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_audio_beauty_extension.so839
Androidarmeabi-v7alibagora_audio_beauty_extension.so749
Androidx86libagora_audio_beauty_extension.so753
Androidx86_64libagora_audio_beauty_extension.so754
iOSarm64AgoraAudioBeautyExtension.xcframework650
iOSarmv7AgoraAudioBeautyExtension.xcframework650
macOSarm64AgoraAudioBeautyExtension.xcframework1424
macOSx86_64AgoraAudioBeautyExtension.xcframework1440
Windowsx86libagora_audio_beauty_extension.dll1756
Windowsx86_64libagora_audio_beauty_extension.dll1893
Video Enhancement

The Video Enhancement extension provides basic beauty, video noise reduction, dark light enhancement, color enhancement, and other capabilities. After integrating the extension, call the following methods to enable the enhancement function you want:

  • setBeautyEffectOptions: Set basic beauty effects
  • setVideoDenoiserOptions: Set video de-noising
  • setLowlightEnhanceOptions: Set low-light enhancement options
  • setColorEnhanceOptions: Set color enhancement options

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_clear_vision_extension.so2133
Androidarmeabi-v7alibagora_clear_vision_extension.so1740
Androidx86libagora_clear_vision_extension.so852
Androidx86_64libagora_clear_vision_extension.so868
iOSarm64AgoraClearVisionExtension.xcframework2070
iOSarmv7AgoraClearVisionExtension.xcframework1903
macOSarm64AgoraClearVisionExtension.xcframework3200
macOSx86_64AgoraClearVisionExtension.xcframework3264
Windowsx86libagora_clear_vision_extension.dll3002
Windowsx86_64libagora_clear_vision_extension.dll3327
Local Screenshot Upload

The Local Screenshot Upload extension enables you to take screenshots and upload videos sent by local users to meet the needs of video content moderation. After integrating the extension, call enableContentInspect to enable local screenshot upload.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_content_inspect_extensio.so1078
Androidarmeabi-v7alibagora_content_inspect_extensio.so971
Androidx86libagora_content_inspect_extensio.so57
Androidx86_64libagora_content_inspect_extensio.so56
iOSarm64AgoraContentInspectExtension.xcframework988
iOSarmv7AgoraContentInspectExtension.xcframework932
macOSarm64AgoraContentInspectExtension.xcframework1296
macOSx86_64AgoraContentInspectExtension.xcframework1264
Windowsx86libagora_content_inspect_extension.dll1386
Windowsx86_64libagora_content_inspect_extension.dll1542
Perceptual Video Coding (PVC)

Perceptual Video Coding is a video encoding method that reduces bandwidth consumption while ensuring the same image quality. It improves video fluency in bandwidth-constrained scenarios and reduces data consumption in mobile network scenarios. To use this feature, please contact technical support.

Caution

Since version 4.1.0, the SDK statically compiles the PVC library by default and no longer provides an extension method. If you have previously integrated the PVC extension, delete the extension from the project dependencies and recompile the project after upgrading.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_pvc_extension.so170
Androidarmeabi-v7alibagora_pvc_extension.so120
iOSarm64AgoraPvcExtension.xcframework60
iOSarmv7AgoraPvcExtension.xcframework60
macOSarm64AgoraPvcExtension.xcframework643
macOSx86_64AgoraPvcExtension.xcframework530
Windowsx86libagora_pvc_extension.dll814
Windowsx86_64libagora_pvc_extension.dll974
Spatial Audio

The Spatial Audio extension shapes the direction of the remote user's voice and simulates the propagation process of sound in 3D space. It enables the local user to hear the spatial audio of the remote user.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_spatial_audio_extension.so3120
Androidarmeabi-v7alibagora_spatial_audio_extension.so3037
Androidx86libagora_spatial_audio_extension.so3032
Androidx86_64libagora_spatial_audio_extension.so3028
iOSarm64AgoraSpatialAudioExtension.xcframework2956
iOSarmv7AgoraSpatialAudioExtension.xcframework2957
macOSarm64AgoraSpatialAudioExtension.xcframework4960
macOSx86_64AgoraSpatialAudioExtension.xcframework4960
Windowsx86libagora_spatial_audio_extension.dll4279
Windowsx86_64libagora_spatial_audio_extension.dll4389
Virtual Background

After integrating the Virtual Background extension, call enableVirtualBackground to enable the virtual background. Use a custom background image or green screen to replace the local user's original background, or blur the background.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_segmentation_extension.so1729
Androidarmeabi-v7alibagora_segmentation_extension.so1454
iOSarm64AgoraVideoSegmentationExtension.xcframework1720
iOSarmv7AgoraVideoSegmentationExtension.xcframework1616
macOSarm64AgoraVideoSegmentationExtension.xcframework2560
macOSx86_64AgoraVideoSegmentationExtension.xcframework2768
Windowsx86libagora_segmentation_extension.dll2159
Windowsx86_64libagora_segmentation_extension.dll2488
Copyright Music

Since version 4.1.0, the SDK provides a copyrighted music extension (DRM, Data Rights Management) to implement functions related to playing copyrighted music in real-time interactive scenarios, such as retrieving music resources, obtaining music charts and chart details, preloading and playing music resources, downloading lyrics and posters, etc. For details, see v4.1.0 release notes.

Caution
  • For Android SDK prior to 4.3.0, libagora_drm_loader_extension.so and libagora_udrm3_extension.so must be integrated to use the copyrighted music extension.
  • Since version 4.3.0, the SDK has removed the copyrighted music dynamic library. When the app uses the copyrighted music function, it is no longer necessary to introduce the copyrighted music dynamic library.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8a
  • libagora_drm_loader_extension.so
  • libagora_udrm3_extension.so
1413
Androidarmeabi-v7a
  • libagora_drm_loader_extension.so
  • libagora_udrm3_extension.so
1014
Androidx86
  • libagora_drm_loader_extension.so
  • libagora_udrm3_extension.so
1403
Androidx86_64
  • libagora_drm_loader_extension.so
  • libagora_udrm3_extension.so
1444
iOSarm64 & armv7AgoraDrmLoaderExtension.xcframework1772
Face Detection

Since version 4.1.1, the SDK provides a Face Detection extension, which uses an algorithm to identify faces or portraits, and uses higher quality encoding for the Region of Interest (ROI) area during the encoding process to achieve a clearer effect for faces or portraits. To use this feature, please contact technical support.

Caution

There is no dependency between the Face Detection extension and the enableFaceDetection method. The latter uses the SDK's built-in functionality and does not require the Face Detection extension.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_face_detection_extension.so497
Androidarmeabi-v7alibagora_face_detection_extension.so332
Androidx86libagora_face_detection_extension.so133
Androidx86_64libagora_face_detection_extension.so131
iOSarm64AgoraFaceDetectionExtension.xcframework411
iOSarmv7AgoraFaceDetectionExtension.xcframework15
macOSarm64AgoraFaceDetectionExtension.xcframework864
macOSx86_64AgoraFaceDetectionExtension.xcframework848
Windowsx86libagora_face_detection_extension.dll867
Windowsx86_64libagora_face_detection_extension.dll1060
Face Capture

Since version 4.3.0, the SDK provides a Face Capture extension for obtaining facial expressions, head rotation, head translation and other facial information. This information is useful to drive the expression changes and head displacement of virtual human characters.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_face_capture_extension.so1377
Androidarmeabi-v7alibagora_face_capture_extension.so1082
iOSarmv7AgoraFaceCaptureExtension.xcframework1145
iOSarm64AgoraFaceCaptureExtension.xcframework1306
macOSarm64AgoraFaceCaptureExtension.xcframework2304
macOSx86_64AgoraFaceCaptureExtension.xcframework2480
Windowsx86libagora_face_capture_extension.dll2322
Windowsx86_64libagora_face_capture_extension.dll2701
Super Resolution

After integrating the Super Resolution extension, call enableRemoteSuperResolution to improve the image resolution of the remote video.

Caution

Since version 4.1.1, the SDK statically compiles the Super Resolution library by default, and no longer provides an extension method. The enableRemoteSuperResolution API has been deleted from the SDK, and Super Resolution no longer requires calling the method to enable it. If you have previously integrated the Super Resolution extension, delete the extension from the project dependencies after upgrading and recompile the project.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_super_resolution_extension.so214
Androidarmeabi-v7alibagora_super_resolution_extension.so161
iOSarm64AgoraSuperResolutionExtension.xcframework161
iOSarmv7AgoraSuperResolutionExtension.xcframework165
Screen Sharing

The Screen Sharing extension enables a local user to share their screen contents with other users to improve communication efficiency. For details, see Screen Sharing.

Caution

To use the screen sharing extension on the Android platform, integrate both libagora_screen_capture_extension.so and AgoraScreenShareExtension.aar.

The library name and the size of the app after integration are shown in the following table:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64libagora_screen_capture_extension.so132
Androidarmv7libagora_screen_capture_extension.so93
Androidarm64 & armv7AgoraScreenShareExtension.aar69
iOSarm64AgoraReplayKitExtension.xcframework67
iOSarmv7AgoraReplayKitExtension.xcframework66
macOSarm64AgoraScreenCaptureExtension.xcframework736
macOSx86_64AgoraScreenCaptureExtension.xcframework912
Windowsx86libagora_screen_capture_extension.dll1080
Windowsx86_64libagora_screen_capture_extension.dll1244
Video Quality Analyzer

Since version 4.1.0, the SDK provides a Video Quality Analyzer (VQA) extension, which simulates real-person subjective feelings to score video quality. To use this feature, please contact technical support.

The name of the extension for each platform and the increase in the size of your app after integration are as follows:

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_video_quality_analyzer_extension.so575
Androidarmeabi-v7alibagora_video_quality_analyzer_extension.so458
Androidx86libagora_video_quality_analyzer_extension.so58
Androidx86_64libagora_video_quality_analyzer_extension.so57
iOSarm64AgoraVideoQualityAnalyzerExtension.xcframework547
iOSarmv7AgoraVideoQualityAnalyzerExtension.xcframework480
macOSarm64AgoraVideoQualityAnalyzerExtension.xcframework880
macOSx86_64AgoraVideoQualityAnalyzerExtension.xcframework976
Windowsx86libagora_video_quality_analyzer_extension.dll873
Windowsx86_64libagora_video_quality_analyzer_extension.dll1046
Video Encoding

Since version 4.2.0, the SDK provides a Video Encoding extension. Compared to the native SDK encoding solution, this extension provides more encoding options and helps you achieve faster and higher compression video encoding. To use this feature, please contact technical support.

Information

To use the Video Encoding extension, integrate both the libraries listed in the following table according to the target platform.

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8a
  • libagora_video_encoder_extension.so
  • video_enc.so
945
Androidarmeabi-v7a
  • libagora_video_encoder_extension.so
  • video_enc.so
873
Androidx86
  • libagora_video_encoder_extension.so
  • video_enc.so
1125
Androidx86_64
  • libagora_video_encoder_extension.so
  • video_enc.so
1126
iOSarm64
  • AgoraVideoEncoderExtension.xcframework
  • video_enc.xcframework
773
iOSarmv7
  • AgoraVideoEncoderExtension.xcframework
  • video_enc.xcframework
788
macOSarm64
  • AgoraVideoEncoderExtension.xcframework
  • video_enc.xcframework
1504
macOSx86_64
  • AgoraVideoEncoderExtension.xcframework
  • video_enc.xcframework
2020
Windowsx86
  • libagora_video_encoder_extension.dll
  • video_enc.dll
2501
Windowsx86_64
  • libagora_video_encoder_extension.dll
  • video_enc.dll
2853
Video Decoding

Since version 4.2.0, the SDK provides a Video Decoding extension. Compared to the native SDK decoding solution, this extension provides more decoding options and helps you achieve faster and higher compression video decoding. To use this feature, please contact technical support.

Caution

To use the Video Decoding extension, integrate both the libraries listed in the following table according to the target platform.

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8a
  • libagora_video_decoder_extension.so
  • video_dec.so
817
Androidarmeabi-v7a
  • libagora_video_decoder_extension.so
  • video_dec.so
763
Androidx86
  • libagora_video_decoder_extension.so
  • video_dec.so
952
Androidx86_64
  • libagora_video_decoder_extension.so
  • video_dec.so
976
iOSarm64
  • AgoraVideoDecoderExtension.xcframework
  • video_dec.xcframework
635
iOSarmv7
  • AgoraVideoDecoderExtension.xcframework
  • video_dec.xcframework
662
macOSarm64
  • AgoraVideoDecoderExtension.xcframework
  • video_dec.xcframework
1296
macOSx86_64
  • AgoraVideoDecoderExtension.xcframework
  • video_dec.xcframework
1848
Windowsx86
  • libagora_video_decoder_extension.dll
  • video_dec.dll
2115
Windowsx86_64
  • libagora_video_decoder_extension.dll
  • video_dec.dll
2421
AV1 Stream Encoding

Since version 4.3.0, the SDK includes an AV1 Stream Encoding extension that enables encoding of video streams in the AV1 format. To use this feature, please contact technical support.

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_video_av1_encoder_extension.so726
Androidarmeabi-v7alibagora_video_av1_encoder_extension.so586
Androidx86libagora_video_av1_encoder_extension.so922
Androidx86_64libagora_video_av1_encoder_extension.so929
iOSarm64AgoraVideoAv1EncoderExtension.xcframework579
iOSarmv7AgoraVideoAv1EncoderExtension.xcframework586
macOSarm64AgoraVideoAv1EncoderExtension.xcframework944
macOSx86_64AgoraVideoAv1EncoderExtension.xcframework1616
Windowsx86libagora_video_av1_encoder_extension.dll1877
Windowsx86_64libagora_video_av1_encoder_extension.dll2064
AV1 Stream Decoding

Since version 4.3.0, the SDK includes an AV1 Stream Decoding extension that enables decoding of video streams in the AV1 format. To use this feature, please contact technical support.

PlatformArchitectureLibrary nameApp size increase (KB)
Androidarm64-v8alibagora_video_av1_decoder_extension.so528
Androidarmeabi-v7alibagora_video_av1_decoder_extension.so492
Androidx86libagora_video_av1_decoder_extension.so606
Androidx86_64libagora_video_av1_decoder_extension.so584
iOSarm64AgoraVideoAv1DecoderExtension.xcframework376
iOSarmv7AgoraVideoAv1DecoderExtension.xcframework368
macOSarm64AgoraVideoAv1DecoderExtension.xcframework1040
macOSx86_64AgoraVideoAv1DecoderExtension.xcframework2016
Windowsx86libagora_video_av1_decoder_extension.dll1449
Windowsx86_64libagora_video_av1_decoder_extension.dll2289

Integrating extensions into your project

When integrating the Android SDK through Maven Central, you can modify the dependencies field in the /Gradle Scripts/build.gradle(Module: <projectname>.app) file to specify the dynamic library you need to integrate. The correspondence between each file and implementation field in the SDK is detailed in the table below:

FileCategoryimplementation field
  • agora-rtc-sdk.jar
  • libagora-rtc-sdk.so
  • libagora-fdkaac.so
  • libagora-ffmpeg.so
  • libagora-soundtouch.so
  • libagora-core.so (renamed to libaosl.so since v4.3.0)
  • SDK header file
Requiredio.agora.rtc:full-rtc-basic
libagora_ai_noise_suppression_extension.soOptionalio.agora.rtc:ains
libagora_ai_noise_suppression_ll_extension.soOptionalio.agora.rtc:ains-ll (≥ v4.4.0)
libagora_audio_beauty_extension.soOptionalio.agora.rtc:audio-beauty
libagora_clear_vision_extension.soOptionalio.agora.rtc:clear-vision
libagora_content_inspect_extension.soOptionalio.agora.rtc:full-content-inspect
libagora_screen_capture_extension.soOptionalio.agora.rtc:screen-capture
AgoraScreenShareExtension.aarOptionalio.agora.rtc:full-screen-sharing
libagora_segmentation_extension.soOptionalio.agora.rtc:full-virtual-background
libagora_spatial_audio_extension.soOptionalio.agora.rtc:spatial-audio
libagora_pvc_extension.soOptionalio.agora.rtc:pvc (< v4.1.0)
libagora_super_resolution_extension.soOptionalio.agora.rtc:full-super-resolution (< v4.1.1)
libagora_drm_loader_extension.soOptionalio.agora.rtc:drm-loader (v4.1.0 to v4.2.6)
libagora_udrm3_extension.soOptionalio.agora.rtc:drm (v4.1.0 to v4.2.6)
libagora_ai_echo_cancellation_extension.soOptionalio.agora.rtc:aiaec (≥ v4.1.0)
libagora_ai_echo_cancellation_ll_extension.soOptionalio.agora.rtc:aiaec-ll (≥ v4.4.0)
libagora_video_quality_analyzer_extension.soOptionalio.agora.rtc:full-vqa (≥ v4.1.0)
libagora_face_detection_extension.soOptionalio.agora.rtc:full-face-detect (≥ v4.1.1)
libagora_face_capture_extension.soOptionalio.agora.rtc:full-face-capture (≥ v4.3.0)
  • libagora_video_encoder_extension.so
  • video_enc.so
Optionalio.agora.rtc:full-video-codec-enc (≥ v4.2.0)
  • libagora_video_decoder_extension.so
  • video_dec.so
Optionalio.agora.rtc:full-video-codec-dec (≥ v4.2.0)
libagora_video_av1_encoder_extension.soOptionalio.agora.rtc:full-video-av1-codec-enc (≥ v4.3.0)
libagora_video_av1_decoder_extension.soOptionalio.agora.rtc:full-video-av1-codec-dec (≥ v4.3.0)

Frequently asked questions

Video Calling