V7.9.1
Feature updates
Fixed some known issues.
V7.8.0
Feature updates
Fixed some known issues.
V7.7.0
Feature updates
Fixed some known issues.
V7.6.0
Feature updates
Fixed some known issues.
V7.5.0
Feature updates
Fixed some known issues.
V7.4.0
Feature updates
Fixed some known issues.
V7.3.0
Feature updates
Fixed some known issues.
V7.2.0
Feature updates
Fixed some known issues.
V7.1.0
Feature updates
Fixed some known issues.
V7.0.0
Feature updates
Unified the integration package. The SDK no longer provides separate packages for the Basic, Standard, and Professional editions. Features are now enabled based on your license.
Fixed some known issues.
V6.15.0
Feature Updates
The SDK is now compatible with iOS 18.
Fixed some known issues.
V6.7.0
Feature Updates
Fixed some 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 UpdatesFixed some known issues.
Resolved several known issues.
V3.35.0
Feature Updates
Fixed some known issues.
V3.34.1
Feature UpdatesFixed some known issues.
Resolved several known issues.
V3.34.0
Feature Updates
The video editing and export feature now supports setting the audio sampling rate and the number of channels.
Fixed some known issues.
V3.33.0
Feature Updates
Optimized the custom rendering feature in video editing.
Fixed some known issues.
V3.32.0
Feature Updates
Added support for Bitcode.
Duet recording now supports real-time video production.
Video export now supports uploading during production.
Fixed some known issues.
V3.31.0
Feature Updates
Added the border radius feature for caption backgrounds.
Added the image feature in 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
Optimized the license connection type.
Optimized the crop performance.
Fixed some 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
Feature Updates
Resolved several known issues.
V3.27.0
Feature Updates
Multi-source recording now supports echo cancellation, denoising, and mixing background music with recorded audio.
Added LUT filter effects.
Fixed some known issues.
V3.26.0
Feature Updates
Improved the stability of the SDK.
Fixed an issue where some audio formats were not supported.
V3.25.1
Feature Updates
Optimized memory usage for captions.
Fixed an issue where cropping an HDR video in the SDK resulted in screen corruption after the video was edited with the native iPhone editor.
Fixed an issue where the screen displayed abnormally after exporting a landscape recording.
Fixed some known issues.
V3.25.0
Feature Updates
Added support for Picture-in-Picture (PiP) layers on the editing interface.
Added support for caption animations.
Added support for custom thumbnails in the drafts folder.
Fixed some known issues.
V3.24.0
Feature Updates
Optimized the SDK by removing FFmpeg softcoding.
Fixed an issue where the background color was not applied when you trim or edit a video.
Fixed some known issues.
V3.23.0
Feature updates
Added a drafts feature that includes an export option.
Added caption features, such as background color and alignment.
Added an echo cancellation feature for duet recording.
Replaced the retouching module in the demo with the Queen SDK.
Added six split-screen filter effects to the demo.
Recording now supports the automatic deletion of temporary video files.
Added support for editing and cropping HDR videos.
V3.22.0
Feature updates
Added a stylized caption feature to the editor.
Added a duet recording feature that supports multiple recording sources.
Added a feature for capturing a specific area of the screen.
Added a built-in time variable (BUILTIN_PROGRESS) to the custom effect shader class.
Enhanced SDK stability and fixed instability issues in certain scenarios.
API changes
Added:
(AliyunStickerManager *)getStickerManager;
Deprecated:
(AliyunPasterManager *)getPasterManager;
(id<AliyunIPasterRender>)getPasterRender;
V3.21.0
Feature Updates
The duet recording feature now supports adjusting view layers and setting border effects.
Support for importing and editing image videos has been added.
Memory usage during softcoding has been optimized.
SDK stability has been improved.
V3.20.0
Feature Updates
Added audio fade-in and fade-out effects to the editing module.
Added a composite caption feature to the editing module.
Added basic editing capabilities to the editing module.
Added the ability to retrieve a video thumbnail at a specific timestamp.
Fixed an issue where the frame rate setting did not take effect during video export in the editing scenario.
Improved SDK stability.
V3.19.0
Feature updates
Added an audio denoising feature to the editing module.
Added duet recording and video stitching features. You can now set a background image and a background color.
Added duet recording and video merging features with support for merging audio tracks.
Added echo cancellation to duet recording.
Fixed an issue that caused the halo to change color when certain transparent halo images were added as watermarks or pictures.
Fixed an issue where the rotation angle was incorrect when adding a static image.
API Changes
Deprecated APIs
AliyunCamera & AliyunIRecorder: @property(nonatomic, assign) BOOL useAudioSessionModeVideoRecording;
V3.18.1
Feature updates
Fixed a memory issue caused by hard coding on some iOS device models.
V3.18.0
Feature updates
Added a feature to select an audio option for duet recording videos: original video sound, recorded sound, or mute.
V3.17.1
Feature updates
The front camera now supports screen scaling.
Fixed an issue where some device models would crash due to OpenGL after video production.
V3.17.0
Feature Updates
Optimized the lively female voice effect and added dialect sound effects.
Fixed an issue that caused a green screen when importing videos shot with the native camera on an iPhone 12 into the trim and edit modules.
V3.16.2
Feature Updates
Resolved an issue with the Gaussian blur background.
V3.16.1
Feature updates
Fixed an issue that prevented video production when the recording length exceeded the video length.
V3.16.0
Feature Updates
Restored popular animation features.
Fixed occasional crashes.
Fixed a potential playback stuttering issue in long videos.
Fixed an issue with watermark orientation in landscape recordings.
V3.15.0
Feature updates
Fixed an issue that caused stuttering during the playback of produced videos.
Fixed an issue that caused speed adjustments to fail for multi-segment videos.
Added two sets of transitions and filter effects that comply with the custom effect production specifications.
API changes
Added an API to adjust custom effect parameters in real time.
Added support for custom filters and transition effects. For information about the production specifications for custom effects, see the official documentation.
V3.14.0
Feature Updates
Optimized the trim module to prevent color distortion after repeated trims.
Optimized the recording implementation to improve stability in abnormal situations, such as when an app runs in the background or when hardware resources are occupied.
Fixed several known memory leaks and optimized performance.
Bug Fixes
Fixed an occasional freeze that occurred when the app was moved to the background during recording.
Fixed an exception that occurred during recording when audio resources were in use.
Fixed an issue where the background color setting failed to take effect during editing.
Fixed an issue where the playback screen was partially magnified after changing the view in the iOS editing feature.
Fixed some memory leaks and other known issues.
API Changes
If you manually integrate the SDK, the AliyunVideoSDKPro.framework (dynamic library) is split into the AliyunVideoSDKPro.framework (static library) and the AliyunVideoCore.framework (dynamic library).
For more information, see Integrate the SDK.
V3.13.0
Feature Updates
Improved the stability and performance of the recording module.
Added support for RACE-based retouching and beautification features to the recording module.
Improved the smoothness of H.265 video playback in the editing module.
API changes
The MV API in the recording module has been deprecated, removing the feature for adding MVs.
V3.12.0
Feature updates
Added a log analysis feature. You can use the [AliyunVideoSDKInfo setDebugLogLevel:] API to enable or disable log analysis. You can set one of the following three levels:
AlivcDebugLogClose: Disables the log analysis feature. AlivcDebugLogNormal: Analyzes logs at the WARNING and ERROR levels. Use this level for log analysis. AlivcDebugLogAll: Analyzes all logs. Enable this level only when you troubleshoot complex issues. Do not use this level in a production release. This feature analyzes only SDK logs.Improved the performance of the editing module.
Bug fixes
Fixed an issue that prevented a thread from exiting the recording module.
API changes
The applyRunningDisplayMode API in the editing module is now deprecated, and the feature to dynamically switch the content display mode has been removed.
V3.11.0
Feature Updates
Improved the start and stop speed for segmented recording, resulting in faster production and a smoother recording experience.
Improved the granularity and accuracy of the recording progress callback.
Added precise control over the Group of Pictures (GOP) to increase transcoding speed in certain scenarios.
Reduced camera switching time.
Bug Fixes
Fixed an issue with the incorrect parsing of the number of GIF frames.
Fixed an issue with stuttering at the start of playback for certain reversed videos.
Fixed an issue with inaccurate durations for generated recordings.
Fixed an issue with audio and video synchronization in multi-segment recording output.
API changes
Consolidated all external error codes into AliyunVideoCoreError.
New method: `NSString* AlivcErrorMessage(int code)`. This method returns the error description.
V3.10.5
Feature updates
Added a duet recording feature (AliyunMixRecorder).
Added a multi-track video stitching feature to create effects such as Picture-in-Picture (PiP) and split screen (AliyunMixComposer).
V3.10.0
Feature updates
Added monster and minion sound effects to the editor.
Added support for the MJPEG video format in the editor.
Improved compatibility with some corrupted video files during playback in the editor.
Added the draw method to force a frame to be drawn.
Bug Fixes
Fixed an issue that caused inaccurate short recording durations.
Fixed an issue that caused the watermark to disappear after the app was sent to the background.
Fixed an issue that caused stuttering when switching between the front and rear cameras.
Fixed an issue that could cause a crash when the app was sent to the background during an export from the editor.
V3.9.0
Feature updates
Introduced a sound effect API with four effects: lively female voice, male voice, reverb, and echo.
Optimized the seek performance of the editing module.
Improved SDK stability.
V3.8.0
Feature updates
Improved recording stability.
Improved the accuracy of trim time selection.
Optimized editing and playback for a smooth, stutter-free experience.
Optimized the speed of editing and video production.
Fixed some bugs.
Video production now supports resuming after the app returns from the background.
The short video SDK now includes a mandatory dependency to support stability monitoring and future data requirements. If you manually integrate the SDK, you must add the AlivcConan.framework. If you use CocoaPods, run the `pod 'AlivcConan', '0.9.0'` command. For more information, see the demo.
V3.7.7
Feature Updates
Improved the stability of the SDK.
Improved the definition of trimmed and produced videos.
V3.7.5
Feature updates
Fixed a bug that caused abnormal reverse playback of HEVC videos generated by iOS 12.
Fixed a bug that could cause a crash when editing with a third-party rendering API.
Improved playback smoothness for time effects.
Enhanced compatibility for importing GIF images.
Added support for importing videos with odd resolutions.
Optimized audio and video synchronization for multi-segment recordings.
Improved stability.
V3.7.0
Feature Updates
Added a transition feature that includes popular effects such as fade, polygon, and blinds.
Added a special effects API that includes basic animations, such as rotate, pan, scale, and transparency, and custom animation effects, such as linear wipe.
Added a feature to apply a Gaussian blur effect to a specific stream for a specified duration.
Added a feature to apply a display mode (fill or crop) to a specific stream for a specified duration.
Added a dubbing API that supports dubbing for multiple segments and allows for speed adjustment.
Added support for applying multiple speed adjustment effects to multi-segment videos. The repeat and reverse effects are still supported for single-segment videos only.
API changes
After the editing preview is complete, you must call the `replay` API. The `play` API was used previously.
The `prepare` API has been added to the editor to preload data. Call this API after you call `startEdit`.
The reference coordinates for the watermark position and size have been changed to the output resolution coordinates.
When you apply a transition effect, you must call `stopEdit`, then call the transition, and then call `startEdit`.
The `delegate` property has been removed from `AliyunPasterController`.
The `destroyAllEffect` API has been removed from `AliyunEditor`.
`QuCore-ThirdParty.framework` has been renamed to `alivcffmpeg.framework`.
V3.6.5.5
Feature Updates
Adds compatibility with Xcode 10.x.
V3.6.5.3
Feature updates
Fixed an occasional crash that occurred when the screen was locked while adding an MV during a recording.
Fixed a timing inaccuracy that occurred when applying an effect filter to a reversed video.
Fixed an issue where the color gamut was displayed inaccurately for some videos.
Added support for the AAC SBR audio format.
V3.6.5
Feature updates
Fixed an occasional crash that occurred during export.
Improved the smoothness of reversed video playback.
V3.6.0
Feature Updates
Package size and basic information
Package name | Package size (MB) |
AliyunVideoSDKPro.framework 3.5.0 release | 4.9 MB |
AliyunVideoSDKPro.framework 3.5.0 debug | 10.1 MB |
AliyunVideoSDKPro.framework 3.6.0 release | 7.6 MB |
AliyunVideoSDKPro.framework 3.6.0 debug | 15.7 M |
QuCore-ThirdParty.framework 3.5.0 release | 9.3 M |
QuCore-ThirdParty.framework 3.5.0 debug | 23.1 M |
QuCore-ThirdParty.framework 3.6.0 release | 10.2 MB |
QuCore-ThirdParty.framework 3.6.0 debug | 23.2 MB |
You must replace both AliyunVideoSDKPro.framework and QuCore-ThirdParty.framework. Otherwise, exceptions, such as a crash during video production, may occur.
API Changes
Watermark API
The -(void)setWaterMark: frame API is deprecated. Use -(void)setWaterMark. Example:
NSStringwatermarkPath = [[NSBundle mainBundle] pathForResource:@”watermark” ofType:@”png”]; AliyunEffectImage effectImage = [[AliyunEffectImage alloc] init]; effectImage.frame = CGRectMake(10, 10, 28, 20); effectImage.path = watermarkPath; [self.editor setWaterMark:effectImag];Ending slate API
Version 3.6 supports previewing the ending slate. To enable this, set -(void)setTailWaterMark. Example:
NSStringtailWatermarkPath = [[NSBundle mainBundle] pathForResource:@”tail” ofType:@”png”]; AliyunEffectImagetailWatermark = [[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];Add music API
Version 3.6 supports multi-channel audio stream mixing. To add only one audio track, call the remove API. Example:
AliyunEffectMusic *music = [[AliyunEffectMusic alloc] initWithFile:path]; [self.editor removeMusics];// Call this if you need only one audio track. [self.editor applyMusic:music];When you add music, call -(void)removeMVMusic. For example: AliyunEffectMusic *music = [[AliyunEffectMusic alloc] initWithFile:path].
[self.editor removeMVMusic]; [self.editor removeMusics]; [self.editor applyMusic:music];Version 3.6 supports playing a specific time range of a music file. Example:
AliyunEffectMusicmusic = [[AliyunEffectMusic alloc] initWithFile:path]; music.startTime = startTime; // The start time of the music file itself. music.duration = duration; // The playback duration of the music file itself. music.streamStartTime = streamStart[_player getStreamDuration]; // The start time of the music on the playback timeline. music.streamDuration = streamDuration * [_player getStreamDuration]; // The playback duration of the music on the playback timeline.
Added display for time effects.
The API in the demo is -(void)addTimelineTimeFilterItem. For the specific code, see the demo.
Interaction between time effects and special effect filters
For example, when you add a special effect filter to a video that has a speed adjustment or reverse effect, make sure that the time range is displayed correctly. The related code in version 3.6 is located in the following functions:
(void)didBeganLongPressEffectFilter:(AliyunEffectFilterInfo *)animtinoFilterInfo ; (void)didTouchingProgress; (void)didEndLongPress;You can directly reference the code in these three functions:
AliyunEffectFilter *animationFilter = [[AliyunEffectFilter alloc] initWithFile:[animtinoFilterInfo localFilterResourcePath]]; float currentSec = [self.player getCurrentTime]; float currentStreamSec = [self.player getCurrentStreamTime]; animationFilter.startTime = currentSec; animationFilter.endTime = [self.player getDuration]; animationFilter.streamStartTime = currentStreamSec; // New parameter. Set streamStartTime if time effects are applied. animationFilter.streamEndTime = [self.player getStreamDuration];// New parameter. Set this if time effects are applied. [self.editor applyAnimationFilter:animationFilter];For backward compatibility, if no time effects are applied, you can still directly set startTime and endTime without setting streamStartTime and streamEndTime.
New time effect API
Integrating with version 3.5 does not cause compatibility issues. For the specific code, see the demo for version 3.6. Example:
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 status and API calls (such as switching between foreground and background, or switching pages)
Compared with version 3.5, version 3.6 handles switching between the foreground and background and switching pages internally. Details are as follows:
-(void)setActive is deprecated.
Handling of viewWillAppear and viewWillDisappear: When viewWillDisappear occurs, you do not need to call stopEdit to destroy the entire AliyunEdit object. You only need to call stop to stop playback. Similarly, when viewWillAppear occurs, you only need to call play to resume playback.
Handling of switching between the background and foreground:
When the app is switched to the background, the SDK stops playback or export. When the app returns to the foreground, playback resumes by default (or remains paused).
Error handling:
In version 3.6, if an error occurs during playback or export, the process stops. The error is returned through playError or exportError. You can handle the error as needed.
Adjustments to AliyunImporter class APIs. The following three APIs are deprecated. For backward compatibility, calling them does not cause issues.
(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 APIs are built using the AliyunClip object.
With the introduction of time effects, it is important to understand the following player concepts:
/* Retrieves the total duration in seconds. @return Total duration. */
(double)getDuration
/* Retrieves the current playback time in seconds. */
(double)getCurrentTime
/* Retrieves the duration of the original video stream in seconds. @return Total duration. */
(double)getStreamDuration
/* Retrieves the playback time of the original video stream in seconds. */
(double)getCurrentStreamTime
Examples
For example, for a 15-second video played at 2x speed, getDuration is 7.5 s. If getCurrentTime is 3.5 s, getStreamDuration is 15 s, and getCurrentStreamTime is 7 s.
For another example, for a 15-second video played at 0.5x speed, getDuration is 30 s. If getCurrentTime is 10 s, getStreamDuration is 15 s, and getCurrentStreamTime is 5 s.
For another example, for a 15-second video played in reverse, getDuration is 15 s. If getCurrentTime is 6 s, getStreamDuration is 15 s, and getCurrentStreamTime is 9 s.
The preceding examples describe the behavior for the entire video. The same rules apply to parts of a video, such as for partial speed adjustments and repetitions.
Other
Release Notes
New time effect APIs
(int)applyTimeFilter:(AliyunEffectTimeFilter *)filter.
(int)removeTimeFilter.
Adjustments to AliyunImporter class APIs. 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)animDuration
The new APIs are built using the AliyunClip object.
Adjustments to playback status and API calls. Compared with version 3.5, version 3.6 handles switching between the foreground and background and switching pages internally. Details are as follows:
(void)setActive is deprecated.
Handling of viewWillAppear and viewWillDisappear: When viewWillDisappear occurs, you do not need to call stopEdit to destroy the entire AliyunEdit object. You only need to call stop to stop playback. Similarly, when viewWillAppear occurs, you only need to call play to resume playback.
Handling of switching between the background and foreground: When the app is switched to the background, the SDK stops playback or export. When the app returns to the foreground, playback resumes by default (or remains paused).
Error handling: In version 3.6, if an error occurs during playback or export, the process stops. The error is returned through playError or exportError. You can handle the error as needed.
New player APIs
(double)getStreamDuration; // Retrieves the duration of the original video stream in seconds.
(double)getCurrentStreamTime; // Retrieves the playback time of the original video stream in seconds.
Watermark
Deprecated API: (void)setWaterMark: frame.
New API: (void)setWaterMark:(AliyunEffect*)waterMark.
The ending slate watermark supports preview. To enable this, call the -(void)setTailWaterMark API.
Music API
Supports multi-channel audio streams and playing a specific time range of an audio file. To add only one audio track, call the remove API. Example:
AliyunEffectMusic *music = [[AliyunEffectMusic alloc] initWithFile:path]; [self.editor removeMusics];// Call this if you need only one audio track. [self.editor applyMusic:music];Supports playing a specific time range of a music file. Example:
AliyunEffectMusicmusic = [[AliyunEffectMusic alloc] initWithFile:path]; music.startTime = startTime; // The start time of the music file itself. music.duration = duration; // The playback duration of the music file itself. music.streamStartTime = streamStart[_player getStreamDuration]; // The start time of the music on the playback timeline. music.streamDuration = streamDuration * [_player getStreamDuration]; // The playback duration of the music on the playback timeline.