75 lines
1.5 KiB
TypeScript
75 lines
1.5 KiB
TypeScript
// Author: fruit.com.cn
|
|
|
|
import type {
|
|
MediaTranscodeLadderRung,
|
|
MediaTranscodeProfile,
|
|
MediaTranscodeSprite
|
|
} from '@/api/admin/types'
|
|
|
|
export const MIN_SEGMENT_SECONDS = 2
|
|
export const MAX_SEGMENT_SECONDS = 10
|
|
export const MIN_SPRITE_INTERVAL = 1
|
|
export const MAX_SPRITE_INTERVAL = 10
|
|
export const MIN_SPRITE_COLUMNS = 5
|
|
export const MAX_SPRITE_COLUMNS = 20
|
|
export const MIN_THUMB_WIDTH = 120
|
|
export const MAX_THUMB_WIDTH = 240
|
|
export const MAX_QUALITY_LENGTH = 16
|
|
|
|
export const defaultSprite = (): MediaTranscodeSprite => ({
|
|
enabled: true,
|
|
intervalSeconds: 1,
|
|
columns: 10,
|
|
thumbWidth: 160
|
|
})
|
|
|
|
export const defaultRung = (): MediaTranscodeLadderRung => ({
|
|
quality: '',
|
|
width: 640,
|
|
height: 360,
|
|
videoBitrateKbps: 400,
|
|
audioBitrateKbps: 64,
|
|
enabled: true
|
|
})
|
|
|
|
/** 与后端缺省值一致的四档配置。 */
|
|
export const defaultProfile = (): MediaTranscodeProfile => ({
|
|
enabled: true,
|
|
segmentSeconds: 6,
|
|
ladder: [
|
|
{
|
|
quality: '360p',
|
|
width: 640,
|
|
height: 360,
|
|
videoBitrateKbps: 400,
|
|
audioBitrateKbps: 64,
|
|
enabled: true
|
|
},
|
|
{
|
|
quality: '480p',
|
|
width: 854,
|
|
height: 480,
|
|
videoBitrateKbps: 800,
|
|
audioBitrateKbps: 64,
|
|
enabled: true
|
|
},
|
|
{
|
|
quality: '720p',
|
|
width: 1280,
|
|
height: 720,
|
|
videoBitrateKbps: 1600,
|
|
audioBitrateKbps: 96,
|
|
enabled: true
|
|
},
|
|
{
|
|
quality: '1080p',
|
|
width: 1920,
|
|
height: 1080,
|
|
videoBitrateKbps: 3200,
|
|
audioBitrateKbps: 128,
|
|
enabled: true
|
|
}
|
|
],
|
|
sprite: defaultSprite()
|
|
})
|