id: '1080p',
label: $localize`1080p`
},
+ {
+ id: '1440p',
+ label: $localize`1440p`
+ },
{
id: '2160p',
label: $localize`2160p`
480p: false
720p: false
1080p: false
+ 1440p: false
2160p: false
# Generate videos in a WebTorrent format (what we do since the first PeerTube release)
480p: false
720p: false
1080p: false
+ 1440p: false
2160p: false
import:
480p: false
720p: false
1080p: false
+ 1440p: false
2160p: false
# Generate videos in a WebTorrent format (what we do since the first PeerTube release)
480p: false
720p: false
1080p: false
+ 1440p: false
2160p: false
import:
480p: true
720p: true
1080p: true
+ 1440p: true
2160p: true
hls:
enabled: true
480p: false
720p: false
1080p: false
+ 1440p: false
2160p: false
import:
'480p': CONFIG.TRANSCODING.RESOLUTIONS['480p'],
'720p': CONFIG.TRANSCODING.RESOLUTIONS['720p'],
'1080p': CONFIG.TRANSCODING.RESOLUTIONS['1080p'],
+ '1440p': CONFIG.TRANSCODING.RESOLUTIONS['1440p'],
'2160p': CONFIG.TRANSCODING.RESOLUTIONS['2160p']
},
webtorrent: {
'480p': CONFIG.LIVE.TRANSCODING.RESOLUTIONS['480p'],
'720p': CONFIG.LIVE.TRANSCODING.RESOLUTIONS['720p'],
'1080p': CONFIG.LIVE.TRANSCODING.RESOLUTIONS['1080p'],
+ '1440p': CONFIG.LIVE.TRANSCODING.RESOLUTIONS['1440p'],
'2160p': CONFIG.LIVE.TRANSCODING.RESOLUTIONS['2160p']
}
}
VideoResolution.H_720P,
VideoResolution.H_240P,
VideoResolution.H_1080P,
+ VideoResolution.H_1440P,
VideoResolution.H_4K
]
'redundancy.videos.strategies', 'redundancy.videos.check_interval',
'transcoding.enabled', 'transcoding.threads', 'transcoding.allow_additional_extensions', 'transcoding.hls.enabled',
'transcoding.resolutions.0p', 'transcoding.resolutions.240p', 'transcoding.resolutions.360p', 'transcoding.resolutions.480p',
- 'transcoding.resolutions.720p', 'transcoding.resolutions.1080p', 'transcoding.resolutions.2160p',
+ 'transcoding.resolutions.720p', 'transcoding.resolutions.1080p', 'transcoding.resolutions.1440p', 'transcoding.resolutions.2160p',
'import.videos.http.enabled', 'import.videos.torrent.enabled', 'auto_blacklist.videos.of_users.enabled',
'trending.videos.interval_days',
'instance.name', 'instance.short_description', 'instance.description', 'instance.terms', 'instance.default_client_route',
'live.enabled', 'live.allow_replay', 'live.max_duration', 'live.max_user_lives', 'live.max_instance_lives',
'live.transcoding.enabled', 'live.transcoding.threads',
'live.transcoding.resolutions.240p', 'live.transcoding.resolutions.360p', 'live.transcoding.resolutions.480p',
- 'live.transcoding.resolutions.720p', 'live.transcoding.resolutions.1080p', 'live.transcoding.resolutions.2160p'
+ 'live.transcoding.resolutions.720p', 'live.transcoding.resolutions.1080p', 'live.transcoding.resolutions.1440p',
+ 'live.transcoding.resolutions.2160p'
]
const requiredAlternatives = [
get '480p' () { return config.get<boolean>('transcoding.resolutions.480p') },
get '720p' () { return config.get<boolean>('transcoding.resolutions.720p') },
get '1080p' () { return config.get<boolean>('transcoding.resolutions.1080p') },
+ get '1440p' () { return config.get<boolean>('transcoding.resolutions.1440p') },
get '2160p' () { return config.get<boolean>('transcoding.resolutions.2160p') }
},
HLS: {
get '480p' () { return config.get<boolean>('live.transcoding.resolutions.480p') },
get '720p' () { return config.get<boolean>('live.transcoding.resolutions.720p') },
get '1080p' () { return config.get<boolean>('live.transcoding.resolutions.1080p') },
+ get '1440p' () { return config.get<boolean>('live.transcoding.resolutions.1440p') },
get '2160p' () { return config.get<boolean>('live.transcoding.resolutions.2160p') }
}
}
body('transcoding.resolutions.480p').isBoolean().withMessage('Should have a valid transcoding 480p resolution enabled boolean'),
body('transcoding.resolutions.720p').isBoolean().withMessage('Should have a valid transcoding 720p resolution enabled boolean'),
body('transcoding.resolutions.1080p').isBoolean().withMessage('Should have a valid transcoding 1080p resolution enabled boolean'),
+ body('transcoding.resolutions.1440p').isBoolean().withMessage('Should have a valid transcoding 1440p resolution enabled boolean'),
body('transcoding.resolutions.2160p').isBoolean().withMessage('Should have a valid transcoding 2160p resolution enabled boolean'),
body('transcoding.webtorrent.enabled').isBoolean().withMessage('Should have a valid webtorrent transcoding enabled boolean'),
body('live.transcoding.resolutions.480p').isBoolean().withMessage('Should have a valid transcoding 480p resolution enabled boolean'),
body('live.transcoding.resolutions.720p').isBoolean().withMessage('Should have a valid transcoding 720p resolution enabled boolean'),
body('live.transcoding.resolutions.1080p').isBoolean().withMessage('Should have a valid transcoding 1080p resolution enabled boolean'),
+ body('live.transcoding.resolutions.1440p').isBoolean().withMessage('Should have a valid transcoding 1440p resolution enabled boolean'),
body('live.transcoding.resolutions.2160p').isBoolean().withMessage('Should have a valid transcoding 2160p resolution enabled boolean'),
body('search.remoteUri.users').isBoolean().withMessage('Should have a remote URI search for users boolean'),
'480p': true,
'720p': false,
'1080p': false,
+ '1440p': false,
'2160p': false
},
webtorrent: {
'480p': true,
'720p': true,
'1080p': true,
+ '1440p': true,
'2160p': true
}
}
'480p': true,
'720p': true,
'1080p': true,
+ '1440p': true,
'2160p': true
}
}
'480p': true,
'720p': true,
'1080p': true,
+ '1440p': true,
'2160p': true
}
}
'480p': false,
'720p': false,
'1080p': false,
+ '1440p': false,
'2160p': false
}
}
'480p': true,
'720p': true,
'1080p': true,
+ '1440p': true,
'2160p': true
}
}
expect(data.transcoding.resolutions['480p']).to.be.true
expect(data.transcoding.resolutions['720p']).to.be.true
expect(data.transcoding.resolutions['1080p']).to.be.true
+ expect(data.transcoding.resolutions['1440p']).to.be.true
expect(data.transcoding.resolutions['2160p']).to.be.true
expect(data.transcoding.webtorrent.enabled).to.be.true
expect(data.transcoding.hls.enabled).to.be.true
expect(data.live.transcoding.resolutions['480p']).to.be.false
expect(data.live.transcoding.resolutions['720p']).to.be.false
expect(data.live.transcoding.resolutions['1080p']).to.be.false
+ expect(data.live.transcoding.resolutions['1440p']).to.be.false
expect(data.live.transcoding.resolutions['2160p']).to.be.false
expect(data.import.videos.http.enabled).to.be.true
'480p': true,
'720p': false,
'1080p': false,
+ '1440p': false,
'2160p': false
},
webtorrent: {
'480p': true,
'720p': true,
'1080p': true,
+ '1440p': true,
'2160p': true
}
}
'480p': false,
'720p': false,
'1080p': false,
+ '1440p': false,
'2160p': false
}
}
'480p': false,
'720p': false,
'1080p': false,
+ '1440p': false,
'2160p': false
},
hls: {
'480p': true,
'720p': true,
'1080p': true,
+ '1440p': true,
'2160p': true
},
hls: {
'480p': true,
'720p': true,
'1080p': true,
+ '1440p': true,
'2160p': true
},
hls: {
'480p': true,
'720p': false,
'1080p': false,
+ '1440p': false,
'2160p': false
},
webtorrent: {
'480p': true,
'720p': true,
'1080p': true,
+ '1440p': true,
'2160p': true
}
}
'480p': boolean
'720p': boolean
'1080p': boolean
+ '1440p': boolean
'2160p': boolean
}
H_480P = 480,
H_720P = 720,
H_1080P = 1080,
+ H_1440P = 1440,
H_4K = 2160
}
return 5200 * 1000
}
+ if (resolution <= VideoResolution.H_1440P) {
+ // quality according to Google Live Encoder: 6000 - 13000 Kbps
+ // Quality according to YouTube Video Info: 8600 (av01) - 17000 (vp9.2) Kbps
+ return 10_000 * 1000
+ }
+
// 4K
// quality according to Google Live Encoder: 13000 - 34000 Kbps
- return 22000 * 1000
+ return 22_000 * 1000
}
/**
properties:
id:
type: integer
- description: 'Video resolution (240, 360, 720 ...)'
+ description: 'Video resolution (240, 360, 720, 1080, 1440 or 2160)'
example: 240
label:
type: string
type: boolean
1080p:
type: boolean
+ 1440p:
+ type: boolean
2160p:
type: boolean
hls:
1080p:
__name: "PEERTUBE_TRANSCODING_1080P"
__format: "json"
+ 1440p:
+ __name: "PEERTUBE_TRANSCODING_1440P"
+ __format: "json"
2160p:
__name: "PEERTUBE_TRANSCODING_2160P"
__format: "json"