Record

Start Recording

Stream Recording을 시작합니다. Recording을 요청한 Stream이 Server에 존재하지 않으면, 이 Recording Task는 예약됩니다. 이후 해당 Stream이 생성되면 Recording이 자동으로 시작됩니다.

Request

chevron-rightPOST /v1/vhosts/{vhost}/apps/{app}:startRecordhashtag
Authorization: Basic {credentials}

# Authorization
    Credentials for HTTP Basic Authentication created with <AccessToken>

Body : Single file recording

{

    "id": "{unique_record_id}",
    "stream": {
        "name": "{output_stream_name}",
        "variantNames": []
    }
}

# id (required)
    unique ID to identify the recording task
    
# stream (required)
    ## name (required)
        output stream name
        
    ## variantNames (optional)
        Array of track names to record. If empty, all tracks will be 
        recorded. This value is Encodes.[Video|Audio|Data].Name in the
        OutputProfile setting.

Body : Interval based split recording

{
  "id": "{unique_record_id}",
  "stream": {
    "name": "{output_stream_name}"
  },
  "interval": 60000,
  "segmentationRule": "discontinuity"
}

# interval (optional)
    Recording time per file (milliseconds). Not allowed to use with schedule
    
# segmentationRule (optional)
    Define the policy for continuously or discontinuously timestamp 
    in divided recorded files.
    
    continuity : timestamp of recorded files is continuous
    discontinuity(default) : timestamp starts anew for each recorded file

Body : Schedule based split recording

{
  "id": "{unique_record_id}",
  "stream": {
    "name": "{output_stream_name}"
  },
  "schedule" : "0 */1 *"
  "segmentationRule": "continuity"
}

# schedule (optional)
    <Second Minute Hour> format, same as crontab syntax
    "10 */1 *" means to output the recorded file every 10 minutes of the hour
    Not allowed to use with schedule

Body : Recoding file path setting

{
  "id": "{unique_record_id}",
  "stream": {
    "name": "{output_stream_name}"
  },
  "filePath" : "/path/to/file_name.mp4"
  "infoPath": "/path/to/file_name.xml"
}

# filePath(optional)
    The path for recorded files can be specified. 
    Please refer to the Recording Guide for details on using macros

# infoPath(optional)
    The path for recorded infomation file can be specified. 
    Please refer to the Recording Guide for details on using macros

Responses

chevron-right200 Okhashtag

The request has succeeded

Header

Content-Type: application/json

Body

Please note that responses are incorrectly returned in Json array format for version 0.15.3 and earlier.

{
    "statusCode": 200,
    "message": "OK",
    "response": {
        "id": "2",
        "state": "ready",
        "vhost": "default",
        "app": "app",
        "stream": {
            "name": "stream",
            "trackIds": [],
            "variantNames": []
        },
        "interval": 60000,
        "segmentationRule": "discontinuity",
        "createdTime": "2023-03-15T21:15:20.113+09:00",
    }
}

# statusCode
	Same as HTTP Status Code
# message
	A human-readable description of the response code
# response
	Created recording task information
chevron-right400 Bad Requesthashtag

Invalid request.

chevron-right401 Unauthorizedhashtag

Authentication required

Header

WWW-Authenticate: Basic realm=”OvenMediaEngine”

Body

{
    "message": "[HTTP] Authorization header is required to call API (401)",
    "statusCode": 401
}
chevron-right404 Not Foundhashtag

The given vhost or application name could not be found.

Body

chevron-right409 Conflicthashtag

duplicate ID

Stop Recording

Request

chevron-rightPOST /v1/vhosts/{vhost}/apps/{app}:stopRecordhashtag

Header

Body

Responses

chevron-right200 Okhashtag

The request has succeeded

Header

Body

chevron-right400 Bad Requesthashtag

Invalid request.

chevron-right401 Unauthorizedhashtag

Authentication required

Header

Body

chevron-right404 Not Foundhashtag

The given vhost/application name or id of recording task could not be found.

Body

Get Recording State

Request

chevron-rightPOST /v1/vhosts/{vhost}/apps/{app}:recordshashtag

Header

Body

Responses

chevron-right200 Okhashtag

The request has succeeded

Header

Body

The response is Json array format.

chevron-right401 Unauthorizedhashtag

Authentication required

Header

Body

chevron-right404 Not Foundhashtag

The given vhost or application name could not be found.

Body

State of Recording

Recording Task는 아래 표에 표시된 State를 가집니다. 이 State는 Start Recording 및 Get Recording 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

Last updated