DEV Community

Cover image for Animate a Picture with the Moving Picture Capability
Jackson for HMS Core

Posted on

Animate a Picture with the Moving Picture Capability

Ever wondered how to animate a static image? The moving picture capability of Video Editor Kit has the answer. It adds authentic facial expressions to an image of faces by leveraging the AI algorithms such as face detection, face key point detection, facial expression feature extraction, and facial expression animation.
Animate a picture
Impressive stuff, right? Let's move on and see how this capability can be integrated.

Integration Procedure​

Preparations​

For details, please check the official document.

Configuring a Video Editing Project​

1.Set the app authentication information.
You can set the information through an API key or access token.
Use the setAccessToken method to set an access token during initialization when the app is started. The access token needs to be set only once.

MediaApplication.getInstance().setAccessToken("your access token");
Enter fullscreen mode Exit fullscreen mode

2.Set a License ID.
This ID is used to manage your usage quotas, so ensure that the ID is unique

MediaApplication.getInstance().setLicenseId("License ID");
Enter fullscreen mode Exit fullscreen mode

2.1 Initialize the running environment for HuaweiVideoEditor.
When creating a video editing project, first create a HuaweiVideoEditor object and initialize its running environment. When exiting a video editing project, release the HuaweiVideoEditor object.

  • Create a HuaweiVideoEditor object
HuaweiVideoEditor editor = HuaweiVideoEditor.create(getApplicationContext());
Enter fullscreen mode Exit fullscreen mode
  • Specify the position for the preview area This area renders video images, which is implemented by creating SurfaceView in the fundamental capability SDK. Ensure that the preview area position on your app is specified before creating this area.
<LinearLayout   
    android:id="@+id/video_content_layout"   
    android:layout_width="0dp"   
    android:layout_height="0dp"   
    android:background="@color/video_edit_main_bg_color"   
    android:gravity="center"   
    android:orientation="vertical" />
// Specify the preview area position.
LinearLayout mSdkPreviewContainer = view.findViewById(R.id.video_content_layout);

// Set the layout of the preview area.
editor.setDisplay(mSdkPreviewContainer);
Enter fullscreen mode Exit fullscreen mode
  • Initialize the running environment. If the license verification fails, LicenseException is thrown. After the HuaweiVideoEditor object is created, it has not occupied any system resource. You need to manually set the time for initializing the running environment of the object. Then, necessary threads and timers will be created in the fundamental capability SDK.
try {
        editor.initEnvironment();
   } catch (LicenseException error) {
        SmartLog.e(TAG, "initEnvironment failed: " + error.getErrorMsg());   
        finish();
        return;
   }
Enter fullscreen mode Exit fullscreen mode

2.2 Add a video or image.
Create a video lane and add a video or image to the lane using the file path.

// Obtain the HVETimeLine object.
HVETimeLine timeline = editor.getTimeLine();

// Create a video lane.
HVEVideoLane videoLane = timeline.appendVideoLane();

// Add a video to the end of the video lane.
HVEVideoAsset videoAsset = vidoeLane.appendVideoAsset("test.mp4");

// Add an image to the end of the video lane.
HVEImageAsset imageAsset = vidoeLane.appendImageAsset("test.jpg");
Enter fullscreen mode Exit fullscreen mode

Integrating the Moving Picture Capability​

// Add the moving picture effect.
videoAsset.addFaceReenactAIEffect(new HVEAIProcessCallback() {
        @Override
        public void onProgress(int progress) {
        // Handling progress.
        }

        @Override
        public void onSuccess() {
        // Handling success.
        }

        @Override
        public void onError(int errorCode, String errorMessage) {
        // Handling failure.
        }
    });

// Remove the moving picture effect.
videoAsset.removeFaceReenactAIEffect();
Enter fullscreen mode Exit fullscreen mode

Result

Result
This article presents the moving picture capability of Video Editor Kit. For more, check here.

Top comments (0)