42
ONLINE VIDEO PLATFORM Getting Started Vcase API 2016.12.15

ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

O N L I N E V I D E O P L A T F O R M

Getting Started Vcase API

2016.12.15

Page 2: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

Table of Content

Vcase 제공 범위 ........................................................................ 2

기능 및 특징 .............................................................................. 3

전체 기능 목록 ......................................................................... 11

연동 방식 ................................................................................ 12

연동 정보 ................................................................................ 13

사이트 접속 및 회원 가입/서비스 생성 ....................................... 13

Access Token 발급 ................................................................. 14

API 동작 방식 .......................................................................... 15

GET 방식의 API 호출 예제 ..................................................... 15

CURL 예제 .................................................................................... 15

JAVA 예제 ..................................................................................... 16

PHP 예제 ...................................................................................... 18

POST 방식의 API 호출 예제 ................................................... 19

CURL 예제 .................................................................................... 19

JAVA 예제 ..................................................................................... 20

PHP 예제 ...................................................................................... 22

DELTE 방식의 API 호출 예제 ................................................. 23

CURL 예제 .................................................................................... 23

JAVA 예제 ..................................................................................... 23

PHP 예제 ...................................................................................... 25

업로드 ..................................................................................... 27

업로드와 동시에 콘텐츠를 그룹에 지정 ...................................... 28

업로드, 인코딩, 전송 그리고 작업 상태 알림 .............................. 28

업로드 알림 설정 ............................................................................ 30

작업 알림 설정 ................................................................................ 31

인코딩 알림 설정 ........................................................................... 32

전송 알림 설정 ................................................................................ 33

라이브 프로파일 설정 ............................................................... 35

Page 3: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

라이브 채널 생성과 라이브 인코딩 ............................................ 36

라이브 채널 조회 ..................................................................... 37

라이브 채널 종료 ..................................................................... 39

Page 4: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

1

Vcase 소개

Vcase 를 사용해 주셔서 감사 드립니다. Vcase 는 미디어 서비스의 개발 및 운영을 위한 개발

프레임워크와 다양한 미디어 핵심 기능을 클라우드 기반으로 제공하는 온라인 비디오 플랫폼 입니다.

관리를 위한 웹 콘솔과 연동을 위한 RESTful API, SDK, 기술 지원 서비스를 제공합니다.

관리자 서비스

연동

기술

자원

업로드 콘텐츠 관리변환 전송

광고플레이어 통계

대용량스토리지

GlobalCDN

퍼블리싱

24 시간 관리

라이브

고성능 서버

보안

API웹 콘솔 문서 및 샘플

Vcase

방송 채팅

Chapter

1

Page 5: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

2

Vcase 제공 범위

사업자는 미디어 서비스를 운영하기 전에 라인 계약부터 미디어 시스템 개발 및 설치까지 복잡한

과정이 필요하며, 시스템 확장을 항상 고려해야 합니다. Vcase 는 클라우드 기반의 시스템 인프라와

각종 미디어 기술을 제공하며, 시스템 확장 및 분산이 자동으로 이루어 집니다. 가입 후 API 만

연동하면 운영에 대한 고민을 할 필요가 없습니다.

미디어사업자는 Vcase 를 통해 비즈니스 본연의 업무에만 집중할 수 있습니다.

계약

- 라인과 공간- CDN

미디어 시스템 구매 및 설치

- 스토리지- 트랜스코더- 스트리밍 서버- 미디어 솔루션 (플레이어, DRM, 광고)

시스템 부하 분산 콘텐츠 관리 시스템개발 및 설치

- 미디어 시스템 연동- 콘텐츠 관리

미디어 서비스개발 및 설치

시스템 모니터링

- 24 Hours

확장 필요 서비스 운영

Vcase 제공 범위 고객사 업무 범위

Page 6: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

3

기능 및 특징

Vcase 는 미디어 서비스를 개발, 운영하는 가장 중요한 업무에만 집중할 수 있도록, 서버를 설치하고,

CDN 과 연동하고, 미디어 솔루션을 운영하거나 갑자기 늘어난 사용자에 대응하기 위해 긴급하게

서버를 확장 하는 것과 같은 고민을 모두 해결해 드립니다. 단지 가입하고, 미디어 서비스와

Vcase 의 API 만 연결하면 됩니다.

웹 콘솔의 홈 화면에서 대시보드를 제공하여 한눈에

서비스 현황을 살펴볼 수 있습니다.

HTTP 나 FTP 로 미디어 콘텐츠를 업로드할 수

있습니다. 업로드 후에는 썸네일, 코덱과 같은 미디어

정보를 자동으로 추출하며, 사용자 정의 메타를

사용할 수 있습니다

대시보드

콘텐츠 업로드 및 관리

Page 7: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

4

웹 페이지에서 바로 미디어를 Merging 하고

Clipping 하는 편집 기능을 사용하여 쉽게 새로운

비디오를 만들어낼 수 있습니다.

미디어를 업로드 하면 자동으로 변환, 암호화, 전송을

시작합니다. 자동화 프로파일로 변환 방식과 암호화,

배포 방법을 자유롭게 추가할 수 있습니다.

고객 미디어 서비스

- Web - App- Tablet- TV

업로드

- 웹- FTP (대용량)- API

작업 자동화

- 변환- 암호화

(DRM)- 배포

비디오 편집

작업 자동화

Page 8: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

5

매우 간편하게 라이브 채널을 생성하고 관리할 수

있습니다. IP 카메라로 입력 URL 에 비디오를

송출하면, 스트리밍 URL 로 라이브 방송을 할 수 있게

됩니다.

모든 라이브 채널에 인코딩 프로파일을 설정하여

실시간으로 인코딩 된 출력을 사용할 수 있습니다.

라이브 채널

라이브 인코딩

Page 9: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

6

비디오 스트림(HLS, RTSP, RTMP)을 파일로

녹화하여 새로운 컨텐츠로 등록하거나 다른 URL 로

재 송출 할 수 있습니다. 파일 저장 주기, 예약 시간

녹화 등 꼭 필요한 기능을 함께 제공합니다.

VoD 와 라이브채널을 교차 편성하여 라이브로

송출할 수 있습니다. 편리한 편성 UI/UX 를 제공하며,

긴급 편성을 통해 만약의 상황을 대비할 수 있습니다.

라이브 DVR

라이브 편성

Page 10: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

7

개인방송서비스를 개발하기 위한 모든 인프라와

솔루션을 제공합니다. 서버 개발을 지원하기 위해

라이브 채널 관리를 포함하여, 녹화, 광고 등 다양한

기능을 제공하며 클라이언트 개발을 지원하기 위해 송출 SDK, 채팅 SDK 를 지원합니다. Vcase 로

개인방송서비스를 더욱 쉽고 빠르게 개발하고, 안정적으로 운영할 수 있습니다.

Smart Phone- iOS- Android

Web CamPC

RESTful API

Admin Page

클라이언트 지원

iOS, Android• 송출 SDK• 채팅 SDK• 플레이어 SDK

Web• 웹 채팅 SDK

PC 방송툴 지원

API

채널 관리• 라이브 채널• 채팅 채널

채널 녹화 채널 광고 썸네일 및 메타 추출 타임머신

개인 방송

Page 11: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

8

Vcase 는 수익화를 위해 자체 광고를 관리하고

원하는 위치에 삽입할 수 있는 기능과 미국 IAB

표준인 VAST 외부 광고 서버를 연동할 수 있는

방법을 지원합니다. 제공되는 API 로 플레이어에 직접 광고를 연동하는 방식을 선택하거나 제공되는

플레이어를 사용하는 방식을 선택할 수 있습니다.

라이브 채널에 요청 즉시 광고를 넣을 수 있습니다.

광고를 선택하고, 광고 삽입 버튼만 클릭하면 됩니다.

웹 기반에서 모든 것이 처리되므로, 별도의 프로그램

설치가 필요 없습니다.

VoD 광고

라이브 중간 광고

Page 12: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

9

지역 광고 그룹을 관리하고, 라이브 스트림에

지역별로 광고를 전송 할 수 있습니다. 광고 시작

API 를 통해 원하는 채널에 언제든지 광고를 보낼 수

있으므로 개인 방송과 결합하여 방송자가 직접 광고를 선택하고 시작 할 수 있습니다.

플레이어와 스트리머로부터 대량의 데이터를

수집하여, 고객에게 의미있는 통계를 제공하기 위해

빅데이터 처리 시스템을 갖추고 있습니다. 인기

콘텐츠 순위 뿐만 아니라 콘텐츠별 인게이지먼트 스코어와 같은 의미 있는 통계를 제공합니다.

지역 광고

통계

Page 13: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

10

유투브 채널과 VoD 동기화 기능을 제공하고 편성

라이브 채널을 유투브 라이브에 재송출 할 수

있습니다.

Vcase 의 모든 기능은 API 로 제공되어 사업자의

서비스에 연동할 수 있습니다. 또한 모바일 플레이어,

플래시 플레이어 등 필수 미디어 솔루션, 카메라 송출

모듈을 SDK 형태로 제공하여 더욱 강력한 미디어 서비스를 운영할 수 있도록 지원합니다. 문서 및

샘플을 제공하여 더욱 손쉽게 연동할 수 있고, 기술지원팀이 항시 대기하여 빠르게 문의를 처리하고

있습니다.

API웹 콘솔 문서 및 샘플 SDK

신디케이션

API 및 SDK

Page 14: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

11

전체 기능 목록

업로드 - 웹브라우저(Web, Flash/HTML5)

- API

- 자동 녹화 업로드(DVR 연동)

- FTP Bulk 업로드

작업 자동화 - 변환, 암호화, 배송 프로파일 관리

- 작업 현황 모니터링

- 업로드 시 자동으로 동작

변환

- 고성능 인코딩 시스템

- 대부분의 코덱과 컨테이너 지원

- 고급 사용자를 위한 상세한 인코딩

옵션

- 다양한 메타 정보 추출

- 미리 정의된 프로파일 제공

- 품질별 제공 : 해상도, 비트레이트,

프레임레이트 등

- 대상 장치별 제공 : PC, 모바일,

테블릿, 스마트 TV 등

- 이미지 오버레이

콘텐츠 관리

- 비디오, 오디오, 이미지, 자막 콘텐츠

관리

- 그룹 관리 (Playlist)

- 비디오 편집 (Merging, Clipping)

- 메타 관리

- 사용자 정의 메타 정보 관리

- 권한 관리

- DRM 시스템 연동

라이브 스트리밍

- 라이브 채널 생성 및 관리

- 라이브 스트림 녹화 및 재송출

- 라이브 인코딩

- 라이브 중간 광고

- 라이브 편성 송출

- 편성 유투브 신디케이션

개인 방송

- 채널 관리 (방송 채널, 채팅 채널)

- 채널 메타 추출 (썸네일 및 인코딩

정보)

- 채팅 SDK

- 방송 SDK

전송 - FTP 전송 - 유투브 신디케이션

퍼블리싱 - N 스크린 플레이어 퍼블리싱

- VOD, Live 스트리밍

- 업로드 / 다운로드 가능한 URL

- 접근 제어

광고 - 자체 광고 관리

- Video 광고 삽입 (전, 중, 후)

- Double Click 연동

- 라이브 지역 광고

분석, 통계

- 콘텐츠, 기간, 장치 별

- 재생 횟수, 재생 구간, 네트워크

트레픽 정보 제공

- 사용 패턴

- 가장 많이 재생된 콘텐츠

- 콘텐츠 소비 행태

연동 - Restful API

- SDK (플레이어, 카메라)

- 문서 및 샘플

계정 - 다중 관리자

- 관리자 권한 관리

- API 접근 토큰 관리

Page 15: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

12

연동 시작하기

Vcase 에서는 미디어 서비스 제공자가 사용자에게 고품질 미디어 서비스를 제공할 수 있도록 다양한

미디어 기술을 제공하며, 모든 기능은 RESTful API 와 SDK 를 통해 쉽게 연동할 수 있습니다.

연동 방식

Vcase 와의 연동은 일반적으로 아래 그림과 같은 구조를 따릅니다. 고객사는 WAS 를 구축하여 회원

DB 나 비즈니스 로직을 구현하고, 미디어 처리 관련된 부분은 Vcase 에서 제공하는 API 를 통해

처리하는 것이 일반적입니다. 앱, 웹, 기타 어플리케이션으로 제공되는 사용자 서비스는 고객사에서

구축한 WAS 에 연동하여 동작하고 플레이어, 라이브 송출, 채팅 관련 기능은 Vcase 에서 제공하는

SDK 를 이용하여 쉽게 구축하고 안정적으로 운영할 수 있습니다.

MediaStation

RESTful API

Player SDK(Web, Android, iOS)

Chatting SDK(Web, Android, iOS)

Camera SDK(Android, iOS)

WAS

Vcase

App

Web

고객사 서비스 구현 범위VcaseSDK

ApplicationLiveController

Upload System

Live Stream

Upload Contents

Chapter

2

Page 16: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

13

연동 정보

Vcase2 를 연동하기 위한 주소는 아래 표와 같습니다.

Media Station api.vcase2.myskcdn.com:9090 (222.239.28.216:9090)

Upload Server upload.vcase2.myskcdn.com:8081 (222.239.28.216:8081)

Live Controller MediaStation 의 API 를 통해 발급

상세한 연동 API Tutorial 은 다음 URL 에서 다운로드 받을 수 있습니다.

http://vcase2.myskcdn.com/static/docs/Vcase User Interface Manual.pdf

Vcase 에서는 연동 및 개발을 지원하기 위해 프리미엄 고객을 위한 샘플 웹 소스

코드(Java 기반)와 앱 소스 코드(iOS, Android)를 제공합니다. Vcase

담당자에게 요청 주시기 바랍니다.

사이트 접속 및 회원 가입/서비스 생성

인터넷 익스플로러나 파이어폭스, 크롬 같은 인터넷 브라우저를 실행하고 주소 표시줄에

http://vcase2.myskcdn.com 주소를 입력합니다.

Vcase 페이지가 정상적으로 표시 되었다면, 우측 상단의 “시작하기” 버튼을 선택하여 서비스 생성

및 회원 가입 페이지로 진입합니다.

회원 가입 페이지에서는 서비스 정보 및 사용자 정보를 입력할 수 있는데, 서비스명은 한 명의

사용자가 여러 서비스를 관리할 때 손쉽게 식별할 수 있도록 해주는 항목으로 실제 서비스 하고자

하시는 서비스의 이름을 입력 해주시면 됩니다. 이외에 사용자 정보 부분에는 서비스를 관리하고자

Page 17: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

14

하는 관리자 정보를 입력한 뒤 하단의 서비스 생성 버튼을 선택하시면 입력하신 정보를 바탕으로

새로운 계정 및 서비스가 생성됩니다.

성공적으로 가입이 완료 되었다면 기입하신 이메일 주소로 가입 환영 메일이 전송되며, 미디어

서비스를 위한 모든 준비가 완료됩니다.

Access Token 발급

Vcase 의 API 를 사용하기 위해서는 Access Token 을 발급해야 합니다. 여러 개의 Access Token 을

발급하여 권한을 조정하여 목적에 맞게 사용할 수 있습니다.

오른쪽 상단의 계정 이름을 클릭하고 API 관리 메뉴에서 새로운 토큰 생성 버튼을 클릭하여 새로운

토큰을 생성할 수 있습니다.

Page 18: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

15

API 동작 방식

MediaStaion 의 API 를 호출하여 Vcase 의 데이터를 조회하고 관리할 수 있습니다. API 는 GET,

POST, DELETE 메소드로 제공되며, API 문서에 명시되어 있습니다. 메소드를 잘못 사용하는 경우

동작하지 않으니 유의해야 합니다. POST 방식의 API 를 호출할 때는 업로드를 제외하고는 모두

Header 의 Content-Type 을 application/json 으로 설정해야 합니다.

모든 응답은 JSON 포멧으로 이루어져 있으며 다음과 같은 기본 규칙으로 응답 됩니다. 응답 코드는

API 문서에 상세히 기술되어 있습니다.

{

"request_id": "<요청 할 때 입력한 request_id>",

"result_code": "<응답 코드>",

"message": "<응답 데이터에 대한 메시지>",

"result": {

<요청 리소스마다 내부 항목들이 달라짐>

}

}

GET 방식의 API 호출 예제

콘텐츠 목록 조회 API 를 통해 GET 방식의 API 를 호출하는 예제입니다.

CURL 예제

REQUEST

curl -X GET -v

http://222.239.28.216:9090/v1/content?access_token=19d560a31a2a4f9e8ef13075

56640dd7

RESPONSE

* About to connect() to 222.239.28.216 port 9090 (#0)

* Trying 222.239.28.216... connected

* Connected to 222.239.28.216 (222.239.28.216) port 9090 (#0)

> GET /v1/content?access_token=19d560a31a2a4f9e8ef1307556640dd7 HTTP/1.1

> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic

ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2

Page 19: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

16

> Host: 222.239.28.216:9090

> Accept: */*

>

< HTTP/1.1 200 OK

< Server: Apache-Coyote/1.1

< Access-Control-Allow-Origin: *

< charset: UTF-8

< Content-Type: application/json;charset=UTF-8

< Transfer-Encoding: chunked

< Date: Mon, 23 Jan 2017 07:44:23 GMT

<

{"result_code":"S000","message":"성공","result":{"total_count":82,"content":[{"content

_id":1800704786,"upper_content_id":0,"title":"title","content_type":"asset","create_ty

pe":"uplod","media_type":"video","file_type":"orign","view_type":"plain","file_name":"

vr.mp4","file_size":32868857,"duration":182485,"state":"cmplt","progress":100,"cont

ainer":"mp4","video_codec":"h264",

……

JAVA 예제

REQUEST

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.HashMap;

public final class Test {

public static void main(String[] args) throws Exception

{

// Query String 추가

HashMap<String, Object> map = new HashMap<String, Object>();

map.put("access_token",

"19d560a31a2a4f9e8ef1307556640dd7");

Page 20: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

17

// 콘텐츠 목록조회.

String result = requestContentList("222.239.28.216", 9090, map);

System.out.println(result);

}

public static String requestContentList(String host, Integer port, HashMap<String,

Object> map) throws Exception

{

StringBuffer queryString = new StringBuffer();

for( String key : map.keySet() ){

queryString.append(key);

queryString.append("=");

queryString.append(map.get(key));

queryString.append("&");

}

String url = String.format("http://%s:%d/v1/content?%s", host, port,

queryString.toString());

URL obj = new URL(url);

HttpURLConnection con = (HttpURLConnection) obj.openConnection();

// optional default is GET

con.setRequestMethod("GET");

//add request header

int responseCode = con.getResponseCode();

System.out.println("\nSending 'GET' request to URL : " + url);

System.out.println("Response Code : " + responseCode);

BufferedReader in = new BufferedReader(

new InputStreamReader(con.getInputStream()));

String inputLine;

StringBuffer response = new StringBuffer();

Page 21: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

18

while ((inputLine = in.readLine()) != null) {

response.append(inputLine);

}

in.close();

return response.toString();

}

}

RESPONSE

……

PHP 예제

REQUEST

<?php

$queryString = array();

$queryString['access_token'] = '19d560a31a2a4f9e8ef1307556640dd7';

$result = requestContentList("222.239.28.216",9090, $queryString);

echo $result;

function requestContentList($host, $port, $queryString)

{

$query;

foreach ( $queryString as $key => $value )

{

$query .= $key;

$query .= '=';

$query .= $value;

$query .= '&';

}

$ch = curl_init();

Page 22: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

19

// set url

curl_setopt($ch, CURLOPT_URL, "http://".$host.":".$port."/v1/content?".$query);

//return the transfer as a string

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// $output contains the output string

$output = curl_exec($ch);

// close curl resource to free up system resources

curl_close($ch);

return $output;

}

?>

RESPONSE

……

POST 방식의 API 호출 예제

콘텐츠 메타 정보 수정 API 를 통해 POST 방식의 API 를 호출하는 예제입니다.

Vcase 의 업로드를 제외한 모든 POST 메시지는 Json 방식을 사용하므로

HTTP Header 의 Content-Type 을 “application/json” 으로 보내야 합니다.

CURL 예제

REQUEST

curl -X POST -H "Content-Type: application/json" -d

'{"params":{"access_token":"19d560a31a2a4f9e8ef1307556640dd7",

"title":"Modified Title"}}' http://222.239.28.216:9090/v1/content/1800704786

Page 23: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

20

RESPONSE

{"result_code":"S000","message":"성공"}

JAVA 예제

REQUEST

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.InputStreamReader;

import java.io.Reader;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.HashMap;

import com.google.gson.Gson;

public final class Test {

public static void main(String[] args) throws Exception

{

// 콘텐츠 수정

HashMap<String, Object> map = new HashMap<String, Object>();

map.put("access_token", "19d560a31a2a4f9e8ef1307556640dd7");

map.put("title", "Modified Title");

String result = requestModifyContent("222.239.28.216", 9090,

1800704786L, map);

System.out.println(result);

}

public static String requestModifyContent(String host, Integer port, Long

contentId, HashMap<String, Object> paramsMap) throws Exception

{

HashMap<String, Object> rootMap = new HashMap<String, Object>();

rootMap.put("params", paramsMap);

Page 24: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

21

String requestBody = new Gson().toJson(rootMap);

String url = String.format("http://%s:%d/v1/content/%d", host, port,

contentId);

URL obj = new URL(url);

HttpURLConnection con = (HttpURLConnection) obj.openConnection();

con.setRequestMethod("POST");

con.setDoOutput( true );

con.setInstanceFollowRedirects( false );

con.setRequestProperty( "Content-Type", "Content-Type:

application/json");

con.setRequestProperty( "charset", "utf-8");

con.setRequestProperty( "Content-Length",

Integer.toString( requestBody.length() ));

con.setUseCaches( false );

con.getOutputStream().write(requestBody.toString().getBytes("UTF-8"));

//add request header

int responseCode = con.getResponseCode();

System.out.println("\nSending 'POST' request to URL : " + url);

System.out.println("Response Code : " + responseCode);

BufferedReader in = new BufferedReader(

new InputStreamReader(con.getInputStream()));

String inputLine;

StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {

response.append(inputLine);

}

in.close();

return response.toString();

Page 25: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

22

}

}

RESPONSE

……

PHP 예제

REQUEST

<?php

$requestParams = array();

$requestParams['access_token'] = '19d560a31a2a4f9e8ef1307556640dd7';

$requestParams['title'] = 'Modified Title';

$result = requestModifyContent("222.239.28.216",9090, 1800704786,

$requestParams);

echo $result;

function requestModifyContent($host, $port, $contentId, $requestParams)

{

$rootMap = array();

$rootMap['params'] = $requestParams;

$data_string = json_encode($rootMap);

echo $data_string;

$ch = curl_init("http://".$host.":".$port."/v1/content/".$contentId);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'Content-Type: application/json',

'Content-Length: ' . strlen($data_string))

);

Page 26: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

23

// $output contains the output string

$output = curl_exec($ch);

// close curl resource to free up system resources

curl_close($ch);

return $output;

}

?>

RESPONSE

……

DELTE 방식의 API 호출 예제

콘텐츠 단일 삭제 API 를 통해 DELETE 방식의 API 를 사용하는 예제입니다.

CURL 예제

REQUEST

curl -X DELETE -v

http://222.239.28.216:9090/v1/content/1800704786?access_token=19d560a31a2a

4f9e8ef1307556640dd7

RESPONSE

{"result_code":"S000","message":"성공"}

JAVA 예제

REQUEST

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.InputStreamReader;

import java.io.Reader;

import java.net.HttpURLConnection;

import java.net.URL;

Page 27: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

24

import java.util.HashMap;

import com.google.gson.Gson;

public final class Test {

public static void main(String[] args) throws Exception

{

// 콘텐츠 삭제

HashMap<String, Object> map = new HashMap<String, Object>();

map.put("access_token", "19d560a31a2a4f9e8ef1307556640dd7");

String result = requestDeleteContent("222.239.28.216", 9090,

1800704786L, map);

System.out.println(result);

}

public static String requestDeleteContent(String host, Integer port, Long

contentId, HashMap<String, Object> map) throws Exception

{

StringBuffer queryString = new StringBuffer();

for( String key : map.keySet() ){

queryString.append(key);

queryString.append("=");

queryString.append(map.get(key));

queryString.append("&");

}

String url = String.format("http://%s:%d/v1/content/%d?%s", host, port,

contentId, queryString.toString());

URL obj = new URL(url);

HttpURLConnection con = (HttpURLConnection) obj.openConnection();

// optional default is DELETE

con.setRequestMethod("DELETE");

Page 28: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

25

//add request header

int responseCode = con.getResponseCode();

System.out.println("\nSending 'DELETE' request to URL : " + url);

System.out.println("Response Code : " + responseCode);

BufferedReader in = new BufferedReader(

new InputStreamReader(con.getInputStream()));

String inputLine;

StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {

response.append(inputLine);

}

in.close();

return response.toString();

}

}

RESPONSE

……

PHP 예제

REQUEST

<?php

$queryString = array();

$queryString['access_token'] = '19d560a31a2a4f9e8ef1307556640dd7';

$result = requestDeleteContent("222.239.28.216",9090, 1800704786, $queryString);

echo $result;

function requestDeleteContent($host, $port, $contentId, $queryString)

{

Page 29: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

26

$query;

foreach ( $queryString as $key => $value )

{

$query .= $key;

$query .= '=';

$query .= $value;

$query .= '&';

}

$ch = curl_init();

// set url

curl_setopt($ch, CURLOPT_URL,

"http://".$host.":".$port."/v1/content/".$contentId."?".$query);

//return the transfer as a string

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// set method

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");

// $output contains the output string

$output = curl_exec($ch);

// close curl resource to free up system resources

curl_close($ch);

return $output;

}

?>

RESPONSE

……

Page 30: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

27

콘텐츠 관리

Vcase 에서는 콘텐츠 관리에 필요한 다양한 기능을 제공합니다. 업로드, 메타 관리, 플레이리스트

관리, 자동 인코딩, 자동 전송(FTP), 편집 (머징, 트리밍) 과 같은 기능을 API 호출을 통해 쉽게

사용할 수 있습니다.

업로드

업로드는 multipart/form-data 형식으로 전송해야 합니다. 주의해야 할 점은 MediaStation API 와

다른 업로드 서버 전용 주소(upload.vcase2.myskcdn.com:8081)를 사용한다는 것입니다. API

문서에 따라 file=과 access_token=을 multipart 로 보내면 업로드를 할 수 있습니다.

REQUEST

curl -v -X POST -H "Content-Type: multipart/form-data" -F

"access_token=19d560a31a2a4f9e8ef1307556640dd7" -F "[email protected]" -F

“rev=MV_102921” http://222.239.28.216:8081/v1/content/upload

RESPONSE

{"result_code":"S000","message":"성공","result":{"content_id":1890704902}}

rev 값을 입력하여 업로드 하면

상태 콜백에서 해당 값을 다시 돌려받을 수 있습니다.

Chapter

3

Page 31: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

28

업로드와 동시에 콘텐츠를 그룹에 지정

미디어 서비스를 구현할 때 사용자별, 카테고리별로 콘텐츠를 그룹화하고 조회하는 기능이 필요할

수 있습니다. Vcase 는 플레이리스트와 태그를 이용하여 콘텐츠를 그룹으로 묶을 수 있는 기능을

제공합니다. 플레이리스트에 콘텐츠를 넣은 후 플레이리스트 목록 조회 API 를 이용하여 목록 조회를

하거나 콘텐츠 메타에 태그를 입력한 후 콘텐츠 목록 조회 API 에 해당 태그를 넣어서 검색 조회를

할 수 있습니다. 이미 등록된 콘텐츠의 정보를 수정할 수도 있지만 콘텐츠를 업로드 하면서 동시에

태그를 입력하거나 플레이리스트에 콘텐츠를 포함시키는 방법을 제공합니다. 다음과 같이 tags 나

playlist_ids 를 추가하여 업로드 하면 업로드와 동시에 콘텐츠를 그룹에 넣을 수 있습니다.

REQUEST

curl -v -X POST -H "Content-Type: multipart/form-data" -F

"access_token=19d560a31a2a4f9e8ef1307556640dd7" -F "[email protected]" -F “tags=”movie,action”

playlist_ids=”3201704451” http://222.239.28.216:8081/v1/content/upload

RESPONSE

{"result_code":"S000","message":"성공","result":{"content_id":1890704902}}

업로드, 인코딩, 전송 그리고 작업 상태 알림

콘텐츠가 업로드 되면 설정된 작업 프로파일에 따라 자동으로 인코딩 및 전송을 수행하도록 설정할

수 있습니다. 다음 화면과 같이 웹콘솔의 작업 현황에서 작업 설정을 통해 새로운 작업을 등록할 수

있습니다. 콘텐츠 선별, 인코딩, 암호화, 전송을 설정하는 자세한 내용은 사용자 매뉴얼을

참고해주시기 바랍니다.

Page 32: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

29

대용량 미디어 파일의 업로드는 효율적인 콘텐츠 흐름을 위해 고객사의 WAS 를 거치지 않고

클라이언트에서 Vcase 의 업로드 서버에 직접 하는 경우가 많습니다. 이런 구조에서 업로드 된

콘텐츠의 정보를 고객사 WAS 에서 관리해야 할 필요가 있는 경우를 위해 Vcase 에서는 Callback

알람을 통해 콘텐츠 상태 정보를 고객사 서버로 전달합니다.

MediaStationWAS

Vcase

App

Web

Application

Upload System

Upload Contents{rev}

DB

Callback{content_id}{state}{rev}

Response{content_id}

콘텐츠가 업로드 된 후부터 인코딩, 전송이 완료될 때까지의 라이프 사이클은 다음 그림과 같습니다.

업로드 완료, 인코딩 완료, 전송 완료, 작업 완료 시점에 고객사에서 설정한 URI 로 상태 정보를

전달합니다.

업로드 시작 업로드 완료 작업 시작트랜스코딩

시작

트랜스코딩

완료전송 시작 전송 완료 작업 완료

{Result}{Content ID}{User Param}

Callback

{Result}{Job Publish Key}{Content ID}{Target Content ID}{User Param}

Callback

{Result}{Job Publish Key}{Content ID}{Target Content ID}{User Param}

Callback

{Result}{Job Publish Key}{Content ID}{Target Content ID}{User Param}

Callback

{File}{User Param}

Upload

{Result}{Content ID}

Response

Page 33: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

30

업로드 알림 설정

업로드 완료 알림을 받기 위해서는 아래 화면과 같이 웹 콘솔의 업로드 알림 설정에 콜백 알림을

받을 URI 를 설정하면 됩니다.

콜백 URI 는 GET 또는 POST 메소드를 지정하여 원하는 방식대로 콜백을 받을 수 있으며 다음과

같은 형식으로 등록할 수 있습니다.

업로드 Callback URL 포멧

http://user-service-domain.com/vcase-

callback?contents_id={content_id}&state={state}&rev={rev}

user-service-domain.com/vcase-callback 은 고객사 서비스에서 콜백을 받을 수 있도록 제작한

URI 입니다. {contents_id}, {state}, {rev}는 Vcase 의 시스템 메타 정보이며, 상기 URI 에서 지정한

방식대로 전달하게 됩니다. 각각의 의미는 다음과 같습니다.

{contents_id} 업로드한 원본 콘텐츠의 ID 입니다.

{state} 업로드 상태를 나타내며 상태값은 다음과 같습니다.

complt : 업로드 완료

faled : 실패

{rev} 업로드 시 입력한 사용자 매개변수를 그대로 돌려줍니다. 고객사 DB 의

INDEX 값이나 콘텐츠 제목, 설명 등을 넣어서 활용할 수 있습니다.

Page 34: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

31

작업 알림 설정

작업 완료 알림은 작업 프로파일의 작업 상태 보고 URI 를 통해 설정할 수 있습니다. 퍼블리시 키는

콜백을 받았을 때 어떤 프로파일의 콜백인지 구분할 수 있도록 하는 ID 값입니다. 이를 통해 설정한

프로파일 중 모바일용 인코딩이 완료 되었는지, 웹용 인코딩이 완료되었는지 체크할 수 있습니다.

작업이 완료되거나 실패하면 해당 내용을 고객사에서 설정한 URI 로 알림 메시지를 전달합니다.

상단의 “작업 상태 보고 URI”는 인코딩, 전송이 완료된 후 모든 과정에 대한 상태를 전달하는 콜백

URI 입니다. 콜백 URI 는 GET 또는 POST 메소드를 지정하여 원하는 방식대로 콜백을 받을 수 있으며

다음과 같은 형식으로 등록할 수 있습니다.

작업 상태 알림 URL 포멧

http://user-service-domain.com/vcase-job-callback?

contents_id={content_id}&state={state}&job_profile_id={job_profile_id}&job_publish_k

ey={job_publish_key}&rev={rev}

user-service-domain.com/vcase-job-callback 은 고객사 서비스에서 작업 상태에 대한 콜백을

받을 수 있도록 제작한 URI 입니다. {contents_id}, {state}, {rev}와 같은 값은 Vcase 의 시스템 메타

정보이며, 상기 URI 에서 지정한 방식대로 전달하게 됩니다. 각각의 의미는 다음과 같습니다.

{contents_id} 원본 콘텐츠의 ID 입니다.

{state} 작업 상태를 나타내며 상태값은 다음과 같습니다.

complt : 모든 작업 완료

faled : 실패

Page 35: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

32

{job_publish_key} 작업 프로파일 퍼블리싱 키

{rev} 업로드 시 입력한 사용자 매개변수를 그대로 돌려줍니다. 고객사 DB 의

INDEX 값이나 콘텐츠 제목, 설명 등을 넣어서 활용할 수 있습니다.

인코딩 알림 설정

인코딩 상태 알림은 다음과 같이 작업 프로파일의 인코딩 탭에서 고급 설정에서 인코딩 상태

보고 URI 를 통해 설정할 수 있습니다.

인코딩 작업이 완료되거나 실패하면 해당 내용을 고객사에서 설정한 URI 로 알림 메시지를

전달합니다. 콜백 URI 는 GET 또는 POST 메소드를 지정하여 원하는 방식대로 콜백을 받을 수

있으며 다음과 같은 형식으로 등록할 수 있습니다.

인코딩 상태 알림 URL 포멧

http://user-service-domain.com/vcase-encode-callback?

contents_id={content_id}&state={state}&job_publish_key={job_publish_key}&target_co

ntent_id={target_content_id}&rev={rev}

Page 36: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

33

user-service-domain.com/vcase-encode-callback 은 고객사 서비스에서 작업 상태에 대한

콜백을 받을 수 있도록 제작한 URI 입니다. {contents_id}, {state}, {rev}와 같은 값은 Vcase 의

시스템 메타 정보이며, 상기 URI 에서 지정한 방식대로 전달하게 됩니다. 각각의 의미는 다음과

같습니다.

{contents_id} 원본 콘텐츠의 ID 입니다.

{state} 작업 상태를 나타내며 상태값은 다음과 같습니다.

complt : 모든 작업 완료

faled : 실패

{job_publish_key} 작업 프로파일 퍼블리싱 키

{target_content_id} 인코딩이 완료된 콘텐츠의 ID 입니다.

{rev} 업로드 시 입력한 사용자 매개변수를 그대로 돌려줍니다. 고객사 DB 의

INDEX 값이나 콘텐츠 제목, 설명 등을 넣어서 활용할 수 있습니다.

전송 알림 설정

전송 상태 알림은 다음과 같이 작업 프로파일의 전송 탭에서 상태 보고 URI 를 통해 설정할 수

있습니다.

전송 작업이 완료되거나 실패하면 해당 내용을 고객사에서 설정한 URI 로 알림 메시지를 전달합니다.

콜백 URI 는 GET 또는 POST 메소드를 지정하여 원하는 방식대로 콜백을 받을 수 있으며 다음과

같은 형식으로 등록할 수 있습니다.

전송 상태 알림 URL 포멧

Page 37: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

34

http://user-service-domain.com/vcase-transmission-callback?

contents_id={content_id}&state={state}&job_publish_key={job_publish_key}&target_co

ntent_id={target_content_id}&rev={rev}

user-service-domain.com/vcase-transmission-callback 은 고객사 서비스에서 작업 상태에 대한

콜백을 받을 수 있도록 제작한 URI 입니다. {contents_id}, {state}, {rev}와 같은 값은 Vcase 의

시스템 메타 정보이며, 상기 URI 에서 지정한 방식대로 전달하게 됩니다. 각각의 의미는 다음과

같습니다.

{contents_id} 원본 콘텐츠의 ID 입니다.

{state} 전송 상태를 나타내며 상태값은 다음과 같습니다.

complt : 모든 작업 완료

faled : 실패

{job_publish_key} 전송 프로파일 퍼블리싱 키

{target_content_id} 전송 완료된 콘텐츠의 ID 입니다.

{rev} 업로드 시 입력한 사용자 매개변수를 그대로 돌려줍니다. 고객사 DB 의

INDEX 값이나 콘텐츠 제목, 설명 등을 넣어서 활용할 수 있습니다.

Page 38: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

35

라이브 채널 관리

Vcase 는 라이브 채널을 생성하고 관리하는 기능을 제공합니다. RTMP 입력을 받아서 CDN 을 통해

RTMP, HLS, RTSP 와 같은 프로토콜로 재송출 할 수 있으며 중간 광고 및 동시 접속자 통계 데이터를

제공합니다. 특히 라이브 인코딩 기능을 통해 어떤 입력이 들어오더라도 최적의 비디오 품질로

조정하여 서비스 할 수 있습니다.

라이브 프로파일 설정

라이브 프로파일은 웹 콘솔의 “라이브 프로파일” 메뉴에서 추가하고 삭제할 수 있습니다.

라이브 프로파일은 다음과 같이 비율 방식, 비디오 품질, 오디오 품질에 대한 설정 값을

제공합니다.

ID 값을 라이브 채널 생성시 전달하여 해당 채널을 인코딩 할 수 있습니다.

Chapter

4

Page 39: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

36

기본 프로파일은 라이브 채널 생성 시 라이브 프로파일을 별도로 지정하지 않아도

기본적으로 인코딩을 수행하는 프로파일을 의미합니다.

라이브 채널 생성과 라이브 인코딩

다음과 같이 API 를 호출하여 라이브 채널을 생성할 수 있습니다.

REQUEST

curl -v -X POST -H "Content-Type: application/json" -d

'{"params":{"access_token":"19d560a31a2a4f9e8ef1307556640dd7", "name":"Live

Channel”}}' http://222.239.28.216:9090/v1/live/channel

Page 40: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

37

RESPONSE

{"result_code":"S000","message":"성공","result":{"live_channel_id":1490010789}}

라이브 채널을 생성 할 때 다음과 같이 live_profile_ids 에 라이브 프로파일의 ID 를 입력하여 채널을

인코딩 하여 출력할 수 있습니다. 기본 프로파일은 별도로 지정하지 않아도 자동으로 인코딩이

적용됩니다.

REQUEST

curl -v -X POST -H "Content-Type: application/json" -d

'{"params":{"access_token":"19d560a31a2a4f9e8ef1307556640dd7", "name":"Live

Channel”,“live_profile_ids”:[123332133 , 21321321312, 209999121]}}'

http://222.239.28.216:9090/v1/live/channel

RESPONSE

{"result_code":"S000","message":"성공","result":{"live_channel_id":1490010789}}

라이브 채널 조회

라이브 채널은 생성 한 후 생성된 채널의 정보는 다음과 같이 라이브 채널 ID 값을 인자로 API 를

호출하여 조회할 수 있습니다.

REQUEST

curl -v -X GET -H http://222.239.28.216:9090/v1/live/channel/1490010789?

access_token=19d560a31a2a4f9e8ef1307556640dd7

RESPONSE

{"result_code":"S000","message":"성공","result":{"live_channel":{"live_channel_id":149

0010789,"name":"Live

Channel","view_type":"plain","live_channel_type":"basic","use_ad":false,"is_decided":f

alse,"is_ad_playing":false,"reg_date":1485267362,"mod_date":1485267362,"active":t

rue,……

라이브 채널을 조회하여 정보를 확인하면 라이브 입력 정보, 라이브 출력 정보 그리고 다양한

메타 정보를 함께 제공하는 것을 확인할 수 있습니다.

Page 41: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

38

라이브 입력 주소는 제 3 자에게 유출 될 경우 방송 사고 등 심각한 문제를 발생시킬 수 있기 때문에

보안이 보장되어야 합니다. Vcase 에서는 다음 표와 같이 Stream 주소를 예측 불가능한 Key 로

발급하고, 매번 생성할 때마다 값을 변경하여서 보안에 문제가 없도록 지원하고 있습니다.

HOST : “118.219.58.47/LC”

STREAM : "BzG90hrZF00C"

라이브 출력 주소는 적용된 인코딩 프로파일 개수 만큼 제공되며 인코딩이 실시간으로 적용됩니다.

각 출력 주소는 RTMP, HLS, HLST(HLS Time Machine), RTSP, TLS(T Live Streaming)

프로토콜을 지원합니다.

Page 42: ONLINE VIDEO PLATFOR M Getting Started Vcase APIvcase2.myskcdn.com/static/docs/Getting_Started_Vcase_API.pdf · 또한 모바일 플레이어, 플래시 플레이어 등 필수 미디어

G E T T I N G S T A R T E D V C A S E A P I

39

라이브 채널 종료

라이브 채널은 고객사별로 제한된 숫자를 제공하기 때문에 라이브 스트리밍이 완료되면 꼭 API 를

호출하여 채널을 종료해야 합니다. 고객사에 할당된 라이브 채널을 모두 사용하면 새로운 라이브

채널 생성이 실패할 수 있습니다. 라이브 채널은 다음과 같은 방식으로 채널을 종료할 수 있습니다.

REQUEST

curl -v -X DELETE http://222.239.28.216:9090/v1/live/channel/1490010789?

access_token=19d560a31a2a4f9e8ef1307556640dd7

RESPONSE

{"result_code":"S000","message":"성공"}