support reading and publishing with Media-over-QUIC (#5815)
Media-over-QUIC is a streaming protocol built upon cutting edge protocols (QUIC, HTTP3) and browser APIs (WebTransport, WebCodecs). It's slightly faster than WebRTC, has an advanced data recovery mechanism (placed at the frame level and not at the packet level), it supports additional codecs (FLAC) and is less complicated to route.
This commit is contained in:
@@ -155,6 +155,10 @@ components:
|
||||
type: string
|
||||
enum: [read, publish]
|
||||
|
||||
MoQSessionState:
|
||||
type: string
|
||||
enum: [idle, read, publish]
|
||||
|
||||
OK:
|
||||
type: object
|
||||
properties:
|
||||
@@ -594,6 +598,26 @@ components:
|
||||
srtAddress:
|
||||
type: string
|
||||
|
||||
# MoQ server
|
||||
moq:
|
||||
type: boolean
|
||||
moqHTTPS2Address:
|
||||
type: string
|
||||
moqHTTPS3Address:
|
||||
type: string
|
||||
moqServerKey:
|
||||
type: string
|
||||
moqServerCert:
|
||||
type: string
|
||||
moqAllowOrigins:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
moqTrustedProxies:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
|
||||
# Record (deprecated)
|
||||
record:
|
||||
type: boolean
|
||||
@@ -1856,6 +1880,39 @@ components:
|
||||
items:
|
||||
$ref: "#/components/schemas/WebRTCSession"
|
||||
|
||||
MoQSession:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
format: uuid
|
||||
created:
|
||||
type: string
|
||||
remoteAddr:
|
||||
type: string
|
||||
state:
|
||||
$ref: "#/components/schemas/MoQSessionState"
|
||||
path:
|
||||
type: string
|
||||
query:
|
||||
type: string
|
||||
userAgent:
|
||||
type: string
|
||||
|
||||
MoQSessionList:
|
||||
type: object
|
||||
properties:
|
||||
pageCount:
|
||||
type: integer
|
||||
format: int64
|
||||
itemCount:
|
||||
type: integer
|
||||
format: int64
|
||||
items:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/MoQSession"
|
||||
|
||||
paths:
|
||||
/v3/info:
|
||||
get:
|
||||
@@ -3388,6 +3445,123 @@ paths:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
|
||||
/v3/moqsessions/list:
|
||||
get:
|
||||
operationId: moqSessionsList
|
||||
tags: [MoQ]
|
||||
summary: returns all MoQ sessions.
|
||||
description: ""
|
||||
parameters:
|
||||
- name: page
|
||||
in: query
|
||||
description: page number.
|
||||
schema:
|
||||
type: integer
|
||||
default: 0
|
||||
- name: itemsPerPage
|
||||
in: query
|
||||
description: items per page.
|
||||
schema:
|
||||
type: integer
|
||||
default: 100
|
||||
responses:
|
||||
"200":
|
||||
description: the request was successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/MoQSessionList"
|
||||
"400":
|
||||
description: invalid request.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"500":
|
||||
description: server error.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
|
||||
/v3/moqsessions/get/{id}:
|
||||
get:
|
||||
operationId: moqSessionsGet
|
||||
tags: [MoQ]
|
||||
summary: returns a MoQ session.
|
||||
description: ""
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
description: ID of the session.
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: the request was successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/MoQSession"
|
||||
"400":
|
||||
description: invalid request.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"404":
|
||||
description: session not found.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"500":
|
||||
description: server error.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
|
||||
/v3/moqsessions/kick/{id}:
|
||||
post:
|
||||
operationId: moqSessionsKick
|
||||
tags: [MoQ]
|
||||
summary: kicks out a MoQ session from the server.
|
||||
description: ""
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
description: ID of the session.
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: the request was successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/OK"
|
||||
"400":
|
||||
description: invalid request.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"404":
|
||||
description: session not found.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"500":
|
||||
description: server error.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
|
||||
/v3/recordings/list:
|
||||
get:
|
||||
operationId: recordingsList
|
||||
|
||||
Reference in New Issue
Block a user