StreamLink API Reference
On this page
StreamLink의 API 서비스 코드는 mdc, API 버전은 2020-08-28입니다. 다음 예제는 서울 리전의 RTMP 입력을 StreamLive로 전달하는 기본 구성을 설명합니다.
호출 규격
| 항목 | 값 |
|---|---|
| Endpoint | POST https://mdc.tencentcloudapi.com |
| Action | 아래 API 목록 참조 |
| 요청 서명 | 공식 SDK / TCCLI의 Tencent Cloud API 3.0 서명 사용 |
기본 정보
| 항목 | 값 |
|---|---|
| API 서비스 코드 | mdc |
| API 버전 | 2020-08-28 |
| 인증 | Tencent Cloud API 3.0 / TC3-HMAC-SHA256 |
| 호출 도구 | Tencent Cloud SDK / TCCLI |
실행 전 확인
- TCCLI 인증을 안전하게 설정하고 해당 리소스의 생성 / 조회 / 시작 / 정지 권한을 확인합니다.
REPLACE_로 시작하는 값은 실제 리소스 값으로 변경합니다.203.0.113.10/32는 문서용 IP입니다. 실제 송출 장비의 공인 IP로 바꿉니다.- 생성 명령은 새 리소스를 만듭니다. 같은 명령을 반복 실행하기 전에 기존 생성 결과를 조회합니다.
API 목록과 요청 파라미터
| Action | 동작 |
|---|---|
CreateStreamLinkFlow |
생성 |
CreateStreamLinkInput |
생성 |
DescribeStreamLinkFlow |
조회 |
CreateStreamLinkOutputInfo |
생성 |
StartStreamLinkFlow |
시작 |
StopStreamLinkFlow |
정지 |
응답과 실행 흐름
생성 응답에서 반환된 리소스 ID를 보관하고 조회 API로 상태를 확인하십시오. 생성 요청의 성공과 실제 입력 수신·출력 전송의 성공은 구분합니다. 다음 단계는 해당 리소스의 상태를 확인한 뒤 실행하십시오.
오류와 호출 제한
연결 확인
| 증상 | 확인 사항 |
|---|---|
InvalidParameter.MaxBandwidth |
bps 단위와 허용값 |
| Flow ID 파싱 결과 확인 | 원시 HTTP와 CLI 응답의 래퍼 차이, Info.FlowId 위치 |
| 생성 요청 후 결과 불명 | 같은 생성 요청을 반복하기 전에 목록과 상세 조회 |
| 입력 연결 결과 확인 | 허용 IP, 입력 주소, AppName / Stream Key |
| 입력은 정상인데 출력 — | 출력 유형 / 목적지, 수신 측 상태, 출력 연결 로그 |
요청 문의에는 Action, 리전, 응답 코드, RequestId, 발생 시각을 전달합니다. 인증 값은 별도 보관합니다.
요청 예제
1. Flow 생성
tccli mdc CreateStreamLinkFlow --region ap-seoul \
--FlowName demo_flow \
--MaxBandwidth 20000000MaxBandwidth는 bps 단위의 필수값입니다. 공식 API의 허용값은 10,000,000 / 20,000,000 / 50,000,000입니다. Event에 연결하려면 해당 Event ID를 EventId로 지정합니다.
공식 원시 HTTP 응답의 식별자 경로는 Response.Info.FlowId입니다. 다음은 구조 설명용 응답입니다.
{
"Response": {
"Info": {
"FlowId": "REPLACE_FLOW_ID",
"FlowName": "demo_flow",
"MaxBandwidth": 20000000,
"State": "IDLE",
"InputGroup": [],
"OutputGroup": []
},
"RequestId": "REPLACE_REQUEST_ID"
}
}TCCLI 출력은 Response 래퍼를 제외할 수 있으므로 실제 출력 구조를 확인합니다.
2. 입력 추가
tccli mdc CreateStreamLinkInput --region ap-seoul \
--FlowId REPLACE_FLOW_ID \
--InputGroup '[{"InputName":"demo_input","Protocol":"RTMP","AllowIpList":["203.0.113.10/32"]}]'API의 RTMP는 입력 유형입니다. 콘솔 RTMP_PUSH와 연결 방향을 확인하고 송출 IP를 허용 목록에 등록합니다.
생성 후 상세 조회에서 입력 주소와 RTMP 설정을 확인합니다.
tccli mdc DescribeStreamLinkFlow --region ap-seoul --FlowId REPLACE_FLOW_IDRTMP 송출 URL은 입력 응답의 IP / 포트 / AppName / StreamKey를 사용합니다. 프로그램이 서버 URL과 Stream Key를 따로 받으면 나누어 입력합니다.
3. StreamLive로 보내는 출력 추가
다음 JSON을 link-output.json으로 저장합니다. Flow ID, 목적지 URL, Stream Key는 실제 StreamLive 입력 정보로 변경합니다.
{
"FlowId": "REPLACE_FLOW_ID",
"Output": {
"OutputName": "demo_to_live",
"Protocol": "RTMP",
"OutputRegion": "ap-seoul",
"RTMPSettings": {
"Destinations": [
{
"Url": "rtmp://REPLACE_INPUT_HOST/REPLACE_APP_NAME",
"StreamKey": "REPLACE_STREAM_KEY"
}
]
}
}
}tccli mdc CreateStreamLinkOutputInfo --region ap-seoul --cli-input-json file://link-output.json이 API는 FlowId로 지정한 Flow의 출력을 생성합니다. 생성 후 상세 조회에서 OutputGroup에 목적지가 들어 있는지 확인합니다.
4. 시작과 확인
tccli mdc StartStreamLinkFlow --region ap-seoul --FlowId REPLACE_FLOW_IDFlow 실행 상태, 입력 비트레이트, 출력 비트레이트, StreamLive 입력 수신을 순서대로 확인합니다. 제어 API의 성공 응답은 미디어 전송 성공과 다릅니다.
5. 종료
테스트가 끝나면 대상 Flow를 확인하고 정지합니다.
tccli mdc StopStreamLinkFlow --region ap-seoul --FlowId REPLACE_FLOW_ID입력 / 출력 노드 실행과 전송에는 요금이 발생할 수 있습니다.
