131 lines
4.5 KiB
Go
131 lines
4.5 KiB
Go
|
package archive
|
|||
|
|
|||
|
import (
|
|||
|
xtime "go-common/library/time"
|
|||
|
)
|
|||
|
|
|||
|
const (
|
|||
|
// VideoUploadInfo 视频上传完成
|
|||
|
VideoUploadInfo = int8(0)
|
|||
|
// VideoXcodeSDFail 视频转码失败
|
|||
|
VideoXcodeSDFail = int8(1)
|
|||
|
// VideoXcodeSDFinish 一转完成
|
|||
|
VideoXcodeSDFinish = int8(2)
|
|||
|
// VideoXcodeHDFail 二转失败
|
|||
|
VideoXcodeHDFail = int8(3)
|
|||
|
// VideoXcodeHDFinish 二转完成
|
|||
|
VideoXcodeHDFinish = int8(4)
|
|||
|
// VideoDispatchRunning 正在分发
|
|||
|
VideoDispatchRunning = int8(5)
|
|||
|
// VideoDispatchFinish 分发完成
|
|||
|
VideoDispatchFinish = int8(6)
|
|||
|
// VideoStatusOpen 视频开放浏览
|
|||
|
VideoStatusOpen = int16(0)
|
|||
|
// VideoStatusAccess 视频会员可见
|
|||
|
VideoStatusAccess = int16(10000)
|
|||
|
// VideoStatusWait 视频待审
|
|||
|
VideoStatusWait = int16(-1)
|
|||
|
// VideoStatusRecicle 视频被打回
|
|||
|
VideoStatusRecicle = int16(-2)
|
|||
|
// VideoStatusLock 视频被锁定
|
|||
|
VideoStatusLock = int16(-4)
|
|||
|
// VideoStatusXcodeFail 视频转码失败
|
|||
|
VideoStatusXcodeFail = int16(-16)
|
|||
|
// VideoStatusSubmit 视频创建已提交
|
|||
|
VideoStatusSubmit = int16(-30)
|
|||
|
// VideoStatusDelete 视频被删除
|
|||
|
VideoStatusDelete = int16(-100)
|
|||
|
// XcodeFailZero 转码失败
|
|||
|
XcodeFailZero = 0
|
|||
|
// SrcTypeForVupload 合作方嵌套
|
|||
|
SrcTypeForVupload = "vupload"
|
|||
|
// SrcTypeForQQ 腾讯视频
|
|||
|
SrcTypeForQQ = "qq"
|
|||
|
// SrcTypeForHunan 湖南
|
|||
|
SrcTypeForHunan = "hunan"
|
|||
|
// SrcTypeForSohu 搜狐
|
|||
|
SrcTypeForSohu = "sohu"
|
|||
|
)
|
|||
|
|
|||
|
var (
|
|||
|
// XcodeFailCodes is bvc message mapping int value.
|
|||
|
//http://git.bilibili.co/bili_xcode/bili_xcode_docs/blob/master/%E7%B3%BB%E7%BB%9F%E6%95%B0%E6%8D%AE/%E8%BD%AC%E7%A0%81%E9%94%99%E8%AF%AF%E5%8E%9F%E5%9B%A0.md
|
|||
|
XcodeFailCodes = map[string]int8{
|
|||
|
"FileDataUnrecognized": 1, // 上传文件不是视频
|
|||
|
"VideoTrackAbsent": 2, // 没有视频轨
|
|||
|
"AudioTrackAbsent": 3, // 没有音频轨
|
|||
|
"VideoTrackEmpty": 4, // 视频轨无有效内容
|
|||
|
"AudioTrackEmpty": 5, // 音频轨无有效内容
|
|||
|
"DurationOverflow": 6, // 视频过长
|
|||
|
"VideoTooNarrow": 7, // 画面太窄
|
|||
|
"VideoTooFlat": 8, // 画面太扁
|
|||
|
"DataCorrupted": 9, // 文件损坏
|
|||
|
"WatermarkDownloadFail": 10, // 水印图片损坏
|
|||
|
"DurationUnderflow": 11, // 可检测到的时长不足一秒
|
|||
|
"StreamDataCorrupted": 12, // 文件编码数据错误
|
|||
|
"IncorrectDataPackaging": 13, // 文件的封包数据错误
|
|||
|
"UntolerableTimestampJump": 14, // 文件中时间戳有跳变
|
|||
|
"UntolerableTimestampStretch": 15, // 文件中时间戳异常
|
|||
|
"AACDataCorrupted": 16, // AAC音频数据错误
|
|||
|
|
|||
|
}
|
|||
|
// XcodeFailMsgs is int value mapping comment.
|
|||
|
XcodeFailMsgs = map[int8]string{
|
|||
|
1: "文件格式错误,请检查是否上传了错误文件并尝试重新上传",
|
|||
|
2: "无视频轨,请补充视频轨并重新压制上传",
|
|||
|
3: "无音频轨,请补充音频轨并重新压制上传",
|
|||
|
4: "视频轨无有效内容,请补充缺失的视频数据重新压制上传",
|
|||
|
5: "音频轨无有效内容,请补充缺失的音频数据重新压制上传",
|
|||
|
6: "单个视频时长超过10小时,请剪辑后通过分P上传",
|
|||
|
7: "视频画面过窄,请纵向裁剪视频后重新上传",
|
|||
|
8: "视频画面过扁,请横向裁剪视频后重新上传",
|
|||
|
9: "视频数据有误,请重新编码后重新上传",
|
|||
|
10: "水印图片损坏",
|
|||
|
11: "单个视频时长不足1秒,请检查视频时长并尝试重新上传",
|
|||
|
12: "文件编码数据错误",
|
|||
|
13: "文件封包数据错误,请重新压制后上传",
|
|||
|
14: "视频时间戳有异常,请修正后重新压制上传",
|
|||
|
15: "视频时间戳有异常,请检查音视频数据并重新压制上传",
|
|||
|
16: "AAC音频数据错误,请重新使用AAC编码后上传",
|
|||
|
}
|
|||
|
)
|
|||
|
|
|||
|
// Video is archive_video model.
|
|||
|
type Video struct {
|
|||
|
ID int64
|
|||
|
Filename string
|
|||
|
Cid int64
|
|||
|
Aid int64
|
|||
|
Title string
|
|||
|
Desc string
|
|||
|
SrcType string
|
|||
|
Duration int64
|
|||
|
Filesize int64
|
|||
|
Resolutions string
|
|||
|
Playurl string
|
|||
|
FailCode int8
|
|||
|
Index int
|
|||
|
Attribute int32
|
|||
|
XcodeState int8
|
|||
|
Status int16
|
|||
|
WebLink string
|
|||
|
Dimensions string
|
|||
|
CTime xtime.Time
|
|||
|
MTime xtime.Time
|
|||
|
}
|
|||
|
|
|||
|
//AuditParam is from video audit
|
|||
|
type AuditParam struct {
|
|||
|
IsAudit bool
|
|||
|
}
|
|||
|
|
|||
|
// AttrVal get attribute value.
|
|||
|
func (v *Video) AttrVal(bit uint) int32 {
|
|||
|
return (v.Attribute >> bit) & int32(1)
|
|||
|
}
|
|||
|
|
|||
|
// AttrSet set attribute value.
|
|||
|
func (v *Video) AttrSet(vl int32, bit uint) {
|
|||
|
v.Attribute = v.Attribute&(^(1 << bit)) | (vl << bit)
|
|||
|
}
|