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