aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-09-17 09:20:52 +0200
committerChocobozzz <chocobozzz@cpy.re>2020-11-09 15:33:04 +0100
commitc6c0fa6cd8fe8f752463d8982c3dbcd448739c4e (patch)
tree79304b0152b0a38d33b26e65d4acdad0da4032a7 /shared
parent110d463fece85e87a26aca48a6048ae0017a27b3 (diff)
downloadPeerTube-c6c0fa6cd8fe8f752463d8982c3dbcd448739c4e.tar.gz
PeerTube-c6c0fa6cd8fe8f752463d8982c3dbcd448739c4e.tar.zst
PeerTube-c6c0fa6cd8fe8f752463d8982c3dbcd448739c4e.zip
Live streaming implementation first step
Diffstat (limited to 'shared')
-rw-r--r--shared/extra-utils/server/config.ts15
-rw-r--r--shared/models/server/custom-config.model.ts29
-rw-r--r--shared/models/server/server-config.model.ts10
-rw-r--r--shared/models/videos/index.ts2
-rw-r--r--shared/models/videos/video-create.model.ts2
-rw-r--r--shared/models/videos/video-live.model.ts4
-rw-r--r--shared/models/videos/video-state.enum.ts4
-rw-r--r--shared/models/videos/video-update.model.ts1
-rw-r--r--shared/models/videos/video.model.ts2
9 files changed, 57 insertions, 12 deletions
diff --git a/shared/extra-utils/server/config.ts b/shared/extra-utils/server/config.ts
index 3ae1c6e67..3606976bd 100644
--- a/shared/extra-utils/server/config.ts
+++ b/shared/extra-utils/server/config.ts
@@ -126,6 +126,21 @@ function updateCustomSubConfig (url: string, token: string, newConfig: DeepParti
126 enabled: false 126 enabled: false
127 } 127 }
128 }, 128 },
129 live: {
130 enabled: true,
131 transcoding: {
132 enabled: true,
133 threads: 4,
134 resolutions: {
135 '240p': true,
136 '360p': true,
137 '480p': true,
138 '720p': true,
139 '1080p': true,
140 '2160p': true
141 }
142 }
143 },
129 import: { 144 import: {
130 videos: { 145 videos: {
131 http: { 146 http: {
diff --git a/shared/models/server/custom-config.model.ts b/shared/models/server/custom-config.model.ts
index 338a59341..e609d1a33 100644
--- a/shared/models/server/custom-config.model.ts
+++ b/shared/models/server/custom-config.model.ts
@@ -1,6 +1,15 @@
1import { NSFWPolicyType } from '../videos/nsfw-policy.type' 1import { NSFWPolicyType } from '../videos/nsfw-policy.type'
2import { BroadcastMessageLevel } from './broadcast-message-level.type' 2import { BroadcastMessageLevel } from './broadcast-message-level.type'
3 3
4export type ConfigResolutions = {
5 '240p': boolean
6 '360p': boolean
7 '480p': boolean
8 '720p': boolean
9 '1080p': boolean
10 '2160p': boolean
11}
12
4export interface CustomConfig { 13export interface CustomConfig {
5 instance: { 14 instance: {
6 name: string 15 name: string
@@ -75,15 +84,7 @@ export interface CustomConfig {
75 allowAudioFiles: boolean 84 allowAudioFiles: boolean
76 85
77 threads: number 86 threads: number
78 resolutions: { 87 resolutions: ConfigResolutions & { '0p': boolean }
79 '0p': boolean
80 '240p': boolean
81 '360p': boolean
82 '480p': boolean
83 '720p': boolean
84 '1080p': boolean
85 '2160p': boolean
86 }
87 88
88 webtorrent: { 89 webtorrent: {
89 enabled: boolean 90 enabled: boolean
@@ -94,6 +95,16 @@ export interface CustomConfig {
94 } 95 }
95 } 96 }
96 97
98 live: {
99 enabled: boolean
100
101 transcoding: {
102 enabled: boolean
103 threads: number
104 resolutions: ConfigResolutions
105 }
106 }
107
97 import: { 108 import: {
98 videos: { 109 videos: {
99 http: { 110 http: {
diff --git a/shared/models/server/server-config.model.ts b/shared/models/server/server-config.model.ts
index a8e5dfbff..77694a627 100644
--- a/shared/models/server/server-config.model.ts
+++ b/shared/models/server/server-config.model.ts
@@ -98,6 +98,16 @@ export interface ServerConfig {
98 enabledResolutions: number[] 98 enabledResolutions: number[]
99 } 99 }
100 100
101 live: {
102 enabled: boolean
103
104 transcoding: {
105 enabled: boolean
106
107 enabledResolutions: number[]
108 }
109 }
110
101 import: { 111 import: {
102 videos: { 112 videos: {
103 http: { 113 http: {
diff --git a/shared/models/videos/index.ts b/shared/models/videos/index.ts
index 20b9638ab..2a032a456 100644
--- a/shared/models/videos/index.ts
+++ b/shared/models/videos/index.ts
@@ -19,6 +19,8 @@ export * from './video-create.model'
19export * from './video-file-metadata' 19export * from './video-file-metadata'
20export * from './video-file.model' 20export * from './video-file.model'
21 21
22export * from './video-live.model'
23
22export * from './video-privacy.enum' 24export * from './video-privacy.enum'
23export * from './video-query.type' 25export * from './video-query.type'
24export * from './video-rate.type' 26export * from './video-rate.type'
diff --git a/shared/models/videos/video-create.model.ts b/shared/models/videos/video-create.model.ts
index 53631bf79..59b118567 100644
--- a/shared/models/videos/video-create.model.ts
+++ b/shared/models/videos/video-create.model.ts
@@ -16,5 +16,5 @@ export interface VideoCreate {
16 downloadEnabled?: boolean 16 downloadEnabled?: boolean
17 privacy: VideoPrivacy 17 privacy: VideoPrivacy
18 scheduleUpdate?: VideoScheduleUpdate 18 scheduleUpdate?: VideoScheduleUpdate
19 originallyPublishedAt: Date | string 19 originallyPublishedAt?: Date | string
20} 20}
diff --git a/shared/models/videos/video-live.model.ts b/shared/models/videos/video-live.model.ts
new file mode 100644
index 000000000..2a834dc91
--- /dev/null
+++ b/shared/models/videos/video-live.model.ts
@@ -0,0 +1,4 @@
1export interface VideoLive {
2 rtmpUrl: string
3 streamKey: string
4}
diff --git a/shared/models/videos/video-state.enum.ts b/shared/models/videos/video-state.enum.ts
index 31c501932..49d997f24 100644
--- a/shared/models/videos/video-state.enum.ts
+++ b/shared/models/videos/video-state.enum.ts
@@ -1,5 +1,7 @@
1export const enum VideoState { 1export const enum VideoState {
2 PUBLISHED = 1, 2 PUBLISHED = 1,
3 TO_TRANSCODE = 2, 3 TO_TRANSCODE = 2,
4 TO_IMPORT = 3 4 TO_IMPORT = 3,
5 WAITING_FOR_LIVE = 4,
6 LIVE_ENDED = 5
5} 7}
diff --git a/shared/models/videos/video-update.model.ts b/shared/models/videos/video-update.model.ts
index 86653b959..e21ccae04 100644
--- a/shared/models/videos/video-update.model.ts
+++ b/shared/models/videos/video-update.model.ts
@@ -1,6 +1,5 @@
1import { VideoPrivacy } from './video-privacy.enum' 1import { VideoPrivacy } from './video-privacy.enum'
2import { VideoScheduleUpdate } from './video-schedule-update.model' 2import { VideoScheduleUpdate } from './video-schedule-update.model'
3
4export interface VideoUpdate { 3export interface VideoUpdate {
5 name?: string 4 name?: string
6 category?: number 5 category?: number
diff --git a/shared/models/videos/video.model.ts b/shared/models/videos/video.model.ts
index 158ee8f05..caefeff82 100644
--- a/shared/models/videos/video.model.ts
+++ b/shared/models/videos/video.model.ts
@@ -23,6 +23,8 @@ export interface Video {
23 isLocal: boolean 23 isLocal: boolean
24 name: string 24 name: string
25 25
26 isLive: boolean
27
26 thumbnailPath: string 28 thumbnailPath: string
27 thumbnailUrl?: string 29 thumbnailUrl?: string
28 30