Create custom image quality settings

Prev Next

Available in Classic and VPC

Create a custom image quality setting by grouping the image qualities you want.

Request

This section describes the request format. The method and URI are as follows:

Method URI
POST /api/v2/qualitySets

Request headers

For information about the headers common to all Live Station APIs, see Live Station request headers.

Request body

You can include the following data in the body of your request:

Field Type Required Description
name String Required Image quality setting name
  • Enter 3 to 20 characters using a combination of English letters, numbers, and the special character "-".
  • Names can be duplicated.
qualityIds Array Required Image quality ID list
  • Up to 4 can be entered.
  • Only one image quality in 1920x1080 resolution can be entered.
  • See Get image quality list.
isEnabledUll Boolean Required Low latency settings
  • true | false
    • true: LL-HLS (option for low-latency HLS streaming with CMAF)
    • false: HLS (option for reliable and compatible HLS streaming)
segmentDuration Integer Conditional Playback time per segment (millisecond)
  • 1000-10000
  • Longer segment playback times can result in larger file sizes and longer loading times.
  • Shorter segment playback times result in smaller file sizes, but may result in buffering.
  • Required if isEnabledUll is false.
segmentCount Integer Conditional Number of segments
  • 2-10
  • Higher segment counts provide reliable playback but increase latency and memory usage.
  • Lower segment counts provide less delay, but less stability and a narrower time machine playback range.
  • Required if isEnabledUll is false.
enableHlsTimedMetadata Boolean Required Whether to set time-based metadata
  • true | false
    • true: Enable
    • false: Disable
  • Insert metadata into each segment every timedMetadata.interval on setup.
timedMetadata Object Conditional Time-based metadata settings
  • Required if enableHlsTimedMetadata is true
timedMetadata.header String Conditional Header (identification value)
  • Enter 1-128 characters.
timedMetadata.interval Integer Conditional Insertion interval (millisecond)
  • 1000 (valid value)
timedMetadata.key String Conditional Key
  • utc (valid value)

Request example

The request example is as follows:

curl --location --request POST 'https://livestation.apigw.ntruss.com/api/v2/qualitySets' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--header 'x-ncp-region_code: KR' \
--data '{
    "name": "setting000",
    "qualityIds": [
        ****, 5
    ],
    "isEnabledUll": false,
    "segmentDuration": 1000,
    "segmentCount": 2,
    "enableHlsTimedMetadata": true,
    "timedMetadata": {
        "header": "ncloud.livestation.metadata",
        "interval": 1000,
        "key": "utc"
    }
}'

Response

This section describes the response format.

Response body

The response body includes the following data:

Field Type Required Description
content Object - Response result
content.disabled Boolean - Whether image quality is disabled
  • true | false
    • true: Disabled
    • false: Enabled
content.id Integer - Image quality setting ID
content.status String - Image quality setting status
  • CREATED: Creation completed (valid value)
content.createdTime Integer - Image quality setting creation date and time (millisecond)
  • Unix timestamp format
content.genType String - Settings classification
  • CUSTOM | SYSTEM
    • CUSTOM: Create manually
    • SYSTEM: Provided by default
content.name String - Image quality setting name
content.segmentDuration Integer - Playback time per segment (millisecond)
  • Longer segment playback times can result in larger file sizes and longer loading times.
  • Shorter segment playback times result in smaller file sizes, but may result in buffering.
  • Displayed if content.isEnabledUll is false.
content.segmentCount Integer - Number of segments
  • Higher segment counts provide reliable playback but increase latency and memory usage.
  • Lower segment counts provide less delay, but less stability and a narrower time machine playback range.
  • Displayed if content.isEnabledUll is false.
content.qualityIds Array - Image quality ID list
content.qualities Array - Image quality list: qualities
content.enableHlsTimedMetadata Boolean - Whether to set time-based metadata
  • true | false
    • true: Enable
    • false: Disable
content.isEnabledUll Boolean - Low latency settings
  • true | false
    • true: LL-HLS (option for low-latency HLS streaming with CMAF)
    • false: HLS (option for reliable and compatible HLS streaming)
content.targetLatency Integer - Low latency target latency (second)
  • Displayed if isEnabledUll is true
content.timedMetadata Object - Time-based metadata settings
  • Displayed if enableHlsTimedMetadata is true
content.timedMetadata.key String - Key
  • utc (valid value)
content.timedMetadata.header String - Header (identification value)
content.timedMetadata.interval Integer - Insertion interval (millisecond)
  • 1000 (valid value)

qualities

The following describes qualities.

Field Type Required Description
disabled Boolean - Whether image quality is disabled
  • true | false
    • true: Disabled
    • false: Enabled
id Integer - Image quality ID
status String - Image quality status
  • CREATED: Creation completed (valid value)
createdTime Integer - Image quality creation date and time (millisecond)
  • Unix timestamp format
genType String - Settings classification
  • CUSTOM | SYSTEM
    • CUSTOM: Create manually
    • SYSTEM: Provided by default
name String - Image quality name
type String - Image quality type
  • NORMAL | AUDIO | BYPASS
    • NORMAL: Video and audio output
    • AUDIO: Audio-only output
    • BYPASS: Follow the source output settings.
video Object - Video settings information
  • If type is AUDIO, no display including sub-information.
video.fps Float - Number of frames per second (fps)
video.bitrate Integer - Video stream's bitrate (bps)
video.bframes Integer - Number of B-frames (bidirectional prediction frames)
video.level Integer - Video codec level
  • -1: AUTO (valid value)
  • A predefined standard specification of the performance limits of the hardware required for playback (decoding)
video.width Integer - Output video width (pixel)
video.height Integer - Output video height (pixel)
video.bypass Boolean - Whether to bypass the video stream
  • true | false
    • true: Use the source stream as is (pass-through).
    • false: Transcode to match the settings information.
video.codec String - Video codec format
  • H264 (valid value)
video.orientation String - Video orientation settings
  • FIX | FREE
    • FIX: Fixed
    • FREE: Switchable
video.profile String - Video codec profile
  • BASELINE | MAIN | HIGH
    • BASELINE: Default option (for low-end devices, with minimal features)
    • MAIN: Recommended HD option
    • HIGH: Recommended full HD option
  • A predefined standard specification that enables the use of specific technologies in the H.264 codec for the intended use of the video
video.rateControl String - Bitrate distribution method
  • VBR | CBR
    • VBR: Variable bitrate
    • CBR: Constant bitrate
video.videoH264ParamRefFrames Integer - H.264 reference frame count
  • 1 (valid value)
audio Object - Audio settings information
audio.codec String - Audio codec format
  • AAC | MP3
audio.profile String - Audio codec profile
  • LC: AAC-LC (valid value)
audio.samplerate Integer - Audio sampling rate (Hz)
  • Samples per second
audio.channels Integer - Number of audio channels
audio.bitrate Integer - Audio stream's bitrate (Kbps)
audio.bypass Boolean - Whether to bypass the audio stream
  • true | false
    • true: Use the source stream as is (pass-through).
    • false: Transcode to match the settings information.

Response status codes

For information about the HTTP status codes common to all Live Station APIs, see Live Station response status codes.

Response example

The response example is as follows:

{
    "content": {
        "disabled": false,
        "id": ****,
        "status": "CREATED",
        "createdTime": 1755138264367,
        "genType": "CUSTOM",
        "name": "setting000",
        "segmentDuration": 1000,
        "segmentCount": 2,
        "qualityIds": [
            5,
            ****
        ],
        "qualities": [
            {
                "disabled": false,
                "id": 5,
                "status": "CREATED",
                "createdTime": 1546300800000,
                "genType": "SYSTEM",
                "name": "720p-9-16",
                "type": "NORMAL",
                "video": {
                    "fps": 30.0,
                    "bitrate": 2500000,
                    "bframes": 0,
                    "level": -1,
                    "width": 720,
                    "height": 1280,
                    "bypass": false,
                    "codec": "H264",
                    "profile": "MAIN",
                    "rateControl": "VBR",
                    "videoH264ParamRefFrames": 1
                },
                "audio": {
                    "codec": "AAC",
                    "profile": "LC",
                    "samplerate": 48000,
                    "channels": 0,
                    "bitrate": 128,
                    "bypass": false
                }
            },
            {
                "disabled": false,
                "id": ****,
                "status": "CREATED",
                "createdTime": 1755134604000,
                "genType": "CUSTOM",
                "name": "quality000",
                "type": "NORMAL",
                "video": {
                    "fps": 60.0,
                    "bitrate": 204800000,
                    "bframes": 4,
                    "level": -1,
                    "width": 1920,
                    "height": 1080,
                    "bypass": true,
                    "codec": "H264",
                    "profile": "HIGH",
                    "rateControl": "VBR",
                    "videoH264ParamRefFrames": 1
                },
                "audio": {
                    "codec": "AAC",
                    "profile": "LC",
                    "samplerate": 44100,
                    "channels": 2,
                    "bitrate": 320,
                    "bypass": true
                }
            }
        ],
        "enableHlsTimedMetadata": true,
        "isEnabledUll": false,
        "timedMetadata": {
            "key": "utc",
            "header": "ncloud.livestation.metadata",
            "interval": 1000
        }
    }
}