인코딩 옵션 생성

Prev Next

Classic/VPC 환경에서 이용 가능합니다.

Object Storage에 저장된 미디어 원본 파일을 모바일, PC 등 다양한 디바이스에서 다양한 화질로 시청할 수 있도록 변환하기 위한 인코딩 옵션을 생성합니다.

요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

메서드 URI
POST /api/v2/encoding-option

요청 헤더

VOD Station API에서 공통으로 사용하는 헤더에 대한 정보는 VOD Station 요청 헤더를 참조해 주십시오.

요청 바디

요청 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
encodingOptionType String Optional 인코딩 옵션 타입
  • NORMAL (기본값) | AUDIO
    • NORMAL: 사용자 지정 인코딩 옵션 타입 비디오 및 오디오 스트림을 포함하는 프리셋
    • AUDIO: 오디오 스트림만 포함하는 프리셋
name String Required 사용자 지정 인코딩 옵션 이름
  • 영문자, 숫자, 특수 문자 ':', '-', '_'를 허용하며, 3~20자 이내로 입력
format String Required 변환된 미디어 파일 컨테이너 포맷
  • MP4 (유효 값)
video Object Required 비디오 인코딩 옵션 정보
  • encodingOptionTypeAUDIO인 경우, 객체 생략
video.codec String Required 비디오 코덱 포맷
  • AVC (H.264 지원)
video.codecOptions Object Required 비디오 코덱 상세 옵션 정보
video.codecOptions.profile String Required 비디오 코덱 프로필(Video Codec Profile)
  • BASELINE | MAIN | HIGH
  • 비디오의 사용 용도에 맞게 H.264 코덱의 특정 기술을 사용할 수 있도록 미리 정의해 둔 표준 명세
video.codecOptions.level String Required 비디오 코덱 레벨(Video Codec Level)
  • 1 | 1b | 1.1 | 1.2 | 1.3 | 2.1 | 2.2 | 3.1 | 3.2 | 4.1 | 4.2 | 5.1 | 5.2
  • 재생(디코딩)에 필요한 하드웨어의 성능 한계치를 미리 정의해 둔 표준 명세
video.bitrate Integer Required 비디오 스트림의 비트레이트(Kbps)
  • 비디오의 화질을 결정하는 매우 중요한 요소로, 1초 분량의 비디오을 구성하는 데이터의 크기를 설정
video.width Integer Required 출력 비디오의 너비(픽셀)
  • -2 | {너비 값}
  • 96~4096
  • 자동(AUTO): -2
  • video.width-2(자동)일 경우, video.height는 고정되며 video.width는 해당 비디오의 비율에 맞춰 변환
video.height Integer Required 출력 비디오의 높이(픽셀)
  • -2 | {높이 값}
  • 96~4096
  • 자동(AUTO): -2
  • video.height-2(자동)일 경우, video.width는 고정되며 video.height는 해당 비디오의 비율에 맞춰 변환
video.framerate Double Required 초당 프레임 수(fps)
  • -2 (자동) | 10 | 15 | 23.97 | 24 | 29.97 | 30 | 50 | 60
video.maxFramerate Double Optional 최대 초당 프레임 수(fps)
  • video.framerate-2(자동)일 때만 사용
  • 10~60
video.keyframeInterval Integer Required 비디오에 키 프레임이 생성되는 간격(초)
  • 1~100
video.rateControl String Required 비디오 변환 시의 비트레이트 배분 방식
  • AUTO | ABR | CRF | CBR
    • AUTO: 자동
    • ABR: 평균 비트레이트(Average Bitrate). 평균 비트레이트를 유지하며 필요 비트레이트에 따라 가변적으로 변환. CBR보다 우수하고 CRF보다는 떨어지는 중간 품질
    • CRF: 고정 화질(Constant Rate Factor). 일정한 시각적 품질을 목표로 비트레이틀 조절. 용량 대비 압축 효율이 좋아 품질은 우수하나 인코딩 전 비트레이트와 파일 크기를 지정할 수 없으며, 최종 용량도 예측할 수 없음
    • CBR: 고정 비트레이트(Constant Bitrate). 모든 포레임에 동일한 비트레이트를 할당하여 결과물의 용량을 쉽게 예측할 수 있으나 품질이 낮아짐
  • video.pass2-Pass인 경우, ABR만 허용
video.pass String Required 비디오 변환 시의 인코딩 패스 설정
  • 1-Pass | 2-Pass
    • 1-Pass: 인코딩 1번 진행
    • 2-Pass: 인코딩 2번 진행
  • 2-Pass1-Pass에 비해 비트레이트(bitrate)를 효율적으로 활용하나 인코딩 소요 시간 증가
audio Object Required 오디오 인코딩 옵션 정보
audio.codec String Required 오디오 코덱 포맷
  • AAC | MP3
audio.bitrate Integer Required 오디오 스트림의 비트레이트(Kbps)
  • 16~320
audio.channel Integer Required 출력 오디오의 채널 수 설정
  • AUTO | 1 | 2
    • AUTO: 자동
    • 1: 모노
    • 2: 스트레오
  • AUTO 설정 시 원본의 오디오 채널을 사용
  • 인코딩 시 인풋 미디어 파일의 오디오 채널과 다르게 설정하는 경우, 볼륨의 변화가 발생할 수 있음
audio.samplingRate Integer Required 출력 오디오 샘플링 레이트(Hz)
  • -2 (자동) | 22050 | 32000 | 44100 | 48000
  • -2(자동) 설정 시 원본의 오디오 샘플링 레이트를 사용

요청 예시

요청 예시는 다음과 같습니다.

curl --location --request POST 'https://vodstation.apigw.ntruss.com/api/v2/encoding-option' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--data '{
    "encodingOptionType": "NORMAL",
    "name": "vodstation_uhd",
    "format": "MP4",
    "video": {
        "codec": "AVC",
        "codecOptions": {
            "profile": "HIGH",
            "level": "5.1"
        },
        "bitrate": 18000,
        "width": 3840,
        "height": 2160,
        "framerate": -2.0,
        "maxFramerate": 30,
        "keyframeInterval": 2,
        "rateControl": "ABR",
        "pass": "1-Pass"
    },
    "audio": {
        "codec": "AAC",
        "bitrate": 192,
        "channel": 2,
        "samplingRate": 48000.0
    }
}'

응답

응답 형식을 설명합니다.

응답 바디

응답 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
content Object - 응답 결과
content.disabled Boolean - Sub Account 비활성화 여부
  • true | false
    • true: 비활성
    • false: 활성
content.id Integer - 인코딩 옵션 아이디
content.encodingOptionType String - 인코딩 옵션 타입
  • NORMAL | AUDIO
    • NORMAL: 비디오 인코딩 옵션
    • AUDIO: 오디오 인코딩 옵션
content.name String - 인코딩 옵션 이름
content.format String - 변환된 미디어 파일 컨테이너 포맷
content.video Object - 비디오 인코딩 옵션 정보
content.video.codec String - 비디오 코덱 포맷
content.video.codecOptions Object - 비디오 코덱 상세 옵션 정보
content.video.codecOptions.profile String - 비디오 코덱 프로필(Video Codec Profile)
content.video.codecOptions.level String - 비디오 코덱 레벨(Video Codec Level)
content.video.bitrate Integer - 비디오 스트림의 비트레이트(Kbps)
content.video.width Integer - 출력 비디오의 너비(픽셀)
content.video.height Integer - 출력 비디오의 높이(픽셀)
content.video.framerate Double - 초당 프레임 수(fps)
content.video.maxFramerate Double - 최대 초당 프레임 수(fps)
content.video.keyframeInterval Double - 비디오에 키 프레임이 생성되는 간격(초)
content.video.rateControl String - 비트레이트 배분 방식
  • AUTO | ABR | CRF | CBR
    • AUTO: 자동
    • ABR: 평균 비트레이트(Average Bitrate)
    • CRF: 고정 화질(Constant Rate Factor)
    • CBR: 고정 비트레이트(Constant Bitrate)
content.video.pass String - 비디오 변환 시의 인코딩 패스 설정
  • 1-Pass | 2-Pass
    • 1-Pass: 인코딩 1번 진행
    • 2-Pass: 인코딩 2번 진행
content.audio Object - 오디오 인코딩 옵션 정보
content.audio.codec String - 오디오 코덱 포맷
content.audio.bitrate Integer - 오디오 스트림의 비트레이트(Kbps)
content.audio.channel Integer - 출력 오디오의 채널 수 설정
  • AUTO | 1 | 2
    • AUTO: 자동
    • 1: 모노
    • 2: 스트레오
content.audio.samplingRate Double - 출력 오디오 샘플링 레이트(Hz)
content.regionNo String - 리전 번호
  • 1 (유효 값)
    • 1: 한국 리전
content.memberNo Integer - 멤버 번호

응답 상태 코드

VOD Station API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 VOD Station 응답 상태 코드를 참조해 주십시오.

응답 예시

응답 예시는 다음과 같습니다.

{
    "content": {
        "disabled": false,
        "id": 1111,
        "encodingOptionType": "NORMAL",
        "name": "vodstation_uhd",
        "format": "MP4",
        "video": {
            "codec": "AVC",
            "codecOptions": {
                "profile": "HIGH",
                "level": "5.1"
            },
            "bitrate": 18000,
            "width": 3840,
            "height": 2160,
            "framerate": -2.0,
            "maxFramerate": 30.0,
            "keyframeInterval": 2.0,
            "rateControl": "ABR",
            "pass": "1-Pass"
        },
        "audio": {
            "codec": "AAC",
            "bitrate": 192,
            "channel": 2,
            "samplingRate": 48000.0
        },
        "regionNo": "1",
        "memberNo": 2*****2
    }
}