すべてのプロダクト
Search
ドキュメントセンター

:ビデオ編集

最終更新日:Jun 23, 2022

このトピックでは、ビデオ編集モジュールのAPI操作の使用方法の例を示します。 API操作は、ApsaraVideo VOD SDK for Javaにカプセル化されています。 You can call the API operations to create, modify, and delete online editing projects. オンライン編集プロジェクトの詳細を照会して、ビデオアセンブリタスクを作成することもできます。

クライアントを初期化

SDKを使用する前に、クライアントを初期化してください。 詳細については、「初期化」をご参照ください。

Create a video assembly task based on a timeline

ProduceEditingProjectVideo操作を呼び出して、タイムラインに基づいてビデオアセンブリタスクを作成できます。

The timeline method is most commonly used to assemble videos. For more information about the request and response parameters of this operation, see ProduceEditingProjectVideo. 例:

説明

For more examples on how to assemble videos based on timelines, see Video assembly.

import com.aliyuncs.vod.model.v20170321.ProduceEditingProjectVideoRequest;
import com.aliyuncs.vod.model.v20170321.ProduceEditingProjectVideoResponse;

    /**
     * Sample Code
     */
    public static void main(String[] args) throws Exception {
        DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");

        ProduceEditingProjectVideoRequest request = new ProduceEditingProjectVideoRequest();
        // Build Editing Project Timeline
        request.setTimeline(buildTimeline());
        // Set Produce Media Metadata
        request.setMediaMetadata(buildMediaMetadata());
        // Set Produce Configuration
        request.setProduceConfig(buildProduceConfig());

        ProduceEditingProjectVideoResponse response = null;
        try {
            response = client.getAcsResponse(request);
            if (response != null){
                // Produce Media ID
                System.out.println("MediaId:" + response.getMediaId());
                // リクエストID
                System.out.println("RequestId:" + response.getRequestId());
            }
        } catch (ServerException e){
            System.out.println("ServerError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (ClientException e) {
            System.out.println("ClientError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
    }

    public static String buildMediaMetadata(){
        JSONObject mediaMetadata = new JSONObject();
        // Produce Media Title
        mediaMetadata.put("タイトル" 、"タイトル");
        // メディアの説明を作成する
        mediaMetadata.put("Description", "Description");
        // メディアユーザー定義カバーURLを作成する
        mediaMetadata.put("CoverURL", "http://192.168.0.0/16/media/cover/mediaid.jpg");
        // メディアカテゴリIDを作成する
        mediaMetadata.put("CateId" 、null);
        // Produce Media Category Name
        mediaMetadata.put("Tags", "Tag1,Tag2,Test");
        mediaMetadata.toString() を返します。
    }

    public static String buildProduceConfig(){
        JSONObject produceConfig = new JSONObject();
        /*
         生産プロセスはメディアメザニンファイルを生成できます。 メザニンファイルを使用して、他のメディアファイルをトランスコードできます。 このトランスコードプロセスは、ファイルアップロードが終了した後のプロセスと同様です。 このフィールドは、メザニンが完成した後のTransocde TemplateGroup IDを表します。
         1。 不要 
         2. Use default transcode template group id when empty
         */
        produceConfig.put("TemplateGroupId" 、null);
        produceConfig.toString() を返します。
    }

    /**
     * This Sample shows how to merge two videos
     */
    public static String buildTimeline(){
        JSONObject timeline = new JSONObject();

        // ビデオトラック
        JSONArray videoTracks = new JSONArray();
        JSONObject videoTrack = new JSONObject();

        // ビデオトラッククリップ
        JSONArray videoTrackClips = new JSONArray();
        JSONObject videoTrackClip1 = new JSONObject();
        videoTrackClip1.put("MediaId" 、"11119b4d7cf14dc7b83b0e801cbe ****");
        videoTrackClips.add(videoTrackClip1);
        JSONObject videoTrackClip2 = new JSONObject();
        videoTrackClip2.put("MediaId" 、"22229b4d7cf14dc7b83b0e801cbe ****");
        videoTrackClips.add(videoTrackClip2);

        videoTrack.put("VideoTrackClips" 、videoTrackClips);
        videoTracks.add(videoTrack);

        timeline.put("VideoTracks", videoTracks);

        return timeline.toString();
    }

オンライン編集プロジェクトに基づいてビデオアセンブリタスクを作成する

ProduceEditingProjectVideo操作を呼び出して、オンライン編集プロジェクトに基づいてビデオアセンブリタスクを作成できます。

オンライン編集と管理の要件が高い場合は、この方法を使用することをお勧めします。 For more information about the request and response parameters of this operation, see ProduceEditingProjectVideo. 例:

com.aliyuncs.vod.mo del.v20170321.ProduceEditingProjectVideoRequestをインポートします。com.aliyuncs.vod.mo del.v20170321.ProduceEditingProjectVideoResponseをインポートします。

    /**
     * サンプルコード
     */
    public static void main(String[] args) throws Exception {
        DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");

        ProduceEditingProjectVideoRequest request = new ProduceEditingProjectVideoRequest();
        // 作成するプロジェクトIDの編集を設定する
        request.setProjectId("ProjectId");
        // メディアメタデータの作成を設定する
        request.setMediaMetadata(buildMediaMetadata());
        // 作成設定の設定
        request.setProduceConfig(buildProduceConfig());

        ProduceEditingProjectVideoResponseレスポンス=null;
        try {
            response = client.getAcsResponse(request);
            if (response != null){
                // メディアIDの作成
                System.out.println("MediaId:" + response.getMediaId());
                // Request ID
                System.out.println("RequestId:" + response.getRequestId());
            }
        } catch (ServerException e){
            System.out.println("ServerError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (ClientException e) {
            System.out.println("ClientError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
    }

    public static String buildMediaMetadata(){
        JSONObject mediaMetadata = new JSONObject();
        // メディアタイトルを作成する
        mediaMetadata.put("タイトル" 、"タイトル");
        // メディアの説明を作成する
        mediaMetadata.put("Description", "Description");
        // メディアユーザー定義カバーURLを作成する
        mediaMetadata.put("CoverURL" 、"http:// 192.168.0.0/16/media/cover/mediaid.jpg");
        // メディアカテゴリIDを作成する
        mediaMetadata.put("CateId" 、null);
        // メディアカテゴリ名を作成する
        mediaMetadata.put("タグ" 、"Tag1、Tag2、テスト");
        mediaMetadata.toString() を返します。
    }

    public static String buildProduceConfig(){
        JSONObject produceConfig = new JSONObject();
        /*
         生産プロセスはメディアメザニンファイルを生成できます。 メザニンファイルを使用して、他のメディアファイルをトランスコードできます。 このトランスコードプロセスは、ファイルアップロードが終了した後のプロセスと同様です。 This field describe the Transocde TemplateGroup ID after produce mezzanine finished.
         1。 不要 
         2. Use default transcode template group id when empty
         */
        produceConfig.put("TemplateGroupId" 、null);
        produceConfig.toString() を返します。
    }

Create an online editing project

AddEditingProject操作を呼び出して、オンライン編集プロジェクトを作成できます。

For more information about the request and response parameters of this operation, see AddEditingProject. 例:

com.aliyuncs.vod.mo del.v20170321.AddEditingProjectRequestをインポートします。com.aliyuncs.vod.mo del.v20170321.AddEditingProjectResponseをインポートします。

    /**
     * サンプルコード
     */
    public static void main(String[] args) throws Exception {
        DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");

        AddEditingProjectRequest request = new AddEditingProjectRequest();
        // 編集プロジェクトのタイムラインを構築する
        request.setTimeline(buildTimeline());
        // プロジェクトタイトルの編集を設定する
        request.setTitle("プロジェクトタイトルの編集");
        // Set Editing Project Description
        request.setDescription("プロジェクト説明の編集");
        // 編集プロジェクトカバーURLの設定
        request.setCoverURL("http://192.168.0.0/16/editingproject/cover/projectid.jpg");

        AddEditingProjectResponse response = null;
        try {
            response = client.getAcsResponse(request);
            if (response != null){
                if (response.getProject() != null){
                    System.out.println("Editing Project ID:" + response.getProject().getProjectId());
                    System.out.println("Editing Project Title:" + response.getProject().getTitle());
                    System.out.println("Editing Project Create Time:" + response.getProject().getCreationTime());
                    System.out.println("Editing Project Description:" + response.getProject().getDescription());
                    System.out.println("Editing Project Status:" + response.getProject().getStatus());
                }

                // Request ID
                System.out.println("RequestId:" + response.getRequestId());
            }
        } catch (ServerException e){
            System.out.println("ServerError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (ClientException e) {
            System.out.println("ClientError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
    }

    /**
     * このサンプルは、2つのビデオをマージする方法を示します
     */
    public static String buildTimeline(){
        JSONObjectタイムライン=new JSONObject();

        // ビデオトラック
        JSONArray videoTracks = new JSONArray();
        JSONObject videoTrack = new JSONObject();

        // ビデオトラッククリップ
        JSONArray videoTrackClips = new JSONArray();
        JSONObject videoTrackClip1 = new JSONObject();
        videoTrackClip1.put("MediaId" 、"11119b4d7cf14dc7b83b0e801cbe ****");
        videoTrackClips.add(videoTrackClip1);
        JSONObject videoTrackClip2 = new JSONObject();
        videoTrackClip2.put("MediaId" 、"22229b4d7cf14dc7b83b0e801cbe ****");
        videoTrackClips.add(videoTrackClip2);

        videoTrack.put("VideoTrackClips" 、videoTrackClips);
        videoTracks.add(videoTrack);

        timeline.put("VideoTracks" 、videoTracks);

        return timeline.toString();
    }

Modify an online editing project

UpdateEditingProject操作を呼び出して、オンライン編集プロジェクトを変更できます。

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「UpdateEditingProject」をご参照ください。 例:

com.aliyuncs.vod.mo del.v20170321.UpdateEditingProjectRequestをインポートします。com.aliyuncs.vod.mo del.v20170321.UpdateEditingProjectResponseをインポートします。

    /**
     * サンプルコード
     */
    public static void main(String[] args) throws Exception {
        DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");

        UpdateEditingProjectRequest request = new UpdateEditingProjectRequest();
        request.setProjectId("YourProjectId");
        // 編集プロジェクトのタイムラインを設定する
        request.setTimeline(buildTimeline());
        // プロジェクトタイトルの編集を設定する
        request.setTitle("プロジェクトタイトルの編集");
        // 編集プロジェクトの説明を設定する
        request.setDescription("プロジェクト説明の編集");
        // 編集プロジェクトカバーURLの設定
        request.setCoverURL("http:// 192.168.0.0/16/editingproject/cover/projectid.jpg");

        UpdateEditingProjectResponseレスポンス=null;
        try {
            response = client.getAcsResponse(request);
            if (response != null){
                // リクエストID
                System.out.println("RequestId:" + response.getRequestId());
            }
        } catch (ServerException e){
            System.out.println("ServerError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (ClientException e) {
            System.out.println("ClientError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
    }

    /**
     * このサンプルは、2つのビデオをマージする方法を示します
     */
    public static String buildTimeline(){
        JSONObjectタイムライン=new JSONObject();

        // ビデオトラック
        JSONArray videoTracks = new JSONArray();
        JSONObject videoTrack = new JSONObject();

        // ビデオトラック
        JSONArray videoTrackClips = new JSONArray();
        JSONObject videoTrackClip1 = new JSONObject();
        videoTrackClip1.put("MediaId" 、"11119b4d7cf14dc7b83b0e801cbe ****");
        videoTrackClips.add(videoTrackClip1);
        JSONObject videoTrackClip2 = new JSONObject();
        videoTrackClip2.put("MediaId" 、"22229b4d7cf14dc7b83b0e801cbe ****");
        videoTrackClips.add(videoTrackClip2);

        videoTrack.put("VideoTrackClips" 、videoTrackClips);
        videoTracks.add(videoTrack);

        timeline.put("VideoTracks" 、videoTracks);

        return timeline.toString();
    }

オンライン編集プロジェクトの削除

DeleteEditingProject操作を呼び出して、オンライン編集プロジェクトを削除できます。

For more information about the request and response parameters of this operation, see DeleteEditingProject. 例:

com.aliyuncs.vod.mo del.v20170321.DeleteEditingProjectRequestをインポートします。com.aliyuncs.vod.mo del.v20170321.DeleteEditingProjectResponseをインポートします。

    /**
     * サンプルコード
     */
    public static void main(String[] args) throws Exception {
        DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");

        DeleteEditingProjectRequest request = new DeleteEditingProjectRequest();
        // コンマを使用してマルチ編集プロジェクトIDを分割する
        request.setProjectIds("projectid1,projectid2");
        DeleteEditingProjectResponseレスポンス=null;
        try {
            response = client.getAcsResponse(request);
            if (response != null){
                // リクエストID
                System.out.println("RequestId:" + response.getRequestId());
            }
        } catch (ServerException e){
            System.out.println("ServerError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (ClientException e) {
            System.out.println("ClientError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
    }

オンライン編集プロジェクトの照会

GetEditingProject操作を呼び出して、オンライン編集プロジェクトの詳細を照会できます。

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「GetEditingProject」をご参照ください。 例:

com.aliyuncs.vod.mo del.v20170321.GetEditingProjectRequestをインポートします。com.aliyuncs.vod.mo del.v20170321.GetEditingProjectResponseをインポートします。

    /**
     * サンプルコード
     */
    public static void main(String[] args) throws Exception {
        DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");

        GetEditingProjectRequest request=新しいGetEditingProjectRequest();
        request.setProjectId("projectId");

        GetEditingProjectResponseレスポンス=null;
        try {
            response = client.getAcsResponse(request);
            if (response != null){
                if (response.getProject() != null){
                    System.out.println("Editing Project ID:" + response.getProject().getProjectId());
                    System.out.println("Editing Project Timeline:" + response.getProject().getTimeline());
                    System.out.println("Editing Project Title:" + response.getProject().getTitle());
                    System.out.println("Editing Project Description:" + response.getProject().getDescription());
                    System.out.println("Editing Project Cover URL:" + response.getProject().getCoverURL());
                    System.out.println("Editing Project Create Time:" + response.getProject().getCreationTime());
                    System.out.println("Editing Project Last Modified Time:" + response.getProject().getModifiedTime());
                    System.out.println("Editing Project Status:" + response.getProject().getStatus());
                }

                // リクエストID
                System.out.println("RequestId:" + response.getRequestId());
            }
        } catch (ServerException e){
            System.out.println("ServerError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (ClientException e) {
            System.out.println("ClientError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
    }

オンライン編集プロジェクトの検索

SearchEditingProject操作を呼び出して、オンライン編集プロジェクトを検索できます。

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「SearchEditingProject」をご参照ください。 例:

com.aliyuncs.vod.mo del.v20170321.SearchEditingProjectRequestをインポートします。com.aliyuncs.vod.mo del.v20170321.SearchEditingProjectResponseをインポートします。

    /**
     * サンプルコード
     */
    public static void main(String[] args) throws Exception {
        DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");

        SearchEditingProjectRequest request=新しいSearchEditingProjectRequest();
        request.setTitle("Titleキーワード");
        request.setStartTime("2017-01-11T12:00:00Z");
        request.setEndTime("2017-01-12T12:00:00Z");
        request.setPageSize(10);
        request.setPageNo (1);

        SearchEditingProjectResponse応答=null;
        try {
            response = client.getAcsResponse(request);
            if (response != null){
                if (response.getProjectList() != null && response.getProjectList().size() > 0){
                    System.out.println("合計サイズ:" + response.getProjectList(). Size ());
                    for (int i=0; i<response.getProjectList().size(); i ++){
                        System.out.println("いいえ" i "編集プロジェクト");

                        SearchEditingProjectResponse.Project editingProject = response.getProjectList().get(i);
                        System.out.println("Editing Project ID:" + editingProject.getProjectId());
                        System.out.println("Editing Project Title:" + editingProject.getTitle());
                        System.out.println("Editing Project Description:" + editingProject.getDescription());
                        System.out.println("Editing Project Cover URL:" + editingProject.getCoverURL());
                        System.out.println("Editing Project Create Time:" + editingProject.getCreationTime());
                        System.out.println("Editing Project Last Modified Time:" + editingProject.getModifiedTime());
                        System.out.println("Editing Project Status:" + editingProject.getStatus());
                    }
                }

                // リクエストID
                System.out.println("RequestId:" + response.getRequestId());
            }
        } catch (ServerException e){
            System.out.println("ServerError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (ClientException e) {
            System.out.println("ClientError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
    }

オンライン編集プロジェクトのマテリアルを構成する

SetEditingProjectMaterials操作を呼び出して、オンライン編集プロジェクトのマテリアルを構成できます。

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「SetEditingProjectMaterials」をご参照ください。 例:

com.aliyuncs.vod.mo del.v20170321.SetEditingProjectMaterialsRequestをインポートします。com.aliyuncs.vod.mo del.v20170321.SetEditingProjectMaterialsResponseをインポートします。

    /**
     * サンプルコード
     */
    public static void main(String[] args) throws Exception {
        DefaultAcsClient client = initVodClient("<Your AccessKey ID>", "<Your AccessKey secret>");

        SetEditingProjectMaterialsRequest request = new SetEditingProjectMaterialsRequest();
        // プロジェクトIDの編集
        request.setProjectId("projectid");
        // プロジェクトマテリアルIDの編集を設定し、コンマを使用して分割する
        request.setMaterialIds("materialId1,materialId2");

        SetEditingProjectMaterialsResponseレスポンス=null;
        try {
            response = client.getAcsResponse(request);
            if (response != null){
                // リクエストID
                System.out.println("RequestId:" + response.getRequestId());
            }
        } catch (ServerException e){
            System.out.println("ServerError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (ClientException e) {
            System.out.println("ClientError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
    }

オンライン編集プロジェクトの資料を照会する

GetEditingProjectMaterials操作を呼び出して、オンライン編集プロジェクトのマテリアルを照会できます。

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「GetEditingProjectMaterials」をご参照ください。 例:

com.aliyuncs.vod.mo del.v20170321.GetEditingProjectMaterialsRequestをインポートします。com.aliyuncs.vod.mo del.v20170321.GetEditingProjectMaterialsResponseをインポートします。

    /**
     * サンプルコード
     */
    public static void main(String[] args) throws Exception {
        DefaultAcsClient client = initVodClient("<Your AccessKeyId>", "<Your AccessKeySecret>");

        GetEditingProjectMaterialsRequest request = new GetEditingProjectMaterialsRequest();
        request.setProjectId("projectid");
        request.setType("ビデオ");

        GetEditingProjectMaterialsResponseレスポンス=null;
        try {
            response = client.getAcsResponse(request);
            if (response != null){
                if (response.getMaterialList() != null && response.getMaterialList().size() > 0){
                    for (int i=0; i<response.getMaterialList().size(); i ++){
                        System.out.println("No" + i + "Material");

                        GetEditingProjectMaterialsResponse.Material=response.getMaterialList().get(i);
                        System.out.println("Editing Project Material ID:" + material.getMaterialId());
                        System.out.println("Editing Project Material Title:" + material.getTitle());
                        System.out.println("Editing Project Material Category ID:" + material.getCateId());
                        System.out.println("プロジェクト資料の編集カテゴリ名:" + Material. getCateName());
                        System.out.println("Editing Project Material Tags:" + material.getTags());
                        System.out.println("Editing Project Material Cover URL:" + material.getCoverURL());
                        System.out.println("Editing Project Material Create Time:" + material.getCreationTime());
                        System.out.println("プロジェクト資料の編集最終変更時刻:" + Material. getModifiedTime());
                    }
                }

                // リクエストID
                System.out.println("RequestId:" + response.getRequestId());
            }
        } catch (ServerException e){
            System.out.println("ServerError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (ClientException e) {
            System.out.println("ClientError code:" + e.getErrCode() + ", message:" + e.getErrMsg());
        } catch (Exception e) {
            System.out.println("ErrorMessage:" + e.getLocalizedMessage());
        }
    }