인코딩 옵션 생성

Prev Next

VOD Station은 인코딩 옵션을 생성하기 위한 API를 제공하며 생성한 인코딩 옵션 조회를 위해 인코딩 옵션 목록 조회 API인코딩 옵션 정보 조회 API를 제공합니다.

요청

POST https://vod-station.apigw.gov-ntruss.com/api/v2/encoding-option

요청 헤더

헤더명 설명
x-ncp-region_code 네이버 클라우드 플랫폼 region code
x-ncp_region_code:{Region Code}
x-ncp-apigw-timestamp 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 표현
API Gateway 서버와 시간 차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주
x-ncp-apigw-timestamp:{Timestamp}
x-ncp-iam-access-key 네이버 클라우드 플랫폼 포털에서 발급받은 Access Key ID 값
x-ncp-iam-access-key:{Sub Account Access Key}
x-ncp-apigw-signature-v2 Access Key ID 값과 Secret Key로 암호화한 서명
x-ncp-apigw-signature-v2:{API Gateway Signature}
Content-Type Request body content type을 application/json으로 지정
Content-Type: application/json

요청 바디

API 요청 시 필드명의 대소문자 구분이 필요합니다.

필드명 필수 여부 타입 제약 사항 기본 값 설명
name Yes String 영문, 숫자, 쌍점( : ), 붙임표( - ), 밑줄 문자( _ ) 허용, 3자 이상 20자 이하 생성할 사용자 지정 인코딩 옵션의 이름
format Yes String MP4 변환된 미디어 파일 컨테이너 포맷
encodingOptionType No String NORMAL, AUDIO NORMAL - 사용자 지정 인코딩 옵션의 타입
비디오와 오디오를 포함하는 NORMAL 프리셋 혹은 오디오 스트림만 포함하는 AUDIO 프리셋 선택
audio Yes Object 트랜스코딩 오디오 옵션 설정 객체
audio.codec Yes String AAC 오디오 코덱 설정
audio.channel Yes Integer AUTO(-2), 1, 2 - 출력 오디오의 채널 설정
AUTO 설정 시 원본의 오디오 채널을 사용
참고: 인풋 미디어 파일의 오디오 채널과 다른 설정으로 인코딩 시 볼륨의 변화가 발생 할 수 있음
audio.bitrate Yes Integer 16~320 범위의 정수, 단위: Kbps 트랜스코딩할 오디오 스트림의 비트 전송률 설정
audio.samplingRate Yes Integer AUTO(-2), 22050 , 32000, 44100, 48000 단위: Hz 출력 오디오 샘플링 레이트 설정 AUTO 설정 시 원본의 오디오 샘플링 레이트를 사용
video Yes Object - 트랜스코딩 비디오 옵션 설정 객체
encodingOptionType이 AUDIO 일 경우 video 객체 생략
video.codec Yes String AVC 비디오 코덱 설정
AVC (H.264) 지원
video.codecOptions Yes Object 비디오 코덱 상세 옵션 설정 객체
video.codecOptions.profile Yes String BASELINE, MAIN, HIGH Video Codec Profile은 영상의 사용 용도에 맞게 H.264 코덱의 특정 기술을 사용할 수 있도록 미리 정의해 둔 표준 명세
video.codecOptions.level Yes String 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 Codec Level은 영상을 재생하는 단말의 재생기(디코더)가 어느정도 자원을 필요로 하는지 정해놓은 표준 명세
video.bitrate Yes Integer bitrate > 0 단위: Kbps 비디오 스트림의 비트 전송률 설정 동영상의 화질을 결정하는 매우 중요한 요소이며 1초 분량의 동영상을 구성하는 데이터의 크기를 설정
video.width Yes Integer AUTO(-2), 96~4096 범위의 정수 단위: 픽셀 출력 비디오의 가로 길이 width 만 AUTO 일 경우 height 는 고정되며 width 는 본 영상의 비율에 맞춰 변환
video.height Yes Integer AUTO(-2), 96~4096 범위의 정수 단위: 픽셀 출력 비디오의 세로 길이 height 만 AUTO 일 경우 width 는 고정되며 height 는 본 영상의 비율에 맞춰 변환
video.framerate Yes Double AUTO(-2), 10, 15, 23.97, 24, 29.97, 30, 50, 60 초당 프레임 수를 설정 출력 비디오 스트림에 초당 몇 개의 프레임을 보여 줄지 설정
video.maxFramerate No Integer 10~60 사이 정수값 video.framerate가 AUTO일때만 사용하며, 최대 framerate를 설정
video.keyframeInterval Yes Integer 1~100 범위의 정수값 키프레임 간격 설정 비디오에 키 프레임 생성되는 간격 (단위: 초)
video.rateControl Yes String AUTO,ABR, CRF, CBR
video.pass 가 2-Pass 인 경우, ABR 만 허용
ABR - 비디오 변환시 비트레이트 배분 방식
CBR: 고정 비트레이트로 모든 프레임에 비트레이트를 같게 변환 비트레이트가 고정되어 결과물 용량을 예측하기 쉬우나 ABR, CRF 대비 품질이 낮음
CRF: 압축 효율이 좋은편이며 인코딩 전 비트레이트와 파일크기를 지정할 수 없음
ABR: 가용 비트레이트로 평균 비트레이트를 유지하며 필요 비트레이트에 따라 가변적으로 변환
video.pass Yes String 1-Pass, 2-Pass - 비디오 변환 시 사용할 인코딩 방식
1-Pass에 비해 2-Pass는 주어진 bitrate 를 효율적으로 활용하나 인코딩 소요 시간이 길어짐

응답

필드명 타입 설명 비고
error Object 요청 실패 시 응답
오류 응답 코드 및 메시지
error.code Integer 오류 응답 코드
error.message String 오류 응답 메시지
content Object VOD Station OPEN API 응답 객체
content.disabled Boolean subaccount 제공 필드
해당 리소스가 subaccount에서 활성 여부
content.id String 인코딩 옵션 ID
content.name String 인코딩 옵션의 이름
content.format String 변환된 미디어 파일 컨테이너 포맷
content.encodingOptionType String 인코딩 옵션의 타입
content.audio Object 트랜스코딩 오디오 옵션 설정 객체
content.audio.codec String 오디오 코덱 설정
content.audio.channel Integer 출력 오디오의 채널 설정
content.audio.bitrate Integer 트랜스코딩할 오디오 스트림의 비트 전송률 설정 (단위 : Kbps)
content.audio.samplingRate Integer 출력 오디오 샘플링 레이트 (단위 : Hz)
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 초당 프레임 수
content.video.keyframeInterval Integer 비디오에 키 프레임이 생성되는 간격 (단위 : 초)
content.video.rateControl String 비트레이트 배분 방식
content.defaultSet Boolean 시스템 제공 프리셋 여부

예시

요청 예시

POST https://vod-station.apigw.gov-ntruss.com/api/v2/encoding-option

POST /api/v2/encoding-option
HOST: vod-station.apigw.gov-ntruss.com
Content-Type: application/json
x-ncp-region_code:KR
x-ncp-apigw-timestamp:1521787414578
x-ncp-iam-access-key:6uxz1nKkcYwUjWRG5Q1V7NsW0i5jErlu2NjBXXgy
x-ncp-apigw-signature-v2:iJFK773KH0WwQ79PasqJ+ZGixtpDQ/abS57WGQdld2M=

Reqeust body
{
  "audio": {
    "bitrate": 192,
    "channel": 2,
    "codec": "AAC",
    "samplingRate": 44100
  },
  "encodingOptionType": "NORMAL",
  "format": "MP4",
  "name": "basic-enc-option",
  "video": {
    "bitrate": 5000,
    "codec": "AVC",
    "codecOptions": {
      "level": "3.1",
      "profile": "MAIN"
    },
    "framerate": 30.0,
    "height": 1080,
    "keyframeInterval": 2,
    "pass": "1-Pass",
    "rateControl": "ABR",
    "maxFramerate": 30,
    "width": 1920
  }
}

응답 예시

HTTP/1.1 200 OK
Server: nginx
Date: Wed, 12 Sep 2018 09:53:32 GMT
Content-Type: application/json;charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
x-ncp-trace-id: 36c9k60om4p3238cpmc9gm4cj4

{
  "content": {
    "disabled": false,
    "id": 10058,
    "encodingOptionType": "NORMAL",
    "name": "basic-enc-option",
    "format": "MP4",
    "video": {
      "codec": "AVC",
      "codecOptions": {
        "profile": "MAIN",
        "level": "3.1"
      },
      "bitrate": 5000,
      "width": 1920,
      "height": 1080,
      "framerate": 30,
      "maxFramerate": 30,
      "keyframeInterval": 2,
      "rateControl": "ABR",
      "pass": "1-Pass"
    },
    "audio": {
      "codec": "AAC",
      "bitrate": 192,
      "channel": 2,
      "samplingRate": 44100
    }
  }
}