์ด ํ์ด์ง์์๋ ํธ๋์ค์ฝ๋ฉํ ๋์์์ ํ๋ ์์ด ํฌํจ๋ ์คํ๋ผ์ดํธ ์ํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค. ์ด๋ฌํ ์ถ์๋ ํ๋ ์(๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง๋ผ๊ณ ๋ ํจ)์ ์ฝํ
์ธ ๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ฏธ๋ฆฌ๋ณด๋ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค. ์คํ๋ผ์ดํธ ์ํธ๋ฅผ ์์ฑํ๋ ค๋ฉด JobConfig
ํ
ํ๋ฆฟ์์ spriteSheets
๋ฐฐ์ด์ ์ฌ์ฉํฉ๋๋ค.
์คํ๋ผ์ดํธ ์ํธ๋ฅผ ๋ง๋๋ ์ต์ ์๋ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
- ์ ๋ ฅ ๋์์ ํ์๋ผ์ธ์ ๊ณ ๋ฅด๊ฒ ๋ถ์ฐ๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง๋ฅผ ์ค์ ํ ์๋ก ์์ฑํฉ๋๋ค.
- ์ ๋ ฅ ๋์์ ํ์๋ผ์ธ์์ n์ด ๊ฐ๊ฒฉ์ผ๋ก ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์์ฑํฉ๋๋ค.
์ค์ ํ ์๋ก ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง ์์ฑ
๋ค์ ๊ตฌ์ฑ์์๋ ํฐ ์ด๋ฏธ์ง์ 10x10 ์คํ๋ผ์ดํธ ์ํธ์ ์์ ์ด๋ฏธ์ง์ 10x10 ์คํ๋ผ์ดํธ ์ํธ ๋ฑ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง๋ฅผ ๊ฐ๊ฐ 100๊ฐ์ฉ ์์ฑํฉ๋๋ค. ์คํ๋ผ์ดํธ ์ํธ์๋ ์์
๊ตฌ์ฑ์ ํ๋ ์ด์์ VideoStream
์ด ํ์ํฉ๋๋ค.
์ด ๊ตฌ์ฑ์ ์์ ํ ํ๋ฆฟ์ ์ถ๊ฐํ๊ฑฐ๋ ์์ ์์ ๊ตฌ์ฑ์ ํฌํจํ ์ ์์ต๋๋ค.
REST
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: IAM ์ค์ ์ ๋์ด๋ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.LOCATION
: ์์ ์ด ์คํ๋ ์์น์ ๋๋ค. ์ง์๋๋ ๋ฆฌ์ ์ค ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.์์น ํ์us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
me-west1
me-central1
me-central2
STORAGE_BUCKET_NAME
: ๋ง๋ Cloud Storage ๋ฒํท์ ์ด๋ฆ์ ๋๋ค.STORAGE_INPUT_VIDEO
: Cloud Storage ๋ฒํท์ ์๋ ํธ๋์ค์ฝ๋ฉํ๋ ๋์์์ ์ด๋ฆ์ ๋๋ค(์:my-vid.mp4
). ์ด ํ๋๋ ๋ฒํท์์ ๋ง๋ ํด๋(์:input/my-vid.mp4
)๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.STORAGE_OUTPUT_FOLDER
: ์ธ์ฝ๋ฉ๋ ๋์์ ์ถ๋ ฅ์ ์ ์ฅํ Cloud Storage ํด๋ ์ด๋ฆ์ ๋๋ค.
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
gcloud
- ์์
ํ๋๋ฅผ ์ ์ํ๋
request.json
ํ์ผ์ ๋ง๋ญ๋๋ค.gcloud
๋ช ๋ น์ด๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.- STORAGE_BUCKET_NAME: ๋ง๋ Cloud Storage ๋ฒํท์ ์ด๋ฆ์ ๋๋ค.
- STORAGE_INPUT_VIDEO: Cloud Storage ๋ฒํท์ ์๋ ํธ๋์ค์ฝ๋ฉํ๋ ๋์์์ ์ด๋ฆ์
๋๋ค(์:
my-vid.mp4
). ์ด ํ๋๋ ๋ฒํท์์ ๋ง๋ ํด๋(์:input/my-vid.mp4
)๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. - LOCATION: ์์
์ด ์คํ๋ ์์น์
๋๋ค. ๋ค์ ๋ชฉ๋ก์ ์์น๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์์น ํ์
us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
me-west1
me-central1
me-central2
- STORAGE_OUTPUT_FOLDER: ์ธ์ฝ๋ฉ๋ ๋์์ ์ถ๋ ฅ์ ์ ์ฅํ Cloud Storage ํด๋ ์ด๋ฆ์ ๋๋ค.
{ "config": { "inputs": [ { "key": "input0", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" } ], "elementaryStreams": [ { "key": "video-stream0", "videoStream": { "h264": { "heightPixels": 360, "widthPixels": 640, "bitrateBps": 550000, "frameRate": 60 } } }, { "key": "audio-stream0", "audioStream": { "codec": "aac", "bitrateBps": 64000 } } ], "muxStreams": [ { "key": "sd", "container": "mp4", "elementaryStreams": [ "video-stream0", "audio-stream0" ] } ], "output": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" }, "spriteSheets": [ { "filePrefix": "small-sprite-sheet", "spriteHeightPixels": 32, "spriteWidthPixels": 64, "columnCount": 10, "rowCount": 10, "totalCount": 100 }, { "filePrefix": "large-sprite-sheet", "spriteHeightPixels": 72, "spriteWidthPixels": 128, "columnCount": 10, "rowCount": 10, "totalCount": 100 } ] } }
- ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ ์๋ต์ด ํ์๋ฉ๋๋ค.gcloud transcoder jobs create --location=LOCATION --file="request.json"
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
C#
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ C# ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API C# API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Go
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Go ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API Go API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Java
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Java ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Node.js
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Node.js ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API Node.js API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
PHP
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ PHP ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API PHP API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Python ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Ruby
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Ruby ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API Ruby API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์ํ ๋์์์์ ์ด ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ๋ค์ ์คํ๋ผ์ดํธ ์ํธ๋ฅผ ์์ฑํฉ๋๋ค.
๊ทธ๋ฆผ 1. ์์ ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ์ํธ(๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง 100๊ฐ)
๊ทธ๋ฆผ 2. ํฐ ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ์ํธ(๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง 100๊ฐ)
์ ๊ธฐ์ ์ผ๋ก ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง ์์ฑ
๋ค์ ๊ตฌ์ฑ์์๋ ์์ ์ด๋ฏธ์ง์ ์คํ๋ผ์ดํธ ์ํธ์ ํฐ ์ด๋ฏธ์ง์ ์คํ๋ผ์ดํธ ์ํธ๋ฅผ ์์ฑํฉ๋๋ค. ๊ฐ ์คํ๋ผ์ดํธ ์ํธ์๋ ์
๋ ฅ ๋์์์์ 7์ด๋ง๋ค ์์ฑ๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ฉ๋๋ค. ์คํ๋ผ์ดํธ ์ํธ์๋ ์์
๊ตฌ์ฑ์ ํ๋ ์ด์์ VideoStream
์ด ํ์ํฉ๋๋ค.
์ด ๊ตฌ์ฑ์ ์์ ํ ํ๋ฆฟ์ ์ถ๊ฐํ๊ฑฐ๋ ์์ ์์ ๊ตฌ์ฑ์ ํฌํจํ ์ ์์ต๋๋ค.
REST
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: IAM ์ค์ ์ ๋์ด๋ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.LOCATION
: ์์ ์ด ์คํ๋ ์์น์ ๋๋ค. ์ง์๋๋ ๋ฆฌ์ ์ค ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.์์น ํ์us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
me-west1
me-central1
me-central2
STORAGE_BUCKET_NAME
: ๋ง๋ Cloud Storage ๋ฒํท์ ์ด๋ฆ์ ๋๋ค.STORAGE_INPUT_VIDEO
: Cloud Storage ๋ฒํท์ ์๋ ํธ๋์ค์ฝ๋ฉํ๋ ๋์์์ ์ด๋ฆ์ ๋๋ค(์:my-vid.mp4
). ์ด ํ๋๋ ๋ฒํท์์ ๋ง๋ ํด๋(์:input/my-vid.mp4
)๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.STORAGE_OUTPUT_FOLDER
: ์ธ์ฝ๋ฉ๋ ๋์์ ์ถ๋ ฅ์ ์ ์ฅํ Cloud Storage ํด๋ ์ด๋ฆ์ ๋๋ค.
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
gcloud
- ์์
ํ๋๋ฅผ ์ ์ํ๋
request.json
ํ์ผ์ ๋ง๋ญ๋๋ค.gcloud
๋ช ๋ น์ด๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.- STORAGE_BUCKET_NAME: ๋ง๋ Cloud Storage ๋ฒํท์ ์ด๋ฆ์ ๋๋ค.
- STORAGE_INPUT_VIDEO: Cloud Storage ๋ฒํท์ ์๋ ํธ๋์ค์ฝ๋ฉํ๋ ๋์์์ ์ด๋ฆ์
๋๋ค(์:
my-vid.mp4
). ์ด ํ๋๋ ๋ฒํท์์ ๋ง๋ ํด๋(์:input/my-vid.mp4
)๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. - LOCATION: ์์
์ด ์คํ๋ ์์น์
๋๋ค. ๋ค์ ๋ชฉ๋ก์ ์์น๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์์น ํ์
us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
me-west1
me-central1
me-central2
- STORAGE_OUTPUT_FOLDER: ์ธ์ฝ๋ฉ๋ ๋์์ ์ถ๋ ฅ์ ์ ์ฅํ Cloud Storage ํด๋ ์ด๋ฆ์ ๋๋ค.
{ "config": { "inputs": [ { "key": "input0", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" } ], "elementaryStreams": [ { "key": "video-stream0", "videoStream": { "h264": { "heightPixels": 360, "widthPixels": 640, "bitrateBps": 550000, "frameRate": 60 } } }, { "key": "audio-stream0", "audioStream": { "codec": "aac", "bitrateBps": 64000 } } ], "muxStreams": [ { "key": "sd", "container": "mp4", "elementaryStreams": [ "video-stream0", "audio-stream0" ] } ], "output": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" }, "spriteSheets": [ { "filePrefix": "small-sprite-sheet", "spriteHeightPixels": 32, "spriteWidthPixels": 64, "interval": "7s" }, { "filePrefix": "large-sprite-sheet", "spriteHeightPixels": 72, "spriteWidthPixels": 128, "interval": "7s" } ] } }
- ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ ์๋ต์ด ํ์๋ฉ๋๋ค.gcloud transcoder jobs create --location=LOCATION --file="request.json"
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
C#
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ C# ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API C# API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Go
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Go ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API Go API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Java
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Java ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API Java API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Node.js
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Node.js ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API Node.js API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
PHP
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ PHP ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API PHP API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Python
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Python ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API Python API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
Ruby
์ด ์ํ์ ์ฌ์ฉํด ๋ณด๊ธฐ ์ ์ Transcoder API ๋น ๋ฅธ ์์: ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ Ruby ์ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์. ์์ธํ ๋ด์ฉ์ Transcoder API Ruby API ์ฐธ๊ณ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Transcoder API์ ์ธ์ฆํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธ์ฆ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์ํ ๋์์์์ ์ด ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ๋ค์ ์คํ๋ผ์ดํธ ์ํธ๋ฅผ ์์ฑํฉ๋๋ค.
๊ทธ๋ฆผ 3. ์์ ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ์ํธ(7์ด๋ง๋ค ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง 1๊ฐ ์์ฑ)
๊ทธ๋ฆผ 4. ํฐ ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ์ํธ(7์ด๋ง๋ค ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง 1๊ฐ ์์ฑ)
๊ธธ์ด๊ฐ 60์ด์ธ ์ํ ๋์์์์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง 8๊ฐ๊ฐ ์์ฑ๋ฉ๋๋ค.