You need to enable JavaScript to run this app.
对象存储

对象存储

复制全文
视频处理
视频截帧图片持久化(Go SDK)
复制全文
视频截帧图片持久化(Go SDK)

TOS 支持将视频截帧后的图片保存到指定存储桶。本文介绍如何通过 TOS Go SDK 将视频截帧的图片保存到指定存储桶。

示例代码

以下代码展示如何截取第 300ms 的视频帧,并将截取后的图片命名为 temp.jpg,并保存至目标存储桶。

package main

import (
    "context"
    "encoding/base64"
    "encoding/json"
    "fmt"
    "github.com/volcengine/ve-tos-golang-sdk/v2/tos"
)

func checkErr(err error) {
    if err != nil {
       if serverErr, ok := err.(*tos.TosServerError); ok {
          fmt.Println("Error:", serverErr.Error())
          fmt.Println("Request ID:", serverErr.RequestID)
          fmt.Println("Response Status Code:", serverErr.StatusCode)
          fmt.Println("Response Header:", serverErr.Header)
          fmt.Println("Response Err Code:", serverErr.Code)
          fmt.Println("Response Err Msg:", serverErr.Message)
       } else {
          fmt.Println("Error:", err)
       }
       panic(err)
    }
}

type SaveAsResult struct {
    Bucket   string `json:"bucket"`
    FileSize string `json:"fileSize"`
    Object   string `json:"object"`
    Status   string `json:"status"`
}

func main() {
    var (
       accessKey = os.Getenv("TOS_ACCESS_KEY")
       secretKey = os.Getenv("TOS_SECRET_KEY")
       // Bucket 所在区域对应的 Endpoint,如果以华北2(北京)为例,则 Endpoint 为 https://tos-cn-beijing.volces.com。
       endpoint = "https://tos-cn-beijing.volces.com"
       region   = "cn-beijing"
       // 填写 BucketName
       bucketName = "*** Provide your bucket name ***"

       // 视频名称
       videoKey   = "video.mp4"
       ctx        = context.Background()
       // 指定保存图片的存储桶的名称
       saveBucket = "*** Provide your bucket name ***"
       // 指定截取到的图片名称
       saveObject = "temp.jpg"
    )
    // 初始化客户端
    client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))
    checkErr(err)

    // 请求并增加数据处理
    style := "video/snapshot,t_300" /* 视频截帧,截取第 300ms 的视频帧 */
    out, err := client.GetObjectV2(ctx, &tos.GetObjectV2Input{Bucket: bucketName, Key: videoKey, Process: style, SaveBucket: base64.URLEncoding.EncodeToString([]byte(saveBucket)), SaveObject: base64.URLEncoding.EncodeToString([]byte(saveObject))})
    checkErr(err)
    var saveAsResult SaveAsResult
    err = json.NewDecoder(out.Content).Decode(&saveAsResult)
    checkErr(err)
    fmt.Println("Save As Result:", saveAsResult)

}

相关文档

关于视频截帧图片持久化的详细介绍,请参见图片持久化

最近更新时间:2024.02.04 18:31:08
这个页面对您有帮助吗?
有用
有用
无用
无用