Push
Start Push Publishing
Start push publishing the stream with SRT, RTMP or MPEG2-TS. If the requested stream does not exist on the server, this task is reserved. And when the stream is created, it automatically starts push publishing.
Request
POST /v1/vhosts/{vhost}/apps/{app}:startPush
Header
Authorization: Basic {credentials}
# Authorization
Credentials for HTTP Basic Authentication created with <AccessToken>Body : SRT
{
"id": "{unique_push_id}",
"stream": {
"name": "{output_stream_name}",
"variantNames": []
},
"protocol": "srt",
"url": "srt://{host}[:port]?mode=caller&latency=120000&timeout=500000",
"streamKey": ""
}
# id (required)
unique ID to identify the task
# stream (required)
## name (required)
output stream name
## variantNames (optional)
Array of track names to publsh.
This value is Encodes.[Video|Audio|Data].Name in the OutputProfile
setting.
If empty, all tracks will be sent.
# protocol (required)
srt
# url (required)
address of destination.
options can be set in query-string format.
# streamKey (optional)
not used with mpegtsIn SRT Push Publisher, only the caller connection mode is supported.
Body : RTMP
{
"id": "{unique_push_id}",
"stream": {
"name": "{output_stream_name}",
"variantNames": [ "h264_fhd", "aac" ]
},
"protocol": "rtmp",
"url":"rtmp://{host}[:port]/{app_name}",
"streamKey":"{stream_name}"
}
# id (required)
unique ID to identify the task
# stream (required)
## name (required)
output stream name
## variantNames (optional)
Array of track names to publsh.
This value is Encodes.[Video|Audio|Data].Name in the OutputProfile
setting.
If empty, The first track among video tracks (by ID) and the first
track among audio tracks (by ID) are selected automatically.
# protocol (required)
rtmp
# url (required)
address of destination
# streamKey (required)
RTMP stream keyBody : MPEG2-TS
{
"id": "{unique_push_id}",
"stream": {
"name": "{output_stream_name}",
"variantNames": []
},
"protocol": "mpegts",
"url": "udp://{host}[:port]",
"streamKey": ""
}
# id (required)
unique ID to identify the task
# stream (required)
## name (required)
output stream name
## variantNames (optional)
Array of track names to publsh.
This value is Encodes.[Video|Audio|Data].Name in the OutputProfile
setting.
If empty, all tracks will be sent.
# protocol (required)
mpegts
# url (required)
address of destination
# streamKey (optional)
not used with mpegts
Responses
200 Ok
The request has succeeded
Header
Content-Type: application/jsonBody
Please note that responses are incorrectly returned in Json array format for version 0.15.3 and earlier.
{
"statusCode": 200,
"message": "OK",
"response": {
"id": "{unique_push_id}",
"state": "ready",
"vhost": "default",
"app": "app",
"stream": {
"name": "{output_stream_name}",
"trackIds": [],
"variantNames": []
},
"protocol": "rtmp",
"url": "rtmp://{host}[:port]/{app_name}",
"streamKey": "{stream_name}",
"sentBytes": 0,
"sentTime": 0,
"sequence": 0,
"totalsentBytes": 0,
"totalsentTime": 0,
"createdTime": "2023-03-15T23:02:34.371+09:00",
"startTime": "1970-01-01T09:00:00.000+09:00",
"finishTime": "1970-01-01T09:00:00.000+09:00"
}
}
# statusCode
Same as HTTP Status Code
# message
A human-readable description of the response code
# response
Created push publishing task information401 Unauthorized
Authentication required
Header
WWW-Authenticate: Basic realm=”OvenMediaEngine”Body
{
"message": "[HTTP] Authorization header is required to call API (401)",
"statusCode": 401
}Stop Push Publishing
Request
Responses
Get Push Publishing State
Request
Responses
State of Push Publishing
The Push Publishing task has the state shown in the table below. You can get the state in the Start Push Publishing and Get Push Publishing State API response.
Ready
Preparing to start or waiting for the stream to be created.
Started
In Progress
Stopping
Is stopping
Stopped
Stopped
Error
Error
Was this helpful?