URL기반 변환#

모든 비디오 변환은 URL에 파라미터를 추가하는 간단한 방식으로 이루어집니다.

# 원본 비디오
https://example.com/sample.mp4


# 720p 트랜스코딩
https://example.com/sample.mp4/c_xcdr/preset/_720p

원본 비디오 URL 뒤에 키워드 c_xcdr 과 명령어를 추가하여 즉시 원하는 비디오를 서비스할 수 있다.

명령어 결합#

복잡한 비디오 가공도 여러 명령어를 결합하여 가공할 수 있습니다.

# 10~20초 구간추출
https://example.com/sample.mp4/c_xcdr/trim/10-20


# 10~20초 구간추출된 비디오를 360p로 트랜스코딩
https://example.com/sample.mp4/c_xcdr/trim/10-20/preset/_720p

서비스 용도에 맞추어 자유로운 결합이 가능합니다.

실패처리#

URL명령어로 실패처리가 가능합니다.

# [기본동작] 오류 발생시 510 Not Extended를 응답한다. Body는 디버깅을 위한 분석정보가 노출된다.
https://example.com/sample.mp4/c_xcdr/preset/_gif2avif/exception/debug

# 오류 발생시 원본으로 리디렉션한다.
https://example.com/sample.mp4/c_xcdr/preset/_gif2avif/exception/redirect

# 오류 발생시 원본을 전달한다.
https://example.com/sample.mp4/c_xcdr/preset/_gif2avif/exception/origin

비디오는 실패비용이 매우 높기 때문에 debug응답으로 원인을 정확히 파악하여 대처하는 것이 중요합니다.

{
   # 원본이 200 OK라면 분석 정보를 제공한다.
   "origin": {
      ...
   },

   # error - 표준 에러리스트 정보
   "error": {
      "code": 30500012,
      "x-sc-chain": "failpresetformat",
      "vhost": "cdn.example.com",
      "url": "/sample.mp4",
      "x-ctx-id": "454ecfb6-13d8-496d-b137-8b0d411caa21",
      "command": "/preset/_gif2avif",
      "content-length": 6686799,
      "reason": "not gif format"
   }
}

이미지 서비스 결합#

비디오로부터 캡쳐된 이미지를 즉시 이미지 서비스와 결합할 수 있습니다.

# 1초 지점을 비디오 캡쳐
https://example.com/video.mp4/c_xcdr/capture/ts=1


# 캡쳐된 비디오를 가로 640픽셀 리사이즈 후 품질 75로 변경 후 포맷을 WEBP로 변경
https://example.com/video.mp4/c_xcdr/capture/ts=1/c_xcdr/resize/640/quality/75/format/webp

이미지 편집에 대한 더 자세한 내용은 비디오 서비스 문서 를 참고 바랍니다.

레거시 URL#

이미 사용하던 URL 규칙이 있을 수 있습니다.

/sample_30s.mp4
/sample.mp4?preset=360

정규표현식으로 대부분의 케이스에 대응이 가능하지만, 더 복잡한 경우가 있다면 협의 후 지원드리도록 하겠습니다.