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
Since version 4.4.0, Agora offers a 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 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.
- Use all extensions
- Don't use any extensions
- Use selected extensions
dependencies { implementation 'io.agora.rtc:full-sdk:4.0.1' implementation 'io.agora.rtc:full-screen-sharing:4.0.1' // ...}
dependencies { implementation 'io.agora.rtc:full-rtc-basic:4.0.1' //...}
dependencies { def agora_sdk_version = "4.3.0" // The following code contains $, so you must use double-quotes implementation "io.agora.rtc:full-rtc-basic:${agora_sdk_version}" implementation "io.agora.rtc:full-ains:${agora_sdk_version}" implementation "io.agora.rtc:audio-beauty:${agora_sdk_version}" //...}
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.
-
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:
- Download the latest version of the SDK and decompress it.
- Integrate
agora-rtc-sdk.jar
into your project. - 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. - 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. - When calling
create
to create and initialize anRtcEngine
instance, set themNativeLibPath
config parameter to the app private directory where the.so
file is located. - 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 extension and the increase in the size of your app after integration.
The information in this section is based on version 4.4.0 of the .
AI Noise Suppression
The 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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_ai_noise_suppression_extension.so | 196 |
Android | armeabi-v7a | libagora_ai_noise_suppression_extension.so | 113 |
Android | x86_64 | libagora_ai_noise_suppression_extension.so | 58 |
Android | x86 | libagora_ai_noise_suppression_extension.so | 57 |
iOS | arm64 | AgoraAiNoiseSuppressionExtension.xcframework | 165 |
iOS | armv7 | AgoraAiNoiseSuppressionExtension.xcframework | 10 |
macOS | arm64 | AgoraAiNoiseSuppressionExtension.xcframework | 336 |
macOS | x86_64 | AgoraAiNoiseSuppressionExtension.xcframework | 272 |
Windows | x86 | libagora_ai_noise_suppression_extension.dll | 372 |
Windows | x86_64 | libagora_ai_noise_suppression_extension.dll | 459 |
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.
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_ai_noise_suppression_ll_extension.so | 188 |
Android | armeabi-v7a | libagora_ai_noise_suppression_ll_extension.so | 111 |
Android | x86_64 | libagora_ai_noise_suppression_ll_extension.so | 58 |
Android | x86 | libagora_ai_noise_suppression_ll_extension.so | 57 |
iOS | arm64 | AgoraAiNoiseSuppressionLLExtension.xcframework | 156 |
iOS | armv7 | AgoraAiNoiseSuppressionLLExtension.xcframework | 44 |
macOS | arm64 | AgoraAiNoiseSuppressionLLExtension.xcframework | 320 |
macOS | x86_64 | AgoraAiNoiseSuppressionLLExtension.xcframework | 272 |
Windows | x86 | libagora_ai_noise_suppression_ll_extension.dll | 374 |
Windows | x86_64 | libagora_ai_noise_suppression_ll_extension.dll | 462 |
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_ai_echo_cancellation_extension.so | 322 |
Android | armeabi-v7a | libagora_ai_echo_cancellation_extension.so | 169 |
Android | x86 | libagora_ai_echo_cancellation_extension.so | 58 |
Android | x86_64 | libagora_ai_echo_cancellation_extension.so | 56 |
iOS | arm64 | AgoraAiEchoCancellationExtension.xcframework | 287 |
iOS | armv7 | AgoraAiEchoCancellationExtension.xcframework | 10 |
macOS | arm64 | AgoraAiEchoCancellationExtension.xcframework | 576 |
macOS | x86_64 | AgoraAiEchoCancellationExtension.xcframework | 496 |
Windows | x86 | libagora_ai_echo_cancellation_extension.dll | 562 |
Windows | x86_64 | libagora_ai_echo_cancellation_extension.dll | 738 |
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.
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_ai_echo_cancellation_ll_extension.so | 322 |
Android | armeabi-v7a | libagora_ai_echo_cancellation_ll_extension.so | 169 |
Android | x86 | libagora_ai_echo_cancellation_ll_extension.so | 58 |
Android | x86_64 | libagora_ai_echo_cancellation_ll_extension.so | 56 |
iOS | arm64 | AgoraAiEchoCancellationLLExtension.xcframework | 287 |
iOS | armv7 | AgoraAiEchoCancellationLLExtension.xcframework | 10 |
macOS | arm64 | AgoraAiEchoCancellationLLExtension.xcframework | 576 |
macOS | x86_64 | AgoraAiEchoCancellationLLExtension.xcframework | 480 |
Windows | x86 | libagora_ai_echo_cancellation_ll_extension.dll | 560 |
Windows | x86_64 | libagora_ai_echo_cancellation_ll_extension.dll | 734 |
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 changesetAudioEffectPreset
: Enable voice changing effects, music style effects, space shaping, electronic music effects.setVoiceConversionPreset
: Use basic voice conversionsetLocalVoicePitch
,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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_audio_beauty_extension.so | 839 |
Android | armeabi-v7a | libagora_audio_beauty_extension.so | 749 |
Android | x86 | libagora_audio_beauty_extension.so | 753 |
Android | x86_64 | libagora_audio_beauty_extension.so | 754 |
iOS | arm64 | AgoraAudioBeautyExtension.xcframework | 650 |
iOS | armv7 | AgoraAudioBeautyExtension.xcframework | 650 |
macOS | arm64 | AgoraAudioBeautyExtension.xcframework | 1424 |
macOS | x86_64 | AgoraAudioBeautyExtension.xcframework | 1440 |
Windows | x86 | libagora_audio_beauty_extension.dll | 1756 |
Windows | x86_64 | libagora_audio_beauty_extension.dll | 1893 |
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 effectssetVideoDenoiserOptions
: Set video de-noisingsetLowlightEnhanceOptions
: Set low-light enhancement optionssetColorEnhanceOptions
: 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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_clear_vision_extension.so | 2133 |
Android | armeabi-v7a | libagora_clear_vision_extension.so | 1740 |
Android | x86 | libagora_clear_vision_extension.so | 852 |
Android | x86_64 | libagora_clear_vision_extension.so | 868 |
iOS | arm64 | AgoraClearVisionExtension.xcframework | 2070 |
iOS | armv7 | AgoraClearVisionExtension.xcframework | 1903 |
macOS | arm64 | AgoraClearVisionExtension.xcframework | 3200 |
macOS | x86_64 | AgoraClearVisionExtension.xcframework | 3264 |
Windows | x86 | libagora_clear_vision_extension.dll | 3002 |
Windows | x86_64 | libagora_clear_vision_extension.dll | 3327 |
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_content_inspect_extensio.so | 1078 |
Android | armeabi-v7a | libagora_content_inspect_extensio.so | 971 |
Android | x86 | libagora_content_inspect_extensio.so | 57 |
Android | x86_64 | libagora_content_inspect_extensio.so | 56 |
iOS | arm64 | AgoraContentInspectExtension.xcframework | 988 |
iOS | armv7 | AgoraContentInspectExtension.xcframework | 932 |
macOS | arm64 | AgoraContentInspectExtension.xcframework | 1296 |
macOS | x86_64 | AgoraContentInspectExtension.xcframework | 1264 |
Windows | x86 | libagora_content_inspect_extension.dll | 1386 |
Windows | x86_64 | libagora_content_inspect_extension.dll | 1542 |
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.
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_pvc_extension.so | 170 |
Android | armeabi-v7a | libagora_pvc_extension.so | 120 |
iOS | arm64 | AgoraPvcExtension.xcframework | 60 |
iOS | armv7 | AgoraPvcExtension.xcframework | 60 |
macOS | arm64 | AgoraPvcExtension.xcframework | 643 |
macOS | x86_64 | AgoraPvcExtension.xcframework | 530 |
Windows | x86 | libagora_pvc_extension.dll | 814 |
Windows | x86_64 | libagora_pvc_extension.dll | 974 |
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_spatial_audio_extension.so | 3120 |
Android | armeabi-v7a | libagora_spatial_audio_extension.so | 3037 |
Android | x86 | libagora_spatial_audio_extension.so | 3032 |
Android | x86_64 | libagora_spatial_audio_extension.so | 3028 |
iOS | arm64 | AgoraSpatialAudioExtension.xcframework | 2956 |
iOS | armv7 | AgoraSpatialAudioExtension.xcframework | 2957 |
macOS | arm64 | AgoraSpatialAudioExtension.xcframework | 4960 |
macOS | x86_64 | AgoraSpatialAudioExtension.xcframework | 4960 |
Windows | x86 | libagora_spatial_audio_extension.dll | 4279 |
Windows | x86_64 | libagora_spatial_audio_extension.dll | 4389 |
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_segmentation_extension.so | 1729 |
Android | armeabi-v7a | libagora_segmentation_extension.so | 1454 |
iOS | arm64 | AgoraVideoSegmentationExtension.xcframework | 1720 |
iOS | armv7 | AgoraVideoSegmentationExtension.xcframework | 1616 |
macOS | arm64 | AgoraVideoSegmentationExtension.xcframework | 2560 |
macOS | x86_64 | AgoraVideoSegmentationExtension.xcframework | 2768 |
Windows | x86 | libagora_segmentation_extension.dll | 2159 |
Windows | x86_64 | libagora_segmentation_extension.dll | 2488 |
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.
- For Android SDK prior to 4.3.0,
libagora_drm_loader_extension.so
andlibagora_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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a |
| 1413 |
Android | armeabi-v7a |
| 1014 |
Android | x86 |
| 1403 |
Android | x86_64 |
| 1444 |
iOS | arm64 & armv7 | AgoraDrmLoaderExtension.xcframework | 1772 |
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.
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_face_detection_extension.so | 497 |
Android | armeabi-v7a | libagora_face_detection_extension.so | 332 |
Android | x86 | libagora_face_detection_extension.so | 133 |
Android | x86_64 | libagora_face_detection_extension.so | 131 |
iOS | arm64 | AgoraFaceDetectionExtension.xcframework | 411 |
iOS | armv7 | AgoraFaceDetectionExtension.xcframework | 15 |
macOS | arm64 | AgoraFaceDetectionExtension.xcframework | 864 |
macOS | x86_64 | AgoraFaceDetectionExtension.xcframework | 848 |
Windows | x86 | libagora_face_detection_extension.dll | 867 |
Windows | x86_64 | libagora_face_detection_extension.dll | 1060 |
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_face_capture_extension.so | 1377 |
Android | armeabi-v7a | libagora_face_capture_extension.so | 1082 |
iOS | armv7 | AgoraFaceCaptureExtension.xcframework | 1145 |
iOS | arm64 | AgoraFaceCaptureExtension.xcframework | 1306 |
macOS | arm64 | AgoraFaceCaptureExtension.xcframework | 2304 |
macOS | x86_64 | AgoraFaceCaptureExtension.xcframework | 2480 |
Windows | x86 | libagora_face_capture_extension.dll | 2322 |
Windows | x86_64 | libagora_face_capture_extension.dll | 2701 |
Super Resolution
After integrating the Super Resolution extension, call enableRemoteSuperResolution
to improve the image resolution of the remote video.
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_super_resolution_extension.so | 214 |
Android | armeabi-v7a | libagora_super_resolution_extension.so | 161 |
iOS | arm64 | AgoraSuperResolutionExtension.xcframework | 161 |
iOS | armv7 | AgoraSuperResolutionExtension.xcframework | 165 |
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.
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64 | libagora_screen_capture_extension.so | 132 |
Android | armv7 | libagora_screen_capture_extension.so | 93 |
Android | arm64 & armv7 | AgoraScreenShareExtension.aar | 69 |
iOS | arm64 | AgoraReplayKitExtension.xcframework | 67 |
iOS | armv7 | AgoraReplayKitExtension.xcframework | 66 |
macOS | arm64 | AgoraScreenCaptureExtension.xcframework | 736 |
macOS | x86_64 | AgoraScreenCaptureExtension.xcframework | 912 |
Windows | x86 | libagora_screen_capture_extension.dll | 1080 |
Windows | x86_64 | libagora_screen_capture_extension.dll | 1244 |
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:
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_video_quality_analyzer_extension.so | 575 |
Android | armeabi-v7a | libagora_video_quality_analyzer_extension.so | 458 |
Android | x86 | libagora_video_quality_analyzer_extension.so | 58 |
Android | x86_64 | libagora_video_quality_analyzer_extension.so | 57 |
iOS | arm64 | AgoraVideoQualityAnalyzerExtension.xcframework | 547 |
iOS | armv7 | AgoraVideoQualityAnalyzerExtension.xcframework | 480 |
macOS | arm64 | AgoraVideoQualityAnalyzerExtension.xcframework | 880 |
macOS | x86_64 | AgoraVideoQualityAnalyzerExtension.xcframework | 976 |
Windows | x86 | libagora_video_quality_analyzer_extension.dll | 873 |
Windows | x86_64 | libagora_video_quality_analyzer_extension.dll | 1046 |
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.
To use the Video Encoding extension, integrate both the libraries listed in the following table according to the target platform.
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a |
| 945 |
Android | armeabi-v7a |
| 873 |
Android | x86 |
| 1125 |
Android | x86_64 |
| 1126 |
iOS | arm64 |
| 773 |
iOS | armv7 |
| 788 |
macOS | arm64 |
| 1504 |
macOS | x86_64 |
| 2020 |
Windows | x86 |
| 2501 |
Windows | x86_64 |
| 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.
To use the Video Decoding extension, integrate both the libraries listed in the following table according to the target platform.
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a |
| 817 |
Android | armeabi-v7a |
| 763 |
Android | x86 |
| 952 |
Android | x86_64 |
| 976 |
iOS | arm64 |
| 635 |
iOS | armv7 |
| 662 |
macOS | arm64 |
| 1296 |
macOS | x86_64 |
| 1848 |
Windows | x86 |
| 2115 |
Windows | x86_64 |
| 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.
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_video_av1_encoder_extension.so | 726 |
Android | armeabi-v7a | libagora_video_av1_encoder_extension.so | 586 |
Android | x86 | libagora_video_av1_encoder_extension.so | 922 |
Android | x86_64 | libagora_video_av1_encoder_extension.so | 929 |
iOS | arm64 | AgoraVideoAv1EncoderExtension.xcframework | 579 |
iOS | armv7 | AgoraVideoAv1EncoderExtension.xcframework | 586 |
macOS | arm64 | AgoraVideoAv1EncoderExtension.xcframework | 944 |
macOS | x86_64 | AgoraVideoAv1EncoderExtension.xcframework | 1616 |
Windows | x86 | libagora_video_av1_encoder_extension.dll | 1877 |
Windows | x86_64 | libagora_video_av1_encoder_extension.dll | 2064 |
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.
Platform | Architecture | Library name | App size increase (KB) |
---|---|---|---|
Android | arm64-v8a | libagora_video_av1_decoder_extension.so | 528 |
Android | armeabi-v7a | libagora_video_av1_decoder_extension.so | 492 |
Android | x86 | libagora_video_av1_decoder_extension.so | 606 |
Android | x86_64 | libagora_video_av1_decoder_extension.so | 584 |
iOS | arm64 | AgoraVideoAv1DecoderExtension.xcframework | 376 |
iOS | armv7 | AgoraVideoAv1DecoderExtension.xcframework | 368 |
macOS | arm64 | AgoraVideoAv1DecoderExtension.xcframework | 1040 |
macOS | x86_64 | AgoraVideoAv1DecoderExtension.xcframework | 2016 |
Windows | x86 | libagora_video_av1_decoder_extension.dll | 1449 |
Windows | x86_64 | libagora_video_av1_decoder_extension.dll | 2289 |
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:
- Android Video SDK
- Android Voice SDK
File | Category | implementation field |
---|---|---|
| Required | io.agora.rtc:full-rtc-basic |
libagora_ai_noise_suppression_extension.so | Optional | io.agora.rtc:ains |
libagora_ai_noise_suppression_ll_extension.so | Optional | io.agora.rtc:ains-ll (≥ v4.4.0) |
libagora_audio_beauty_extension.so | Optional | io.agora.rtc:audio-beauty |
libagora_clear_vision_extension.so | Optional | io.agora.rtc:clear-vision |
libagora_content_inspect_extension.so | Optional | io.agora.rtc:full-content-inspect |
libagora_screen_capture_extension.so | Optional | io.agora.rtc:screen-capture |
AgoraScreenShareExtension.aar | Optional | io.agora.rtc:full-screen-sharing |
libagora_segmentation_extension.so | Optional | io.agora.rtc:full-virtual-background |
libagora_spatial_audio_extension.so | Optional | io.agora.rtc:spatial-audio |
libagora_pvc_extension.so | Optional | io.agora.rtc:pvc (< v4.1.0) |
libagora_super_resolution_extension.so | Optional | io.agora.rtc:full-super-resolution (< v4.1.1) |
libagora_drm_loader_extension.so | Optional | io.agora.rtc:drm-loader (v4.1.0 to v4.2.6) |
libagora_udrm3_extension.so | Optional | io.agora.rtc:drm (v4.1.0 to v4.2.6) |
libagora_ai_echo_cancellation_extension.so | Optional | io.agora.rtc:aiaec (≥ v4.1.0) |
libagora_ai_echo_cancellation_ll_extension.so | Optional | io.agora.rtc:aiaec-ll (≥ v4.4.0) |
libagora_video_quality_analyzer_extension.so | Optional | io.agora.rtc:full-vqa (≥ v4.1.0) |
libagora_face_detection_extension.so | Optional | io.agora.rtc:full-face-detect (≥ v4.1.1) |
libagora_face_capture_extension.so | Optional | io.agora.rtc:full-face-capture (≥ v4.3.0) |
| Optional | io.agora.rtc:full-video-codec-enc (≥ v4.2.0) |
| Optional | io.agora.rtc:full-video-codec-dec (≥ v4.2.0) |
libagora_video_av1_encoder_extension.so | Optional | io.agora.rtc:full-video-av1-codec-enc (≥ v4.3.0) |
libagora_video_av1_decoder_extension.so | Optional | io.agora.rtc:full-video-av1-codec-dec (≥ v4.3.0) |
Files | Category | implementation field |
---|---|---|
| Required | io.agora.rtc:voice-rtc-basic |
libagora_ai_noise_suppression_extension.so | Optional | io.agora.rtc:ains |
libagora_ai_noise_suppression_ll_extension.so | Optional | io .agora.rtc:ains-ll (≥ v4.4.0) |
libagora_audio_beauty_extension.so | optional | io.agora.rtc:audio-beauty |
libagora_spatial_audio_extension.so | optional | io.agora.rtc:spatial-audio |
libagora_drm_loader_extension.so | optional | io.agora.rtc:drm-loader (≥ v4.1.0) |
libagora_udrm3_extension.so | optional | io.agora.rtc:drm (v4.1.0 to v4.2.6) |
libagora_ai_echo_cancellation_extension.so | Optional Optional | io.agora.rtc:aiaec (≥ v4.1.0) |
libagora_ai_echo_cancellation_ll_extension.so | Optional | io.agora.rtc:aiaec-ll (≥ v4.4.0) |