V7.11.0
Feature updates
Fixed several known issues.
V7.10.0
Feature updates
Fixed several known issues.
V7.9.1
Feature updates
Fixed several known issues.
V7.8.0
Feature updates
Fixed several known issues.
V7.7.0
Feature updates
Fixed several known issues.
V7.6.0
Feature updates
Fixed several known issues.
V7.5.0
Feature updates
Fixed several known issues.
V7.4.0
Feature updates
Fixed several known issues.
V7.3.0
Feature updates
Fixed several known issues.
V7.2.0
Feature updates
Fixed several known issues.
V7.1.0
Feature updates
Fixed several known issues.
V7.0.0
Feature updates
The sdk package is now unified, replacing the separate packages for the basic, standard, and professional editions. Features are enabled based on your license.
Fixed several known issues.
V6.15.0
Feature updates
Added support for iOS 18.
Fixed several known issues.
V6.7.0
Feature updates
Fixed several known issues.
V6.0.0
Feature updates
-
The version number is changed to match the version number of ApsaraVideo MediaBox SDK.
-
Specific known issues are fixed.
V3.36.0
Feature updates
Fixed several known issues.
V3.35.0
Feature updates
Fixed several known issues.
V3.34.1
Feature updates
Fixed several known issues.
V3.34.0
Feature updates
You can now configure the audio sampling rate and the number of channels during video export.
Fixed several known issues.
V3.33.0
Feature updates
Optimized the custom rendering feature in the editor.
Fixed several known issues.
V3.32.0
Feature updates
Added support for Bitcode.
Added support for real-time composition for duet recording.
Added support for upload during composition when exporting videos.
Fixed several known issues.
V3.31.0
Feature updates
Added a border radius feature for caption backgrounds.
Added an image feature to the edit mode.
Optimized the license verification logic.
Optimized the log persistence feature for more accurate troubleshooting during integration.
Fixed some known issues.
V3.30.0
Feature updates
Improved the license integration method.
Improved cropping performance.
Fixed several known issues.
V3.29.0
Feature updates
-
The cropping feature is optimized.
-
The license service is updated. You can view your license information.
-
Specific known issues are fixed.
V3.28.0
Bug fixes
Fixed several known issues.
V3.27.0
Feature updates
Added support for echo cancellation, noise reduction, and mixing of background music and recorded audio during multi-source recording.
Added the Lookup Table (LUT) filter effect.
Fixed several known issues.
V3.26.0
Feature updates
Improved SDK stability.
Fixed an issue where certain audio formats were not supported.
V3.25.1
Feature updates
Optimized memory usage for subtitles.
Fixed an issue that caused corrupted frames when cropping an HDR video that was previously edited with the iPhone's built-in editor.
Fixed a display issue that occurred after exporting a video recorded in landscape mode.
Fixed several known issues.
V3.25.0
Feature updates
Added a picture-in-picture (PiP) feature to the editor.
Added a subtitle animation feature for subtitles and word art.
You can now add custom thumbnails in the draft box.
Fixed several known issues.
V3.24.0
Feature updates
Optimized the SDK by removing FFmpeg-based software encoding.
Fixed an issue where the background color setting did not take effect during cropping and editing.
Fixed several known issues.
V3.23.0
Feature updates
Added a draft box feature for exporting drafts.
Added background color and alignment options for subtitles.
Added echo cancellation for duet recording.
Replaced the retouching module in the demo with the Queen SDK.
Added six split screen filter effects to the demo.
The SDK now automatically deletes temporary video files after recording.
Added support for HDR video editing and cropping.
V3.22.0
Feature updates
Added a word art feature to the editor.
Added a duet recording feature that supports multiple recording sources.
Added a partial screen capture feature.
Added the
BUILTIN_PROGRESSbuilt-in time variable to the custom effects shader class.Improved SDK stability.
API changes
Added API:
(AliyunStickerManager *)getStickerManager;Deprecated APIs:
(AliyunPasterManager *)getPasterManager;(id<AliyunIPasterRender>)getPasterRender;
V3.21.0
Feature updates
Added support for adjusting view hierarchy and configuring border effects for duet recording.
Added support for importing and editing mirrored videos.
Optimized memory usage during software encoding.
Fixed SDK stability issues.
V3.20.0
Feature updates
Added audio fade-in and fade-out effects to the editing module.
Added a subtitle combination feature to the editing module.
Added basic editing capabilities to the editing module.
Added the ability to retrieve a video thumbnail from a specific timestamp.
Fixed an issue where the frame rate setting for exported videos did not take effect in the editing module.
Fixed SDK stability issues.
V3.19.0
Feature updates
Added an audio noise reduction feature to the editing module.
Added duet recording and video merging features, with support for setting a background image and background color.
Added audio track merging for duet recording and video merging.
Added echo cancellation for duet recording.
Fixed an issue where the color of some transparent halo images changed after being applied as a watermark or image overlay.
Fixed an issue where the rotation angle of added static images was incorrect.
API changes
Deprecated API
Deprecated the useAudioSessionModeVideoRecording property in AliyunCamera & AliyunIRecorder.
V3.18.1
Bug fixes
Fixed a memory issue related to hardware encoding on some iOS models.
V3.18.0
Feature updates
Added the ability to specify the audio track for duet recording (options: original video audio, recorded audio, or mute).
V3.17.1
Feature updates
Added support for image scaling on the front-facing camera.
Fixed an OpenGL-related crash that occurred after video composition on some device models.
V3.17.0
Feature updates
Optimized the "lively female voice" effect and added new dialect voice effects.
Fixed an issue that caused a green screen in the cropping and editing module when importing videos from the iPhone 12's built-in camera.
V3.16.2
Bug fixes
Fixed an issue with Gaussian blur backgrounds.
V3.16.1
Bug fixes
Fixed an issue where composition failed if the recording duration was longer than the video duration.
V3.16.0
Feature updates
Restored mainstream animation features.
Fixed an occasional crash issue reported by users.
Fixed a potential playback stuttering issue with long videos.
Fixed a watermark orientation issue in landscape mode recording.
V3.15.0
Feature updates
Fixed a playback stuttering issue in composed videos.
Fixed an issue where speed ramping failed for multi-segment videos.
Added two new sets of transitions and filter effects based on the new custom effects specification.
API changes
Added an API to adjust custom effect parameters in real time.
Added support for custom filters and transition effects. For specifications on creating custom effects, see the official documentation.
V3.14.0
Improvements
Optimized the cropping module to prevent color distortion after repeated cropping.
Improved recording stability under exceptional conditions, such as when the app enters the background or during high hardware resource usage.
Fixed several known memory leaks and optimized performance.
Bug fixes
Fixed an occasional freeze that occurred when the app was sent to the background during recording.
Fixed an issue where an exception occurred if audio resources were occupied during recording.
Fixed an issue where background color settings in the editor did not take effect.
Fixed an issue on iOS where the video playback appeared partially zoomed after the view was changed in the editor.
Fixed several memory leaks and other known issues.
API changes
The AliyunVideoSDKPro.framework (dynamic framework) is now split into the AliyunVideoSDKPro.framework (static framework) and the AliyunVideoCore.framework (dynamic framework). This change affects manual SDK integrations.
For more information, see Integrate the short video SDK for iOS.
V3.13.0
Feature updates
Comprehensively optimized the stability and performance of the recording module.
Added RACE-based retouching and face shaping features to the recording module.
Improved the playback smoothness of H.265 videos in the editing module.
API changes
Deprecated the MV APIs in the recording module and removed the feature for adding MVs.
V3.12.0
Feature updates
Added a log analysis feature and the
[AliyunVideoSDKInfo setDebugLogLevel:]API, which allows you to enable or disable log analysis. Three levels are available:AlivcDebugLogClose: Disables log analysis. AlivcDebugLogNormal: Analyzes logs at the WARNING and ERROR levels. This is the recommended level for log analysis. AlivcDebugLogAll: Analyzes all logs. This level is intended only for troubleshooting complex issues and is not recommended for production releases. This feature analyzes only SDK logs.Improved the performance of the editing module.
Bug fixes
Fixed an issue in the recording module where a thread did not exit correctly.
API changes
Deprecated the applyRunningDisplayMode API in the editing module, removing the feature to dynamically switch content modes.
V3.11.0
Improvements
Improved the start/stop and composition speed for clip recording, resulting in smoother segmented recording.
Optimized the granularity and precision of recording progress callbacks.
Enabled precise control over the group of pictures (GOP) to improve transcoding speed in certain scenarios.
Reduced the time required to switch cameras.
Bug fixes
Fixed an issue where the frame count of GIF images was parsed incorrectly.
Fixed a stuttering issue that occurred at the beginning of reverse playback for specific videos.
Fixed an issue where the duration of recorded videos was inaccurate.
Fixed an audio-video synchronization issue in the output of multi-segment recordings.
API changes
Standardized all external error codes into
AliyunVideoCoreError.Added the
NSString* AlivcErrorMessage(int code)method to retrieve error descriptions.
V3.10.5
Feature updates
Added the duet recording feature (
AliyunMixRecorder).Added multi-track video merging (
AliyunMixComposer) for creating effects like picture-in-picture (PiP) and split screen.
V3.10.0
Feature updates
Added "sinister" and "minion" voice effects to the editor.
Added support for the MJPEG video format in the editor.
Improved playback compatibility with partially corrupted video files.
Added the
drawmethod to the editor for forcibly drawing a frame.
Bug fixes
Fixed an issue where the duration of short recorded video clips was inaccurate.
Fixed an issue where a watermark added during recording disappeared after the app was sent to the background.
Fixed a stuttering issue that occurred when switching between front and rear cameras during recording.
Fixed a potential crash that could occur if the app was sent to the background during composition and export from the editor.
V3.9.0
Feature updates
Added a new voice effects API, providing four effects: "lively female voice", "husky male voice", "reverberation", and "echo".
Improved seek performance in the editing module.
Improved SDK stability.
V3.8.0
Feature updates
Improved recording stability.
Improved the accuracy of time selection during cropping.
Optimized the editing playback capability for smooth, stutter-free playback.
Optimized the composition speed in the editor.
Fixed several bugs.
Added support for resuming composition after the app returns from the background.
To ensure SDK stability monitoring and support future data-related requirements, the short video SDK now requires the
AlivcConan.frameworkdependency. For manual integration, you must add this framework. For CocoaPods integration, addpod 'AlivcConan', '0.9.0'to your Podfile. For more information, see the demo.
V3.7.7
Improvements
Improved SDK stability.
Improved the clarity of cropped and composed videos.
V3.7.5
Feature updates
Fixed a bug that caused display artifacts during reverse playback of HEVC videos generated by iOS 12.
Fixed a potential crash when using a third-party rendering API during editing.
Improved playback smoothness for time effects.
Enhanced compatibility for importing GIF images.
Supports importing videos with odd resolutions.
Optimized audio-video synchronization for multi-segment recording.
Improved stability.
V3.7.0
Feature updates
Added transition effects, including mainstream effects like fade-in and fade-out, polygon, and blinds.
Added an animations API, which includes basic animations (rotation, translation, scaling, alpha) and custom animation effects (linear wipe).
Added the ability to apply a Gaussian blur effect to a specified stream during a specified time period.
Added the ability to set the display mode (padding or cropping) for a specified stream during a specified time period.
Added a dubbing API that supports multi-segment dubbing and speed ramping.
Added support for applying multiple speed ramping time effects to a multi-segment video. The repetition and reverse effects are still only supported for single-segment videos.
API changes
After an editor preview finishes, you must now call the
replayAPI instead of theplayAPI to replay the preview.Added the
prepareAPI to the editor for preloading data. This API should be called afterstartEdit.The reference coordinate system for the position and size of watermarks has been changed to the output resolution coordinates.
To apply a transition effect, you must now call
stopEdit, apply the transition, and then callstartEdit.Removed the
delegateproperty fromAliyunPasterController.Removed the
destroyAllEffectAPI fromAliyunEditor.Renamed
QuCore-ThirdParty.frameworktoalivcffmpeg.framework.
V3.6.5.5
Feature updates
Added compatibility with Xcode 10.x.
V3.6.5.3
Bug fixes
Fixed an occasional crash caused by locking the screen while adding an MV during recording.
Fixed an issue where the timing of filter effects was inaccurate during reverse playback.
Fixed an issue where the color gamut of some videos was displayed incorrectly.
Added support for audio in AAC SBR format.
V3.6.5
Feature updates
Fixed an occasional crash that occurred during export.
Improved the smoothness of reverse video playback.
V3.6.0
Feature updates
Package size and general information
Package name | Package size (MB) |
AliyunVideoSDKPro.framework 3.5.0 release | 4.9 |
AliyunVideoSDKPro.framework 3.5.0 debug | 10.1 |
AliyunVideoSDKPro.framework 3.6.0 release | 7.6 |
AliyunVideoSDKPro.framework 3.6.0 debug | 15.7 |
QuCore-ThirdParty.framework 3.5.0 release | 9.3 |
QuCore-ThirdParty.framework 3.5.0 debug | 23.1 |
QuCore-ThirdParty.framework 3.6.0 release | 10.2 |
QuCore-ThirdParty.framework 3.6.0 debug | 23.2 |
You must replace both AliyunVideoSDKPro.framework and QuCore-ThirdParty.framework. Otherwise, issues such as crashes during composition may occur.
API changes
Watermark API
Deprecated
-(void)setWaterMark: frame. Use-(void)setWaterMark:(AliyunEffectImage *)effectImageinstead. Example:NSString *watermarkPath = [[NSBundle mainBundle] pathForResource:@"watermark" ofType:@"png"]; AliyunEffectImage *effectImage = [[AliyunEffectImage alloc] init]; effectImage.frame = CGRectMake(10, 10, 28, 20); effectImage.path = watermarkPath; [self.editor setWaterMark:effectImage];Outro API
Version 3.6 adds support for previewing outro watermarks. To enable this, you must call
-(void)setTailWaterMark. Example:NSString *tailWatermarkPath = [[NSBundle mainBundle] pathForResource:@"tail" ofType:@"png"]; AliyunEffectImage *tailWatermark = [[AliyunEffectImage alloc] initWithFile:tailWatermarkPath]; tailWatermark.frame = CGRectMake(CGRectGetMidX(self.movieView.bounds) - 84 / 2, CGRectGetMidY(self.movieView.bounds) - 60 / 2, 84, 60); tailWatermark.endTime = 2; [self.editor setTailWaterMark:tailWatermark];Music API
Version 3.6 supports mixing multiple audio streams. If you need to add only one audio stream, call the
removeMusicsAPI first. Example:AliyunEffectMusic *music = [[AliyunEffectMusic alloc] initWithFile:path]; [self.editor removeMusics]; // Call this if you only need one audio track. [self.editor applyMusic:music];When adding music, you must also call
-(void)removeMVMusic. Example:[self.editor removeMVMusic]; [self.editor removeMusics]; [self.editor applyMusic:music];Version 3.6 supports playing a specific time range of a music file. Example:
AliyunEffectMusic *music = [[AliyunEffectMusic alloc] initWithFile:path]; music.startTime = startTime; // Start time within the source music file. music.duration = duration; // Playback duration from the source music file. music.streamStartTime = streamStart; // Start time on the main playback timeline. music.streamDuration = streamDuration; // Playback duration on the main playback timeline.
Time effects display
See the
-(void)addTimelineTimeFilterItemAPI in the demo for a code example.Interaction between time effects and other special effect filters
When adding a filter to a video that has a time effect applied (such as speed ramping or reverse), ensure the display time is set correctly. The relevant code is in the following three methods in the v3.6 demo:
(void)didBeganLongPressEffectFilter:(AliyunEffectFilterInfo *)animationFilterInfo; (void)didTouchingProgress; (void)didEndLongPress;You can refer to this code directly:
AliyunEffectFilter *animationFilter = [[AliyunEffectFilter alloc] initWithFile:[animationFilterInfo localFilterResourcePath]]; float currentSec = [self.player getCurrentTime]; float currentStreamSec = [self.player getCurrentStreamTime]; animationFilter.startTime = currentSec; animationFilter.endTime = [self.player getDuration]; animationFilter.streamStartTime = currentStreamSec; // New property. Must be set if time effects are used. animationFilter.streamEndTime = [self.player getStreamDuration]; // New property. Must be set if time effects are used. [self.editor applyAnimationFilter:animationFilter];For backward compatibility, if no time effects are applied, you can continue to set only
startTimeandendTimewithout settingstreamStartTimeandstreamEndTime.
New time effect APIs
No compatibility issues will arise when upgrading from version 3.5. For code examples, see the version 3.6 demo:
AliyunEffectTimeFilter *timeFilter = [[AliyunEffectTimeFilter alloc] init]; timeFilter.startTime = [_player getCurrentStreamTime]; timeFilter.endTime = timeFilter.startTime + 1; timeFilter.type = TimeFilterTypeSpeed; timeFilter.param = 0.5; [self.editor applyTimeFilter:timeFilter];Adjustments to playback state and API calls (for background/foreground and page switching)
Version 3.6 now internally handles background/foreground and page switching:
The
-(void)setActivemethod is deprecated.Handling of
viewWillAppearandviewWillDisappear: InviewWillDisappear, you no longer need to callstopEditto destroy the entireAliyunEditinstance. You only need to callstopto stop playback. Similarly, inviewWillAppear, you only need to callplayto resume playback.Handling of background/foreground switching: When the app enters the background, the SDK stops playback or export. When the app returns to the foreground, it automatically resumes playback (or remains paused).
Error handling: In version 3.6, if an error occurs during playback or export, the process stops, and the error is returned through the
playErrororexportErrorcallback.Error handling:
In version 3.6, an error during playback or export stops the operation and returns an error through
playErrororexportError. You can then handle the error as needed.
The following three APIs in the
AliyunImporterclass are deprecated. They are kept for backward compatibility and will not cause issues if called.(void)addVideoWithPath:(NSString *)videoPath animDuration:(CGFloat)animDuration;(void)addVideoWithPath:(NSString *)videoPath startTime:(CGFloat)startTime duration:(CGFloat)duration animDuration:(CGFloat)animDuration;(NSString *)addImage:(UIImage *)image duration:(CGFloat)duration animDuration:(CGFloat)animDuration;
The new approach is to construct an
AliyunClipobject.
Due to the addition of time effects, it is important to understand the following concepts related to the player:
/** Gets the total playback duration, in seconds. @return Total duration */
(double)getDuration/** Gets the current playback time, in seconds. */
(double)getCurrentTime/* Gets the duration of the original video stream, in seconds. @return The total duration. */
(double)getStreamDuration/** Gets the current playback time of the original video stream, in seconds. */
(double)getCurrentStreamTime
Examples
For a 15-second video played at 2x speed:
getDuration()returns 7.5 seconds. WhengetCurrentTime()is 3.5 seconds,getStreamDuration()is 15 seconds, andgetCurrentStreamTime()is 7 seconds.For a 15-second video played at 0.5x speed:
getDuration()returns 30 seconds. WhengetCurrentTime()is 10 seconds,getStreamDuration()is 15 seconds, andgetCurrentStreamTime()is 5 seconds.For a 15-second video played in reverse:
getDuration()returns 15 seconds. WhengetCurrentTime()is 6 seconds,getStreamDuration()is 15 seconds, andgetCurrentStreamTime()is 9 seconds.
The same calculation rules apply when time effects (such as variable speed or repetition) are applied to only a portion of the video.
Other
Release notes
New time effect APIs
(int)applyTimeFilter:(AliyunEffectTimeFilter *)filter;(int)removeTimeFilter;
APIs in the
AliyunImporterclass are adjusted. The following three APIs are deprecated:(void)addVideoWithPath:(NSString *)videoPath animDuration:(CGFloat)animDuration;(void)addVideoWithPath:(NSString *)videoPath startTime:(CGFloat)startTime duration:(CGFloat)duration animDuration:(CGFloat)animDuration;(NSString *)addImage:(UIImage *)image duration:(CGFloat)duration animDuration:(CGFloat)animDurationThe new approach is to construct an
AliyunClipobject.
Adjustments to playback state and API calls: Version 3.6 internally handles background/foreground and page switching.
The
(void)setActivemethod is deprecated.Handling of
viewWillAppearandviewWillDisappear: WhenviewWillDisappearoccurs, you no longer need to callstopEditto destroy the entireAliyunEditinstance. You only need to callstopto stop playback. Similarly, inviewWillAppear, you only need to callplayto resume playback.Handling of background/foreground switching: When the app enters the background, the SDK stops playback or export. When the app returns to the foreground, it automatically resumes playback (or remains paused).
Error handling: In version 3.6, if an error occurs during playback or export, the process stops, and the error is returned through the
playErrororexportErrorcallback.New player APIs
(double)getStreamDuration;// Gets the original video stream duration, in seconds.(double)getCurrentStreamTime;// Gets the current playback time of the original video stream, in seconds.
Watermarks
Deprecated the
-(void)setWaterMark: frameAPI.Use
-(void)setWaterMark:(AliyunEffectImage *)effectImageinstead.Outro watermarks can now be previewed by calling the
-(void)setTailWaterMarkAPI.
Music API
Added support for multiple audio streams and playing specific time ranges of an audio file. If you need to add only one audio stream, call the
removeMusicsAPI first. Example:AliyunEffectMusic *music = [[AliyunEffectMusic alloc] initWithFile:path]; [self.editor removeMusics]; // Call this if you only need one audio track. [self.editor applyMusic:music];Added support for playing a specific time range of a music file. Example:
AliyunEffectMusic *music = [[AliyunEffectMusic alloc] initWithFile:path]; music.startTime = startTime; // Start time within the source music file. music.duration = duration; // Playback duration from the source music file. music.streamStartTime = streamStart; // Start time on the main playback timeline. music.streamDuration = streamDuration; // Playback duration on the main playback timeline.