Audio Transcoding
On this page
이 문서는 Tencent Cloud 공식 문서 Audio/Video Transcoding Integration을 참고해 오디오 기능만 담았습니다.
입력 오디오를 다른 인코딩 포맷, 비트레이트, 샘플레이트로 변환합니다. 오프라인 태스크로 동작하며 표준 오디오 트랜스코딩, 극속 고화질(TSC) 오디오 트랜스코딩, 적응형 비트레이트 오디오를 지원합니다.
지원 유형
| 유형 | 설명 |
|---|---|
| 표준 오디오 트랜스코딩 | 비트레이트를 낮추고 인코딩 표준, 샘플레이트, 채널을 변경해 단말과 네트워크 환경에 맞춤 |
| TSC 오디오 트랜스코딩 | 표준 오디오 트랜스코딩의 업그레이드. 오디오 유형에 따라 적응형 최적화해 낮은 대역폭으로 더 선명한 청취 경험을 제공 |
| 적응형 비트레이트 오디오 | 입력 오디오를 여러 비트레이트 스트림으로 변환해 재생 환경에 맞춰 선택 |
API 정보
| 항목 | 값 |
|---|---|
| 서비스 | MPS |
| API Action | ProcessMedia |
| 엔드포인트 | mps.tencentcloudapi.com |
| API 버전 | 2019-06-12 |
| 처리 방식 | 비동기 (TaskId 발급 후 결과 조회) |
인증은 모든 API가 공통으로 TC3-HMAC-SHA256(SecretId/SecretKey) 서명을 사용합니다. 서명 생성 방법은 Quick Start의 TokenHub 문서를 참고하세요.
요청 파라미터
| 파라미터 | 타입 | 필수 | 예시 | 설명 |
|---|---|---|---|---|
| InputInfo | Object | 필수 | {"Type":"URL","UrlInputInfo":{"Url":"https://example.com/audio.mp3"}} |
입력 미디어. Type은 URL 또는 COS |
| OutputStorage | Object | 필수 | {"Type":"COS","CosOutputStorage":{"Bucket":"mybucket-125xxx","Region":"ap-guangzhou"}} |
출력 저장소. COS Bucket과 Region 지정 |
| OutputDir | String | 선택 | /output/audio/ |
출력 디렉터리. /로 시작하고 /로 끝나야 함 |
| MediaProcessTask.TranscodeTaskSet.N.Definition | Integer | 필수 | 100800 |
트랜스코딩 템플릿 ID. 오디오 전용 템플릿 또는 커스텀 템플릿 사용 |
| MediaProcessTask.TranscodeTaskSet.N.OverrideParameter.Container | String | 선택 | m4a |
출력 컨테이너. 오디오 전용 출력이면 m4a 등 오디오 컨테이너 지정 |
| MediaProcessTask.TranscodeTaskSet.N.OverrideParameter.AudioTemplate.Codec | String | 선택 | aac |
출력 오디오 코덱 |
| MediaProcessTask.TranscodeTaskSet.N.OverrideParameter.AudioTemplate.Bitrate | Integer | 선택 | 64 |
출력 오디오 비트레이트(kbps) |
| MediaProcessTask.TranscodeTaskSet.N.OverrideParameter.AudioTemplate.SampleRate | Integer | 선택 | 44100 |
출력 샘플레이트(Hz) |
| MediaProcessTask.TranscodeTaskSet.N.OverrideParameter.AudioTemplate.AudioChannel | Integer | 선택 | 2 |
출력 채널 수 |
| TaskNotifyConfig.NotifyUrl | String | 선택 | https://example.com/callback |
태스크 완료 콜백 URL. NotifyType은 URL |
무음 패킷 보충
오디오 프레임이 불연속이거나 끝에 무음이 없을 때 무음 패킷을 채울 수 있습니다. StdExtInfo의 audio_info.enable_mute_audio 값으로 제어합니다.
| 값 | 동작 |
|---|---|
0 |
사용 안 함 (기본값) |
1 |
오디오 프레임이 불연속일 때 무음 패킷 보충 |
2 |
1번 동작에 더해 끝부분 무음까지 보충 |
LANGUAGE
"StdExtInfo" : "{\"audio_info\":{\"enable_mute_audio\":1}}"호출 예시
LANGUAGE
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.mps.v20190612 import mps_client, models
cred = credential.Credential("<SecretId>", "<SecretKey>")
http_profile = HttpProfile()
http_profile.endpoint = "mps.tencentcloudapi.com"
client = mps_client.MpsClient(cred, "ap-guangzhou", ClientProfile(httpProfile=http_profile))
params = {
"InputInfo": {
"Type": "URL",
"UrlInputInfo": {"Url": "https://example.com/audio.mp3"}
},
"OutputStorage": {
"Type": "COS",
"CosOutputStorage": {"Bucket": "mybucket-125xxx", "Region": "ap-guangzhou"}
},
"OutputDir": "/output/audio/",
"MediaProcessTask": {
"TranscodeTaskSet": [{
"Definition": 100800,
"OverrideParameter": {
"Container": "m4a",
"AudioTemplate": {
"Codec": "aac",
"Bitrate": 64,
"SampleRate": 44100,
"AudioChannel": 2
}
}
}]
}
}
req = models.ProcessMediaRequest()
req.from_json_string(json.dumps(params))
resp = client.ProcessMedia(req)
print(resp.to_json_string())응답 예시
LANGUAGE
{
"TaskId": "24000022-WorkflowTask-b20a8exxxxxxx1tt110253",
"RequestId": "3c140219-cfe9-470e-b241-907877d6fb03"
}사용 안내
오디오 트랜스코딩은 출력 파일 길이 기준으로 과금됩니다. 표준 트랜스코딩, TSC 트랜스코딩, 오디오 전용 트랜스코딩 등 처리 유형별 요금이 다릅니다.
결과 조회는 DescribeTaskDetail API에 TaskId를 입력하거나 완료 콜백으로 받을 수 있습니다.
