根据模版渲染视频
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
package video
|
||||
|
||||
import "github.com/gogf/gf/v2/frame/g"
|
||||
|
||||
// ---------- HTML 模板定义 ----------
|
||||
|
||||
// HtmlTemplate 单段HTML模板
|
||||
type HtmlTemplate struct {
|
||||
URL string `json:"url" v:"required#模板URL不能为空" dc:"模板HTML文件URL,HyperFrames格式,元素使用data-key做占位符"`
|
||||
Start float64 `json:"start" d:"0" dc:"模板开始时间(秒)"`
|
||||
End float64 `json:"end" dc:"模板结束时间(秒),不传=持续到视频结束"`
|
||||
Data map[string]string `json:"data" dc:"模板数据,key对应HTML中元素的data-key属性,value为替换内容。图片URL自动下载"`
|
||||
}
|
||||
|
||||
// ---------- 创建模板任务 ----------
|
||||
|
||||
// CreateTemplateTaskReq 创建模板视频任务请求
|
||||
type CreateTemplateTaskReq struct {
|
||||
g.Meta `path:"/template" method:"post" tags:"模板视频" summary:"创建模板视频任务(异步)" dc:"使用HTML模板+数据创建营销视频,支持多段模板不同时间区间,返回taskId"`
|
||||
VideoURLs []string `json:"video_urls" v:"required#视频URL列表不能为空" dc:"背景视频URL列表"`
|
||||
AudioURL string `json:"audio_url" dc:"背景音频URL(可选)"`
|
||||
Templates []HtmlTemplate `json:"templates" v:"required#模板列表不能为空" dc:"HTML模板列表,每段可指定时间范围和填充数据"`
|
||||
Subtitles []SubtitleSegment `json:"subtitles" dc:"字幕时间线列表(可选)"`
|
||||
SubtitleStyle *SubtitleStyle `json:"subtitle_style" dc:"字幕样式配置(可选)"`
|
||||
CallbackURL string `json:"callback_url" dc:"任务完成后的回调地址(可选)"`
|
||||
}
|
||||
|
||||
// CreateTemplateTaskRes 创建模板任务响应
|
||||
type CreateTemplateTaskRes struct {
|
||||
TaskID string `json:"taskId" dc:"任务ID"`
|
||||
}
|
||||
|
||||
// ---------- 查询模板任务 ----------
|
||||
|
||||
// GetTemplateTaskReq 查询模板任务请求
|
||||
type GetTemplateTaskReq struct {
|
||||
g.Meta `path:"/template/{taskId}" method:"get" tags:"模板视频" summary:"查询模板视频任务结果" dc:"根据taskId查询模板视频任务详情"`
|
||||
TaskID string `json:"taskId" dc:"任务ID"`
|
||||
}
|
||||
|
||||
// GetTemplateTaskRes 查询模板任务响应
|
||||
type GetTemplateTaskRes struct {
|
||||
TaskID string `json:"taskId" dc:"任务ID"`
|
||||
Status string `json:"status" dc:"任务状态"`
|
||||
FileURL string `json:"fileUrl,omitempty" dc:"输出文件URL"`
|
||||
FileSize int64 `json:"fileSize,omitempty" dc:"输出文件大小"`
|
||||
FileName string `json:"fileName,omitempty" dc:"输出文件名"`
|
||||
DurationStr string `json:"durationStr,omitempty" dc:"视频时长"`
|
||||
ErrorMessage string `json:"errorMessage,omitempty" dc:"错误信息"`
|
||||
}
|
||||
Reference in New Issue
Block a user