V3.34.0

Feature updates

  • The audio sampling rate and number of channels can be configured during editing and export.
  • Specific known issues are fixed.

V3.33.0

Feature updates

  • The custom rendering feature is optimized.
  • Specific known issues are fixed.

V3.32.0

Feature updates

  • Bitcode is supported.
  • Real-time video production is supported for duet recording.
  • Videos in production can be uploaded to Object Storage Service (OSS).
  • Specific known issues are fixed.

V3.31.0

Feature updates

V3.30.0

Feature updates

  • The license integration method is improved.
  • The cropping feature is improved.
  • Specific known issues are fixed.

V3.29.0

Feature updates

  • The cropping feature is improved.
  • The license is updated. You can view license authorization information.
  • Specific known issues are fixed.

V3.28.0

Feature updates

Specific known issues are fixed.

V3.27.0

Feature updates

  • The feature that allows you to crop a video in the same style as the current video is added.
  • Echo removal, noise reduction, and mixing of background music and recorded audio are supported during multi-source recording.
  • The Lookup Table (LUT) filter is added.
  • Specific known issues are fixed.

V3.26.0

Feature updates

  • The stability of the short video SDK for iOS is improved.
  • The issue where specific audio formats are not supported is fixed.

V3.25.1

Feature updates

  • The memory usage for subtitles is optimized.
  • The issue where the screen flickers when you use the short video SDK for iOS to crop a High Dynamic Range (HDR) video that is edited by using the built-in editing feature of an iPhone is fixed.
  • The issue where a display error occurs after you export a video that is recorded in landscape mode is fixed.
  • Specific known issues are fixed.

V3.25.0

Feature updates

  • The Picture-in-Picture (PiP) feature is added. You can add the PiP effect on the editing user interface (UI).
  • The subtitle animation feature is added. You can create animation effects for subtitles and word art.
  • The custom thumbnail feature is added for videos in the draft box.
  • Specific known issues are fixed.

V3.24.0

Feature updates

  • The short video SDK for iOS is optimized and support for software encoding based on FFmpeg is removed.
  • The issue where the background color setting does not take effect during cropping and editing is fixed.
  • Specific known issues are fixed.

V3.23.0

Feature updates

  • The draft box feature is added. This feature allows you to export drafts.
  • The background color and alignment features are added for subtitles.
  • Echoes can be removed during duet recording.
  • The retouching module in the demo is replaced with Queen SDK.
  • Six screen-split filter effects are added to the demo.
  • Temporary video files can be automatically deleted after the video is recorded.
  • HDR video editing and cropping are supported.

V3.22.0

Feature updates

  • The word art feature is supported in the editing module.
  • Duet recording from different recording sources is supported.
  • Partial screenshots can be taken.
  • The built-in time variable BUILTIN_PROGRESS is added to the Shader class of custom special effects.
  • The stability of the short video SDK for iOS is improved in specific scenarios.

Changes to API operations

  • The following API operation is added:

    (AliyunStickerManager *)getStickerManager;

  • The following API operations are deprecated:
    • (AliyunPasterManager *)getPasterManager;
    • (id<AliyunIPasterRender>)getPasterRender;

V3.21.0

Feature updates

  • View levels can be adjusted and border effects can be configured for duet recording.
  • Mirrored videos can be imported and edited.
  • The memory usage during software encoding is optimized.
  • The stability of the short video SDK for iOS is improved.

V3.20.0

Feature updates

  • The audio fade-in and fade-out effects are added to the editing module.
  • The subtitle combination feature is added to the editing module.
  • Basic editing features are added to the editing module.
  • Video thumbnails can be obtained at specified timestamps.
  • The issue where the frame rate configured for an exported video does not take effect is fixed.
  • The stability of the short video SDK for iOS is improved.

V3.19.0

Feature updates

  • The noise reduction feature is added to the editing module.
  • The background image and background color can be specified during duet recording and video merging.
  • Audio tracks can be merged during duet recording and video merging.
  • Echoes can be removed during duet recording.
  • The issue where the halo color changes when a transparent halo effect is applied to a watermark or an image is fixed.
  • The issue where the added static images are not rotated to the specified angle is fixed.

Changes to API operations

The following API operation is deprecated:

AliyunCamera & AliyunIRecorder, @property(nonatomic, assign) BOOL useAudioSessionModeVideoRecording;

V3.18.1

Feature updates

The issue where a memory leak occurs when hardware encoding is used on specific iOS devices is fixed.

V3.18.0

Feature updates

Audio track options are added for duet recording. You can mute the audio, use the original audio, or use a recorded audio.

V3.17.1

Feature updates

  • The scaling mode is supported for front cameras.
  • The issue where Open Graphics Library (OpenGL) unexpectedly exits applications on specific devices after a video is produced is fixed.

V3.17.0

Feature updates

  • The lively female voice effect is optimized, and the voice effects of Chinese dialects are added.
  • The issue where the screen turns green when a video filmed on iPhone 12 is imported to the cropping or editing module is fixed.

V3.16.2

Feature updates

The Gaussian blur effect for the background is improved.

V3.16.1

Feature updates

The issue where recorded videos cannot be merged with existing videos whose lengths are shorter than the length of the recorded videos is fixed.

V3.16.0

Feature updates

  • The mainstream animation effects are restored.
  • The issue of intermittent unexpected exits that users report is fixed.
  • The issue where stuttering occurs during the playback of long videos is fixed.
  • The issue where the watermark is not displayed in the specified direction when a video is recorded in landscape mode is fixed.

V3.15.0

Feature updates

  • The issue where stuttering occurs during the playback of produced videos is fixed.
  • The issue where the speed of multiple clips cannot be changed at the same time is fixed.
  • Two sets of transitions, filter effect transitions, and filters are added based on the specifications for the production of custom effects.

Changes to API operations

  • An API operation that allows you to modify the parameters of custom effects in real time is added.
  • Custom filters and custom transition effects are supported. For more information about the specifications for production of custom effects, see the official documentation.

V3.14.0

Feature updates

  • The cropping module is optimized to avoid chromatic distortion when a video is cropped multiple times.
  • The stability of the recording module is optimized. Issues such as unexpected background exit and hardware resource occupation are fixed.
  • Memory leaks are fixed and the performance of specific modules is optimized.

Fixed issues

  • The issue where the system gets stuck when the application is switched to the background during recording is fixed.
  • The issue where exceptions occur when audio resources are occupied during recording is fixed.
  • The issue where background color settings do not take effect is fixed.
  • The issue where a part of the playback image is enlarged after the view of the editing module is changed on iOS devices is fixed.
  • Memory leaks and other specific issues are fixed.

Changes to API operations

The AliyunVideoSDKPro.framework dynamic framework is split into the AliyunVideoSDKPro.framework static framework and the AliyunVideoCore.framework dynamic framework. To manually integrate the short video SDK for iOS,

see Integrate the short video SDK for iOS.

V3.13.0

Feature updates

  • The stability and performance of the recording module are optimized.
  • The retouching and face shaping features based on the Render And Compute Everything (RACE) engine are added to the recording module.
  • The smoothness of H.265 videos is improved in the editing module.

Changes to API operations

The API operations for music videos (MVs) are deprecated in the recording module. The feature of adding MVs is removed.

V3.12.0

Feature updates

  • The log analysis feature is supported, and the AliyunVideoSDKInfo setDebugLogLevel method is added. You can call this method to specify whether to enable the feature. The following three options are supported:
    AlivcDebugLogClose: disables the log analysis feature.
    AlivcDebugLogNormal: analyzes warning or error logs. We recommend that you use this option to analyze logs.
    AlivcDebugLogAll: analyzes all logs. We recommend that you use this option only for troubleshooting. We also recommend that you do not use this option in the official release because this option can be used only to analyze the logs of the short video SDK for iOS.                       
  • The performance of the editing module is improved.

Fixed issues

The issue where the thread of the recording process continues to run even if the recording process is stopped is fixed.

Changes to API operations

The applyRunningDisplayMode API operation is removed from the editing module.

V3.11.0

Feature updates

  • The start and stop speeds of clip recording and the video production speed are improved.
  • The granularity and accuracy of the recording progress callback are improved.
  • The group of pictures (GOP) size is adjusted to improve the transcoding speed in specific scenarios.
  • The time that is required to switch between cameras is reduced.

Fixed issues

  • The issue where the number of frames in a GIF image is incorrectly parsed is fixed.
  • The issue where specific videos stutter when they are played in reverse is fixed.
  • The issue where the duration displayed for a recorded video is not accurate is fixed.
  • The issue where the video and audio in recorded multi-clip videos are out of sync is fixed.

Changes to API operations

  • All error codes are integrated into AliyunVideoCoreError.
  • The NSString* AlivcErrorMessage(int code) method that is used to obtain error descriptions is added.

V3.10.5

Feature updates

  • AliyunMixRecorder that is used for duet recording is added.
  • AliyunMixComposer is added. It can be used to add effects such as PiP and horizontal screen-split.

V3.10.0

Feature updates

  • The sinister and minion voice effects are added to the editing module.
  • Videos in the MJPEG format can be edited.
  • The compatibility with specific damaged video files is improved for playback during editing.
  • The draw method that can be used to forcibly draw a frame during editing is added.

Fixed issues

  • The issue where the duration displayed for a recorded video clip is not accurate is fixed.
  • The issue where the watermark added during recording disappears when the application is switched to the background is fixed.
  • The issue where stuttering occurs when you switch between the front and rear cameras during recording is fixed.
  • The issue where an unexpected crash occurs when the application is switched to the background during the export of a video in the editing module is fixed.

V3.9.0

Feature updates

  • New voice effects including lively female voice, husky male voice, reverberation, and echo are added.
  • The seeking performance during editing is improved.
  • The stability of the short video SDK for iOS is improved.

V3.8.0

Feature updates

  • The recording stability is improved.
  • The accuracy of selecting a time period during cropping is improved.
  • The playback feature during editing is optimized.
  • The video production speed for the editing module is improved.
  • Specific bugs are fixed.
  • The video production can be paused after the application is switched to the background and resumed after the application is switched back.
  • To continue to meet the requirement of SDK stability monitoring and data-related requirements in the future, you must add the AlivcConan.framework dependency to the short video SDK. In CocoaPods integration, you must add pod 'AlivcConan', '0.9.0' to the Podfile. For more information, see the demo code.

V3.7.7

Feature updates

  • The stability of the short video SDK for iOS is improved.
  • The resolution of cropped and produced videos is improved.

V3.7.5

Feature updates

  • The issue where a display exception occurs during reverse playback of High Efficiency Video Coding (HEVC) videos that are generated by iOS 12 is fixed.
  • The issue where unexpected exits may occur when a third-party rendering API operation is used in editing is fixed.
  • The playback smoothness of videos with time effects is improved.
  • The compatibility with GIF images is improved.
  • Videos with odd resolutions can be imported.
  • Audio and video synchronization during multi-clip recording is optimized.
  • The stability of the short video SDK for iOS is improved.

V3.7.0

Feature updates

  • New transition effects including fade-in, fade-out, polygon, and blinds are added.
  • The animation feature is added. Basic animations such as rotation, translation, scaling, and alpha and custom animations such as linear erasure are supported.
  • The Gaussian blur effect can be added to a specified stream in a specified period of time.
  • The display mode such as padding or cropping can be set for a specified stream in a specified period of time.
  • The dubbing feature that supports multi-track dubbing and speed ramping is added.
  • Multiple speed ramping effects can be added to a multi-clip video. Note that the repetition and reverse playback effects can only be added to a single-clip video.

Changes to API operations

  • The API operation that you need to call after preview ends in the editing module is changed from play to replay.
  • The prepare API operation that is used to preload data is added to the editing module. Call this operation after you call startEdit.
  • The reference coordinates that indicate the position and size of watermarks are changed to the output resolution coordinates.
  • The logic for adding a transition is modified. You must call stopEdit before you add a transition. After the transition is added, call startEdit.
  • The delegate attribute is deleted from AliyunPasterController.
  • The destroyAllEffect operation is deleted from AliyunEditor.
  • QuCore-ThirdParty.framework is changed to alivcffmpeg.framework.

V3.6.5.5

Feature updates

Xcode 10.x is supported in the short video SDK for iOS.

V3.6.5.3

Feature updates

  • The issue where an unexpected crash occurs when you enable the MV lock screen during recording is fixed.
  • The issue where a filter is not displayed in the specified period of time during reverse playback is fixed.
  • The issue where the incorrect color gamut is displayed for specific videos is fixed.
  • Audio files in the AAC SBR format are supported.

V3.6.5

Feature updates

  • The issue where an unexpected crash occurs when you export a video is fixed.
  • The smoothness of videos during reverse playback is improved.

V3.6.0

Feature updates

Package name and size
Package name Size (Unit: MB)
AliyunVideoSDKPro.framework3.5.0 release 4.9M
AliyunVideoSDKPro.framework3.5.0 debug 10.1M
AliyunVideoSDKPro.framework3.6.0 release 7.6M
AliyunVideoSDKPro.framework3.6.0 debug 15.7M
QuCore-ThirdParty.framework3.5.0 release 9.3M
QuCore-ThirdParty.framework3.5.0 debug 23.1M
QuCore-ThirdParty.framework3.6.0 release 10.2M
QuCore-ThirdParty.framework3.6.0 debug 23.2M
Note You must replace AliyunVideoSDKPro.framework and QuCore-ThirdParty.framework at the same time. Otherwise, exceptions such as a crash during production may occur.

Changes to API operations

  • API operations related to watermarks
    The (void)setWaterMark:frame operation is deprecated and the (void)setWaterMark operation is added. See the following sample code:
    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:effectImag];
  • API operations related to end watermarks
    V3.6.0 provides the (void)setTailWaterMark operation that allows you to configure an end watermark for a video and view the end watermark when you preview the video. See the following sample code:
    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];
  • New API operations used to add music
    • Multiple audio streams can be mixed in V3.6.0. If you want to add only one audio stream, call the removeMusics operation. See the following sample code:
      AliyunEffectMusic *music = [[AliyunEffectMusic alloc] initWithFile:path];
      [self.editor removeMusics]; // Call this operation if you want to add only one audio stream.
      [self.editor applyMusic:music];
    • If you want to add music, call the (void)removeMVMusic operation. Example: AliyunEffectMusic *music = [[AliyunEffectMusic alloc] initWithFile:path].
      [self.editor removeMVMusic];
      [self.editor removeMusics];
      [self.editor applyMusic:music];
    • The playback of a specified part of a music stream is supported in V3.6.0. The following sample code shows how to specify a time range:
      AliyunEffectMusic music = [[AliyunEffectMusic alloc] initWithFile:path];
      music.startTime = startTime; // Specify the start time of the part of the music stream that you want to play.
      music.duration = duration; // Specify the duration of the part of the music stream that you want to play.
      music.streamStartTime = streamStart [_player getStreamDuration]; // Specify the point in time on the playback timeline when the music stream starts.
      music.streamDuration = streamDuration * [_player getStreamDuration]; // Specify the playback duration of the music stream on the playback timeline.
  • New API operations used to display time effects
    • The (void)addTimelineTimeFilterItem operation is added to the demo. For information about the code, see the demo.
    • Time effects and filters affect each other.
      If you add a filter when speed ramping applies to the entire video or the video is played in reverse, make sure that the filter is displayed in the specified time period. Relevant code in V3.6.0 is included in the following API operations:
      (void)didBeganLongPressEffectFilter:(AliyunEffectFilterInfo *)animtinoFilterInfo;
      (void)didTouchingProgress;
      (void)didEndLongPress;
      Sample code:
      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; // The streamStartTime parameter is added. You must configure this parameter when a time effect is applied.
      animationFilter.streamEndTime = [self.player getStreamDuration]; // The streamEndTime parameter is added. You must configure this parameter when a time effect is applied.
      [self.editor applyAnimationFilter:animationFilter];

      For compatibility with earlier versions, you can set the startTime and endTime parameters if no time effect is applied. In this case, the streamStartTime and streamEndTime parameters are not required.

  • New API operations related to time effects
    The new API operations can be used in V3.5.0 without causing compatibility issues. For more information about the code, see the V3.6.0 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];
  • Modification of playback status and relevant API operations, such as the operations used to switch screens and switch between the foreground and background
    Compared with V3.5.0, the operations that are used to switch screens and switch between the foreground and background are internally handled in V3.6.0.
    • The (void)setActive operation is deprecated.
    • Handling of viewWillAppear and viewWillDisappear: When the viewWillDisappear callback is returned, you do not need to call the stopEdit operation to destroy the AliyunEdit instance. You need only to call the stop method to stop the playback. Similarly, when the viewWillAppear callback is returned, you need only to call the play method to restart the playback.
    • Handling when the application is switched to the background or foreground:

      When the application is switched to the background, the short video SDK stops playing or exporting the video. When the application is switched to the foreground, the short video SDK restarts or pauses the video playback.

      Error handling:

      In V3.6.0, when an error occurs during playback or export, the playback or export is stopped and the error is returned in the playError or exportError callback. You can handle the error as needed.

  • The following operations of the AliyunImporter class are deprecated. For compatibility with earlier versions, these operations can still be called in V3.6.0.
    • (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

    You can construct an AliyunClip object and call the (void)addMediaClip:(AliyunClip*)clip operation to add a video clip. See the following sample code:

    AliyunImporter *importor = [[AliyunImporter alloc] initWithPath:root outputSize:_compositionConfig.outputSize];
    AliyunClip *clip = [[AliyunClip alloc] initWithVideoPath:info.sourcePath startTime:info.startTime duration:info.duration animDuration:i == 0 ? 0 : 1];
    [importor addMediaClip:clip];
Note Before you use time effects, make sure that you know basic concepts about the player.
  • /* Obtain the total playback duration. Unit: seconds. @return total duration. /

    (double)getDuration

  • /* Obtain the elapsed time since the video started playing. Unit: seconds. /

    (double)getCurrentTime

  • /* Obtain the duration of the original video stream. Unit: seconds. @return total duration. /

    (double)getStreamDuration

  • /* Obtain the elapsed time since the original video stream started playing. Unit: seconds. /

    (double)getCurrentStreamTime

Examples

  • If the duration of a video is 15 seconds and the video is played at twice the speed, getDuration is 7.5 seconds. If getCurrentTime is 3.5 seconds, getStreamDuration is 15 seconds and getCurrentStreamTime is 7 seconds.
  • If the duration of a video is 15 seconds and the video is played at half the speed, getDuration is 30 seconds. If getCurrentTime is 10 seconds, getStreamDuration is 15 seconds and getCurrentStreamTime is 5 seconds.
  • If the duration of a video is 15 seconds and the video is played in reverse, getDuration is 15 seconds. If getCurrentTime is 6 seconds, getStreamDuration is 15 seconds and getCurrentStreamTime is 9 seconds.

In the preceding examples, the time effect is used on the entire video. If the time effect is used only on a part of the video, the playback duration, stream duration, and playback positions are obtained based on the same rules.

Others

ReleaseNote

  • New API operations used to add time effects
    • (int)applyTimeFilter:(AliyunEffectTimeFilter *)filter
    • (int)removeTimeFilter
  • The following operations of the AliyunImporter class 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
      You can construct an AliyunClip object and call the (void)addMediaClip:(AliyunClip*)clip operation to add a video clip. See the following sample code:
      AliyunImporter importor = [[AliyunImporter alloc] initWithPath:root outputSize:_compositionConfig.outputSize];
      AliyunClip *clip = [[AliyunClip alloc] initWithVideoPath:info.sourcePath startTime:info.startTime duration:info.duration animDuration:i == 0 ? 0 : 1];
      [importor addMediaClip:clip];
  • Modification of playback status and relevant API operations: Compared with V3.5.0, the operations that are used to switch screens and switch between the foreground and background are internally handled in V3.6.0.

    The (void)setActive operation is deprecated.

    Handling of viewWillAppear and viewWillDisappear: When the viewWillDisappear callback is returned, you do not need to call the stopEdit operation to destroy the AliyunEdit instance. You need only to call the stop method to stop the playback. Similarly, when the viewWillAppear callback is returned, you need only to call the play method to restart the playback.

    Handling when the application is switched to the background or foreground: When the application is switched to the background, the short video SDK stops playing or exporting the video. When the application is switched to the foreground, the short video SDK restarts or pauses the video playback.

    Error handling: In V3.6.0, when an error occurs during playback or export, the playback or export is stopped and the error is returned in the playError or exportError callback. You can handle the error as needed.

  • New API operations related to the player
    • (double)getStreamDuration; // Obtain the duration of the original video stream. Unit: seconds.
    • (double)getCurrentStreamTime; // Obtain the elapsed time since the original video stream started playing. Unit: seconds.
  • API operations related to watermarks
    • The (void)setWaterMark: frame operation is deprecated.
    • The (void)setWaterMark:(AliyunEffect*)waterMark operation is added.
    • The (void)setTailWaterMark operation can be called to set an end watermark, which can be previewed.
  • New API operations used to add music
    • Multiple audio streams are supported. The specified part of an audio stream can be played. If you want to add only one audio stream, call the removeMusics operation. Example:
      AliyunEffectMusic *music = [[AliyunEffectMusic alloc] initWithFile:path];
      [self.editor removeMusics]; // Call this operation if you want to add only one audio stream. 
      [self.editor applyMusic:music];
    • A specified part of a music stream can be played. Example:
      AliyunEffectMusic music = [[AliyunEffectMusic alloc] initWithFile:path];
      music.startTime = startTime; // Specify the start time of the part of the music stream that you want to play.
      music.duration = duration; // Specify the duration of the part of the music stream that you want to play.
      music.streamStartTime = streamStart [_player getStreamDuration]; // Specify the point in time on the playback timeline when the music stream starts.
      music.streamDuration = streamDuration * [_player getStreamDuration]; // Specify the playback duration of the music stream on the playback timeline.