Topik ini memberikan contoh penggunaan SDK ApsaraVideo for Media Processing (MPS) untuk Go V2.0 dalam mengelola template transkoding, seperti membuat, memodifikasi, menghapus, dan menanyakan template transkoding.
Prasyarat
Klien SDK telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Klien.
Buat template transkoding
Anda dapat memanggil operasi AddTemplate untuk membuat template transkoding.
Jika terjadi kesalahan
Sumber daya "Template" kuota telah habissaat Anda menambahkan template transkoding, kuota template Anda telah habis. Anda dapat submit a ticket untuk meminta kuota yang lebih tinggi.Disarankan agar Anda mencatat ID template transkoding. Anda juga dapat membuat template transkoding dan mendapatkan ID template transkoding di konsol MPS. Untuk informasi lebih lanjut, lihat Template Transkoding.
package main
import (
"encoding/json"
"strings"
"fmt"
"os"
mts20140618 "github.com/alibabacloud-go/mts-20140618/v6/client"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
)
// Deskripsi:
//
// Gunakan AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien.
//
// @return Client
//
// @throws Exception
func CreateClient () (_result *mts20140618.Client, _err error) {
config := &openapi.Config{
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.
AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
}
config.Endpoint = tea.String("mts.cn-hangzhou.aliyuncs.com")
_result = &mts20140618.Client{}
_result, _err = mts20140618.NewClient(config)
return _result, _err
}
func _main (args []*string) (_err error) {
client, _err := CreateClient()
if _err != nil {
return _err
}
addTemplateRequest := &mts20140618.AddTemplateRequest{
// Nama template.
Name: tea.String("mps-example"),
// Format kontainer.
Container: tea.String("{\"Format\":\"mp4\"}"),
// Konfigurasi transkoding untuk aliran video.
Video: tea.String("{\"Codec\":\"H.264\",\"Profile\":\"high\",\"Bitrate\":\"500\",\"Crf\":\"15\",\"Width\":\"256\",\"Height\":\"800\",\"Fps\":\"25\",\"Gop\":\"10s\"}"),
// Konfigurasi transkoding untuk aliran audio.
Audio: tea.String("{\"Codec\":\"H.264\",\"Samplerate\":\"44100\",\"Bitrate\":\"500\",\"Channels\":\"2\"}"),
// Konfigurasi transkoding umum.
TransConfig: tea.String("{\"TransMode\":\"onepass\"}"),
// Konfigurasi segmen.
MuxConfig: tea.String("{\"Segment\":{\"Duration\":\"10\"}}"),
}
runtime := &util.RuntimeOptions{}
tryErr := func()(_e error) {
defer func() {
if r := tea.Recover(recover()); r != nil {
_e = r
}
}()
// Tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika diperlukan.
_, _err = client.AddTemplateWithOptions(addTemplateRequest, runtime)
if _err != nil {
return _err
}
return nil
}()
if tryErr != nil {
var error = &tea.SDKError{}
if _t, ok := tryErr.(*tea.SDKError); ok {
error = _t
} else {
error.Message = tea.String(tryErr.Error())
}
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan ditampilkan hanya untuk referensi.
// Pesan kesalahan.
fmt.Println(tea.StringValue(error.Message))
// URL halaman diagnostik kesalahan yang sesuai.
var data interface{}
d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
d.Decode(&data)
if m, ok := data.(map[string]interface{}); ok {
recommend, _ := m["Recommend"]
fmt.Println(recommend)
}
_, _err = util.AssertAsString(error.Message)
if _err != nil {
return _err
}
}
return _err
}
func main() {
err := _main(tea.StringSlice(os.Args[1:]))
if err != nil {
panic(err)
}
}Modifikasi konfigurasi template transkoding
Anda dapat memanggil operasi UpdateTemplate untuk memodifikasi konfigurasi template transkoding.
package main
import (
"encoding/json"
"strings"
"fmt"
"os"
mts20140618 "github.com/alibabacloud-go/mts-20140618/v6/client"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
)
// Deskripsi:
//
// Gunakan AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien.
//
// @return Client
//
// @throws Exception
func CreateClient () (_result *mts20140618.Client, _err error) {
config := &openapi.Config{
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.
AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
}
config.Endpoint = tea.String("mts.cn-hangzhou.aliyuncs.com")
_result = &mts20140618.Client{}
_result, _err = mts20140618.NewClient(config)
return _result, _err
}
func _main (args []*string) (_err error) {
client, _err := CreateClient()
if _err != nil {
return _err
}
updateTemplateRequest := &mts20140618.UpdateTemplateRequest{
// ID template.
TemplateId: tea.String("16f01ad6175e4230ac42bb5182cd****"),
// Nama template.
Name: tea.String("MPS-example"),
// Format kontainer.
Container: tea.String("{\"Format\":\"mp4\"}"),
// Konfigurasi transkoding untuk aliran video.
Video: tea.String("{\"Codec\":\"H.264\",\"Profile\":\"high\",\"Bitrate\":\"500\",\"Crf\":\"15\",\"Width\":\"256\",\"Height\":\"800\",\"Fps\":\"25\",\"Gop\":\"10\"}"),
// Konfigurasi transkoding untuk aliran audio.
Audio: tea.String("{\"Codec\":\"aac\",\"Samplerate\":\"44100\",\"Bitrate\":\"500\",\"Channels\":\"2\"}"),
// Konfigurasi transmuxing.
MuxConfig: tea.String("{\"Segment\":{\"Duration\":\"10\"}}"),
// Konfigurasi transkoding umum.
TransConfig: tea.String("{\"TransMode\":\"onepass\"}"),
}
runtime := &util.RuntimeOptions{}
tryErr := func()(_e error) {
defer func() {
if r := tea.Recover(recover()); r != nil {
_e = r
}
}()
// Tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika diperlukan.
_, _err = client.UpdateTemplateWithOptions(updateTemplateRequest, runtime)
if _err != nil {
return _err
}
return nil
}()
if tryErr != nil {
var error = &tea.SDKError{}
if _t, ok := tryErr.(*tea.SDKError); ok {
error = _t
} else {
error.Message = tea.String(tryErr.Error())
}
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan ditampilkan hanya untuk referensi.
// Pesan kesalahan.
fmt.Println(tea.StringValue(error.Message))
// URL halaman diagnostik kesalahan yang sesuai.
var data interface{}
d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
d.Decode(&data)
if m, ok := data.(map[string]interface{}); ok {
recommend, _ := m["Recommend"]
fmt.Println(recommend)
}
_, _err = util.AssertAsString(error.Message)
if _err != nil {
return _err
}
}
return _err
}
func main() {
err := _main(tea.StringSlice(os.Args[1:]))
if err != nil {
panic(err)
}
}Hapus template transkoding
Anda dapat memanggil operasi DeleteTemplate guna menghapus template transkoding.
package main
import (
"encoding/json"
"strings"
"fmt"
"os"
mts20140618 "github.com/alibabacloud-go/mts-20140618/v6/client"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
)
// Deskripsi:
//
// Gunakan AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien.
//
// @return Client
//
// @throws Exception
func CreateClient () (_result *mts20140618.Client, _err error) {
config := &openapi.Config{
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.
AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
}
config.Endpoint = tea.String("mts.cn-hangzhou.aliyuncs.com")
_result = &mts20140618.Client{}
_result, _err = mts20140618.NewClient(config)
return _result, _err
}
func _main (args []*string) (_err error) {
client, _err := CreateClient()
if _err != nil {
return _err
}
deleteTemplateRequest := &mts20140618.DeleteTemplateRequest{
// ID template transkoding yang ingin Anda hapus.
TemplateId: tea.String("16f01ad6175e4230ac42bb5182cd****"),
}
runtime := &util.RuntimeOptions{}
tryErr := func()(_e error) {
defer func() {
if r := tea.Recover(recover()); r != nil {
_e = r
}
}()
// Tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika diperlukan.
_, _err = client.DeleteTemplateWithOptions(deleteTemplateRequest, runtime)
if _err != nil {
return _err
}
return nil
}()
if tryErr != nil {
var error = &tea.SDKError{}
if _t, ok := tryErr.(*tea.SDKError); ok {
error = _t
} else {
error.Message = tea.String(tryErr.Error())
}
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan ditampilkan hanya untuk referensi.
// Pesan kesalahan.
fmt.Println(tea.StringValue(error.Message))
// URL halaman diagnostik kesalahan yang sesuai.
var data interface{}
d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
d.Decode(&data)
if m, ok := data.(map[string]interface{}); ok {
recommend, _ := m["Recommend"]
fmt.Println(recommend)
}
_, _err = util.AssertAsString(error.Message)
if _err != nil {
return _err
}
}
return _err
}
func main() {
err := _main(tea.StringSlice(os.Args[1:]))
if err != nil {
panic(err)
}
}Tanyakan template transkoding berdasarkan ID template
Anda dapat memanggil operasi QueryTemplateList untuk menanyakan template transkoding berdasarkan ID template.
package main
import (
"encoding/json"
"strings"
"fmt"
"os"
mts20140618 "github.com/alibabacloud-go/mts-20140618/v6/client"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
)
// Deskripsi:
//
// Gunakan AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien.
//
// @return Client
//
// @throws Exception
func CreateClient () (_result *mts20140618.Client, _err error) {
config := &openapi.Config{
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.
AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
}
# Tentukan titik akhir. Untuk informasi lebih lanjut tentang titik akhir, kunjungi https://api.aliyun.com/product/Mts.
config.Endpoint = tea.String("mts.cn-hangzhou.aliyuncs.com")
_result = &mts20140618.Client{}
_result, _err = mts20140618.NewClient(config)
return _result, _err
}
func _main (args []*string) (_err error) {
client, _err := CreateClient()
if _err != nil {
return _err
}
queryTemplateListRequest := &mts20140618.QueryTemplateListRequest{
// ID template transkoding yang ingin Anda tanyakan.
TemplateIds: tea.String("16f01ad6175e4230ac42bb5182cd****,88c6ca184c0e424d5w5b665e2a12****"),
}
runtime := &util.RuntimeOptions{}
tryErr := func()(_e error) {
defer func() {
if r := tea.Recover(recover()); r != nil {
_e = r
}
}()
// Tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika diperlukan.
_, _err = client.QueryTemplateListWithOptions(queryTemplateListRequest, runtime)
if _err != nil {
return _err
}
return nil
}()
if tryErr != nil {
var error = &tea.SDKError{}
if _t, ok := tryErr.(*tea.SDKError); ok {
error = _t
} else {
error.Message = tea.String(tryErr.Error())
}
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan ditampilkan hanya untuk referensi.
// Pesan kesalahan.
fmt.Println(tea.StringValue(error.Message))
// URL halaman diagnostik kesalahan yang sesuai.
var data interface{}
d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
d.Decode(&data)
if m, ok := data.(map[string]interface{}); ok {
recommend, _ := m["Recommend"]
fmt.Println(recommend)
}
_, _err = util.AssertAsString(error.Message)
if _err != nil {
return _err
}
}
return _err
}
func main() {
err := _main(tea.StringSlice(os.Args[1:]))
if err != nil {
panic(err)
}
}Tanyakan template transkoding berdasarkan status template
Anda dapat memanggil operasi SearchTemplate untuk menanyakan template transkoding berdasarkan statusnya.
package main
import (
"encoding/json"
"strings"
"fmt"
"os"
mts20140618 "github.com/alibabacloud-go/mts-20140618/v6/client"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
)
// Deskripsi:
//
// Gunakan AccessKey ID dan Rahasia AccessKey Anda untuk menginisialisasi klien.
//
// @return Client
//
// @throws Exception
func CreateClient () (_result *mts20140618.Client, _err error) {
config := &openapi.Config{
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.
AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
}
# Tentukan titik akhir. Untuk informasi lebih lanjut tentang titik akhir, kunjungi https://api.aliyun.com/product/Mts.
config.Endpoint = tea.String("mts.cn-hangzhou.aliyuncs.com")
_result = &mts20140618.Client{}
_result, _err = mts20140618.NewClient(config)
return _result, _err
}
func _main (args []*string) (_err error) {
client, _err := CreateClient()
if _err != nil {
return _err
}
searchTemplateRequest := &mts20140618.SearchTemplateRequest{
// Status template transkoding yang ingin Anda tanyakan.
State: tea.String("Normal"),
}
runtime := &util.RuntimeOptions{}
tryErr := func()(_e error) {
defer func() {
if r := tea.Recover(recover()); r != nil {
_e = r
}
}()
// Tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika diperlukan.
_, _err = client.SearchTemplateWithOptions(searchTemplateRequest, runtime)
if _err != nil {
return _err
}
return nil
}()
if tryErr != nil {
var error = &tea.SDKError{}
if _t, ok := tryErr.(*tea.SDKError); ok {
error = _t
} else {
error.Message = tea.String(tryErr.Error())
}
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan ditampilkan hanya untuk referensi.
// Pesan kesalahan.
fmt.Println(tea.StringValue(error.Message))
// URL halaman diagnostik kesalahan yang sesuai.
var data interface{}
d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
d.Decode(&data)
if m, ok := data.(map[string]interface{}); ok {
recommend, _ := m["Recommend"]
fmt.Println(recommend)
}
_, _err = util.AssertAsString(error.Message)
if _err != nil {
return _err
}
}
return _err
}
func main() {
err := _main(tea.StringSlice(os.Args[1:]))
if err != nil {
panic(err)
}
}