// ---------------------------------------------------------------------------
-const LAST_MIGRATION_VERSION = 570
+const LAST_MIGRATION_VERSION = 600
// ---------------------------------------------------------------------------
FOLLOWERS: [ 'createdAt', 'state', 'score' ],
FOLLOWING: [ 'createdAt', 'redundancyAllowed', 'state' ],
- VIDEOS: [ 'name', 'duration', 'createdAt', 'publishedAt', 'originallyPublishedAt', 'views', 'likes', 'trending' ],
+ VIDEOS: [ 'name', 'duration', 'createdAt', 'publishedAt', 'originallyPublishedAt', 'views', 'likes', 'trending', 'hot', 'best' ],
// Don't forget to update peertube-search-index with the same values
VIDEOS_SEARCH: [ 'name', 'duration', 'createdAt', 'publishedAt', 'originallyPublishedAt', 'views', 'likes', 'match' ],
'video-redundancy': 1,
'video-live-ending': 1
}
-const JOB_CONCURRENCY: { [id in JobType]: number } = {
+const JOB_CONCURRENCY: { [id in JobType]?: number } = {
'activitypub-http-broadcast': 1,
'activitypub-http-unicast': 5,
'activitypub-http-fetcher': 1,
'activitypub-follow': 1,
'video-file-import': 1,
- 'video-transcoding': 1,
- 'video-import': 1,
'email': 5,
'videos-views': 1,
'activitypub-refresher': 1,
KEEP_ORIGIN_FPS_RESOLUTION_MIN: 720 // We keep the original FPS on high resolutions (720 minimum)
}
-const VIDEO_TRANSCODING_ENCODERS = {
- VIDEO: [ 'libx264' ],
-
- // Try the first one, if not available try the second one etc
- AUDIO: [
- // we favor VBR, if a good AAC encoder is available
- 'libfdk_aac',
- 'aac'
- ]
-}
-
const DEFAULT_AUDIO_RESOLUTION = VideoResolution.H_480P
const VIDEO_RATE_TYPES: { [ id: string ]: VideoRateType } = {
// Express static paths (router)
const STATIC_PATHS = {
- PREVIEWS: '/static/previews/',
THUMBNAILS: '/static/thumbnails/',
TORRENTS: '/static/torrents/',
WEBSEED: '/static/webseed/',
REDUNDANCY: '/static/redundancy/',
STREAMING_PLAYLISTS: {
HLS: '/static/streaming-playlists/hls'
- },
- AVATARS: '/static/avatars/',
- VIDEO_CAPTIONS: '/static/video-captions/'
+ }
}
const STATIC_DOWNLOAD_PATHS = {
TORRENTS: '/download/torrents/',
const LAZY_STATIC_PATHS = {
AVATARS: '/lazy-static/avatars/',
PREVIEWS: '/lazy-static/previews/',
- VIDEO_CAPTIONS: '/lazy-static/video-captions/'
+ VIDEO_CAPTIONS: '/lazy-static/video-captions/',
+ TORRENTS: '/lazy-static/torrents/'
}
// Cache control
const STATIC_MAX_AGE = {
SERVER: '2h',
+ LAZY_SERVER: '2d',
CLIENT: '30d'
}
VIDEO_CAPTIONS: {
DIRECTORY: join(CONFIG.STORAGE.CACHE_DIR, 'video-captions'),
MAX_AGE: 1000 * 3600 * 3 // 3 hours
+ },
+ TORRENTS: {
+ DIRECTORY: join(CONFIG.STORAGE.CACHE_DIR, 'torrents'),
+ MAX_AGE: 1000 * 3600 * 3 // 3 hours
}
}
SEGMENTS_LIST_SIZE: 15, // 15 maximum segments in live playlist
REPLAY_DIRECTORY: 'replay',
EDGE_LIVE_DELAY_SEGMENTS_NOTIFICATION: 4,
+ MAX_SOCKET_WAITING_DATA: 1024 * 1000 * 100, // 100MB
RTMP: {
CHUNK_SIZE: 60000,
GOP_CACHE: true,
const MEMOIZE_TTL = {
OVERVIEWS_SAMPLE: 1000 * 3600 * 4, // 4 hours
INFO_HASH_EXISTS: 1000 * 3600 * 12, // 12 hours
- LIVE_ABLE_TO_UPLOAD: 1000 * 60 // 1 minute
+ LIVE_ABLE_TO_UPLOAD: 1000 * 60, // 1 minute
+ LIVE_CHECK_SOCKET_HEALTH: 1000 * 60 // 1 minute
}
const MEMOIZE_LENGTH = {
ACTOR_FOLLOW_SCORE,
PREVIEWS_SIZE,
REMOTE_SCHEME,
- VIDEO_TRANSCODING_ENCODERS,
FOLLOW_STATES,
DEFAULT_USER_THEME_NAME,
SERVER_ACTOR_NAME,