40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
package video
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
dto "media/model/dto/video"
|
|
service "media/service/video"
|
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
)
|
|
|
|
type sceneSplit struct{}
|
|
|
|
var SceneSplit = new(sceneSplit)
|
|
|
|
// CreateSceneSplit 创建场景分割任务 POST /video/scene-split
|
|
func (c *sceneSplit) CreateSceneSplit(ctx context.Context, req *dto.SceneSplitReq) (res *dto.CreateSceneSplitTaskRes, err error) {
|
|
ctx = withUser(ctx)
|
|
g.Log().Infof(ctx, "[场景分割] 收到请求 入参: videoUrl=%s, threshold=%.1f, callback=%s",
|
|
req.VideoURL, req.Threshold, req.CallbackURL)
|
|
|
|
if req.VideoURL == "" {
|
|
return nil, fmt.Errorf("视频URL不能为空")
|
|
}
|
|
|
|
taskID, taskErr := service.SceneSplit.CreateAsyncTask(ctx, req.VideoURL, req.Threshold, req.CallbackURL)
|
|
if taskErr != nil {
|
|
return nil, taskErr
|
|
}
|
|
|
|
return &dto.CreateSceneSplitTaskRes{TaskID: taskID}, nil
|
|
}
|
|
|
|
// GetSceneSplitTask 查询场景分割任务结果 GET /video/scene-split/task/{taskId}
|
|
func (c *sceneSplit) GetSceneSplitTask(ctx context.Context, req *dto.GetSceneSplitTaskReq) (res *dto.GetSceneSplitTaskRes, err error) {
|
|
ctx = withUser(ctx)
|
|
return service.SceneSplit.GetTaskResult(ctx, req.TaskID)
|
|
}
|