--- title: "Edit custom image quality settings" slug: "media-livestation-qualitysetting-qualitysettingupdate" tags: ["Live Station"] updated: 2026-09-17T10:12:36Z published: 2026-09-17T10:12:36Z canonical: "api.ncloud-docs.com/media-livestation-qualitysetting-qualitysettingupdate" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Edit custom image quality settings Available in Classic and VPC Edit an HLS type custom image quality setting. You can change the playback time per segment (`segmentDuration`) and the number of segments (`segmentCount`). Caution When editing custom image quality settings, note the following: - When changing the settings, streaming of all broadcasts that used that image quality setting will be interrupted and restarted. To prevent interruptions during modification, make changes after streaming of all broadcasts that used that image quality setting has ended. - Low latency image quality settings can't be changed. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | PUT | /api/v2/qualitySets/{qualitySetId} | ### Request headers For information about the headers common to all Live Station APIs, see [Live Station request headers](/docs/en/media-livestation#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request path parameters You can use the following path parameters with your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `qualitySetId` | Integer | Required | HLS image quality setting ID - See [Get image quality settings list](/docs/en/media-livestation-qualitysetting-qualitysettinglist). | ### Request body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `segmentDuration` | Integer | Required | 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. - Enter the existing value if you don't want to edit it. | | `segmentCount` | Integer | Required | Number of segments - 2-10 - Higher segment count increases playback stability, but also increases the likelihood of latency and memory usage. - Lower segment count reduces the chance of latency, but also reduces playback stability and time machine playback range. - Enter the existing value if you don't want to edit it. | ### Request example The request example is as follows: ``` curl --location --request PUT '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 '{ "segmentDuration": 2000, "segmentCount": 3 }' ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `content` | Object | - | Image quality settings information | | `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 type - `CUSTOM`: Create manually (valid value) | | `content.name` | String | - | Image quality setting name | | `content.segmentDuration` | Integer | - | Playback time by segment (millisecond) - Display if `content.isEnabledUll` is `false`. | | `content.segmentCount` | Integer | - | Number of segments - Display if `content.isEnabledUll` is `false`. | | `content.qualities` | Array | - | Image quality list: [qualities](/docs/en/media-livestation-qualitysetting-qualitysettingupdate#qualities) | | `content.inUseChannelNames` | Array | - | List of channels in use - If no channels are in use, display the empty value `[]`. | | `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 type - `CUSTOM`: Create manually (valid value) | | `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](/docs/en/media-livestation#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "content": { "disabled": false, "id": ****, "status": "CREATED", "createdTime": 1755138264000, "genType": "CUSTOM", "name": "setting000", "segmentDuration": 2000, "segmentCount": 3, "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 } } ], "inUseChannelNames": [ "channel000" ], "enableHlsTimedMetadata": true, "isEnabledUll": false, "timedMetadata": { "key": "utc", "header": "ncloud.livestation.metadata", "interval": 1000 } } } ```