You need to enable JavaScript to run this app.
导航
画质测评
最近更新时间:2024.09.14 11:16:51首次发布时间:2024.09.14 11:16:51

阅读本文,您可以获取 Go SDK 画质测评的接口调用示例,实现快速开发。

说明

本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。

调用说明

  • 本文提供的接口调用示例均通过 AK 和 SK 初始化实例。
  • 接口的参数说明和错误码等信息可通过接口文档或打开 API Explorer文档说明页签查看。

前提条件

调用接口前,请先完成 Go SDK 的安装及初始化操作。

调用示例

本节为您介绍画质测评相关接口的功能和调用示例。

创建画质评测任务

您可以调用 CreateLiveVideoQualityAnalysisTask 接口创建画质评测任务。详细的参数说明可参见 CreateLiveVideoQualityAnalysisTask 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	live "github.com/volcengine/volc-sdk-golang/service/live/v20230101"
)

func StringPtr(v string) *string {
	return &v
}

func Int32Ptr(v int32) *int32 {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := live.NewInstance()
	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &live.CreateLiveVideoQualityAnalysisTaskBody{
		// 任务名称,默认为空,进行中任务名称不可重复,长度需小于 16 个字符。
		Name: StringPtr(`test`),
		// 待测评流的播放地址,支持 FLV、HLS、RTMP 拉流地址。
		SrcURL: `https://pull.example.com/live/example.flv`,
		// 画质测评的打点间隔,单位为秒,默认为 10,取值范围为 [3,10]。
		Interval: Int32Ptr(5),
		// 测评任务持续时长,单位为秒,默认为 180,取值范围为 [60,300]。
		Duration: Int32Ptr(300),
	}

	resp, err := service.CreateLiveVideoQualityAnalysisTask(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

查询画质评测任务列表

您可以调用 ListLiveVideoQualityAnalysisTasks 接口查询画质评测任务列表。详细的参数说明可参见 ListLiveVideoQualityAnalysisTasks 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	live "github.com/volcengine/volc-sdk-golang/service/live/v20230101"
)

func StringPtrs(vals []string) []*string {
	ptrs := make([]*string, len(vals))
	for i := 0; i < len(vals); i++ {
		ptrs[i] = &vals[i]
	}
	return ptrs
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := live.NewInstance()
	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &live.ListLiveVideoQualityAnalysisTasksBody{
		// 查询数据的页码,取值范围为正整数。
		PageNum: 1,
		// 每页显示的数据条数,最大是为 1000。
		PageSize: 10,
	}

	// 查询的任务名称列表,默认为空,表示查询结果不对任务名称进行筛选。
	// note:
	// Name 和 ID 不可同时传入。
	Names := []string{"test"}

	body.Names = StringPtrs(Names)

	// 查询的任务 ID 列表,默认为空,表示查询结果不对任务 ID 进行筛选。
	// note:
	// Name 和 ID 不可同时传入。
	IDs := []string{"23123***55t523"}

	body.IDs = StringPtrs(IDs)

	resp, err := service.ListLiveVideoQualityAnalysisTasks(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

查询单个画质测评任务详情

您可以调用 GetLiveVideoQualityAnalysisTaskDetail 接口查询单个画质测评任务详情。详细的参数说明可参见 GetLiveVideoQualityAnalysisTaskDetail 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	live "github.com/volcengine/volc-sdk-golang/service/live/v20230101"
)

func StringPtr(v string) *string {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := live.NewInstance()
	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &live.GetLiveVideoQualityAnalysisTaskDetailBody{
		// 查询的任务名称。
		// note:
		// Name 和 ID 二选一必填。
		Name: StringPtr(`test`),
		// 查询的任务 ID。
		// note:
		// Name 和 ID 二选一必填。
		ID: StringPtr(`cbxmc`),
	}

	resp, err := service.GetLiveVideoQualityAnalysisTaskDetail(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

删除画质测评任务

您可以调用 DeleteLiveVideoQualityAnalysisTask 接口删除画质测评任务。详细的参数说明可参见 DeleteLiveVideoQualityAnalysisTask 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	live "github.com/volcengine/volc-sdk-golang/service/live/v20230101"
)

func StringPtr(v string) *string {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := live.NewInstance()
	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &live.DeleteLiveVideoQualityAnalysisTaskBody{
		// 待删除任务的任务名称。
		// note:
		// Name 和 ID 二选一必填。
		Name: StringPtr(`test`),
		// 待删除任务的任务 ID。
		// note:
		// Name 和 ID 二选一必填。
		ID: StringPtr(`cbxmc`),
	}

	resp, err := service.DeleteLiveVideoQualityAnalysisTask(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}