1. StreamPackage 채널과 엔드포인트
On this page
StreamPackage에서 HLS를 수신할 채널과 재생 엔드포인트를 생성합니다. 이후 StreamLive의 출력 목적지로 이 채널을 지정하고 CSS 재생 도메인을 연결합니다.
사전 준비
- StreamPackage와 CSS의 사용 권한을 확인합니다.
- 사용할 리전을 선택합니다. 이 예제는 서울(ap-seoul)을 기준으로 합니다.
- CSS 재생 도메인을 준비하고 DNS 및 HTTPS 인증서 설정을 확인합니다.
- 기존 운영 채널과 구분할 수 있는 테스트용 이름을 사용합니다.
1. 채널 생성
StreamPackage 콘솔에서 대상 리전을 선택하고 Create Channel을 누릅니다.
| 항목 | 예제 설정 | 의미 |
|---|---|---|
| Name | demo_channel | 채널 구분 이름 |
| Input Protocol | HLS | StreamLive에서 수신할 형식 |
| Max Segment Duration | 원본 세그먼트 길이 이상 | 수신 가능한 세그먼트 최대 길이 |
| Max Playlist Duration | 원본 목록 길이 이상 | 수신 가능한 플레이리스트 최대 길이 |
최대 길이는 출력 세그먼트를 만드는 설정이 아니라 입력을 수신하기 위한 제한값입니다. 공식 문서의 기본값은 각각 15초와 600초이며, 실제 입력 조건에 맞게 설정합니다.
Create를 선택한 뒤 채널 상세 화면에서 이름 / ID / 입력 프로토콜을 확인합니다.

채널 상세의 Details에서 이름 / ID / 프로토콜을 확인합니다. Input은 수신 주소, Output Endpoint는 재생 주소, CDN은 배포 연결을 확인하는 탭입니다. 캡처의 이름과 ID는 예시이며 실제 작업할 채널 값을 사용합니다.
2. 입력 주소 확인
채널 상세의 Input에서 자동 생성된 두 입력 주소를 확인합니다.
입력 HTTP 인증을 사용하면 발급된 사용자 이름과 비밀번호를 송출 측에도 반영합니다.

실제 입력 주소는 비공개 처리했습니다. 각 입력 행에서 주소를 확인하고 송출 측에 적용합니다.
3. 재생 엔드포인트 생성
- 채널 상세에서 Create Endpoint를 선택합니다.
- 엔드포인트 이름을 입력하고 유형을 HLS로 지정합니다.
- Manifest Name을
index로 지정합니다. 기본값main을 사용했다면 최종 파일명도main.m3u8이 됩니다. - 필요한 IP 접근 정책과 AuthKey를 설정합니다. AuthKey는 HTTP 헤더
X-TENCENT-PACKAGE를 이용하는 인증이므로 실제 요청 참조 대상가 헤더를 보낼 수 있는지 확인합니다. - 기본 라이브 재생 확인에서는 타임시프트 / DRM 같은 추가 기능을 요구사항이 있을 때만 설정합니다.
- Confirm으로 저장하고 생성된 Endpoint URL을 확인합니다.
엔드포인트 생성 완료와 영상 재생 성공은 별도 단계입니다.

현재 콘솔의 재생 목록 이름 필드는 Playback List Name입니다. 공식 문서의 Manifest Name에 해당하며, 기본값 main을 사용하면 main.m3u8로 생성됩니다.

위 캡처는 일반 HLS 엔드포인트 행만 표시하며 재생 주소는 가렸습니다. 실제 작업에서는 해당 행의 URL과 Details를 확인합니다.
4. CSS 재생 도메인 연결
채널 상세의 CDN 탭에서 접근 권한과 배포 구성을 확인합니다. 두 방향의 권한이 모두 필요합니다.
| 방향 | 필요한 이유 |
|---|---|
| StreamPackage → CSS | StreamPackage에서 CSS 재생 도메인을 구성 |
| CSS → StreamPackage | CSS가 패키징 원본의 영상을 가져오기 |
Authorization 절차에서 서비스 역할의 권한을 확인하고 승인한 뒤, CSS 측 StreamPackage 사용 권한이 Activated 상태인지 확인합니다. 권한이 없다면 계정 관리자에게 요청합니다.
권한 설정 후 Edit Configuration에서 재생 도메인을 지정하고 Confirm으로 저장합니다. 새 도메인은 DNS 사업자에 안내된 CNAME을 등록해야 합니다. HTTPS로 재생하려면 재생 도메인에 유효한 인증서도 필요합니다.

Enabled는 콘솔의 활성화 상태입니다. DNS 해석, HTTPS 인증서 유효성, 실제 원본 접근과 영상 재생 성공은 별도 검증이 필요합니다.
5. 다음 단계로 전달할 정보
| 정보 | 사용 위치 |
|---|---|
| StreamPackage 채널 ID | StreamLive의 HLS_STREAM_PACKAGE 출력 목적지 |
| 입력 주소와 필요한 인증 정보 | 송출 설정 확인 |
| Endpoint URL | 원본 직접 재생 확인 |
| CSS 재생 도메인 | 시청자용 재생 주소 |
CDN 재생 주소는 연결된 Endpoint URL의 도메인을 CSS 재생 도메인으로 바꾸고 경로를 유지합니다.
다음은 2. StreamLive 입력과 채널입니다. 전체 연결 후 4. 송출하고 재생 확인하기에서 원본과 CDN을 각각 검사합니다.
테스트 종료
다른 서비스에서 사용 중인지 확인한 뒤 테스트 송출을 중지합니다. 삭제가 필요한 경우 CDN 연결 및 엔드포인트 의존성을 확인하고, 엔드포인트를 먼저 제거한 다음 채널을 삭제합니다.
공식 문서
API로 구성하는 경우
다음 명령은 콘솔 절차의 대안입니다. 마스킹된 ID와 주소는 실제 값으로 변경해야 합니다.
채널 생성
프로토콜은 HLS로 지정합니다.
tccli mdp CreateStreamPackageChannel \
--region ap-seoul \
--Name justinkim_quickstart \
--Protocol HLS{
"Info": {
"Id": "6AA6************32BF",
"Name": "justinkim_quickstart",
"Protocol": "HLS"
}
}응답의 Id는 다음 단계부터 계속 쓰입니다.
채널 이름은 streamlive_quickstart처럼 영문 / 숫자 / 밑줄을 사용합니다.
엔드포인트 생성
엔드포인트는 "패키징 결과를 어떤 형태로 내보낼까"를 정하는 단위입니다. 여기서는 HLS 단일 엔드포인트를 만듭니다.
tccli mdp CreateStreamPackageChannelEndpoint \
--region ap-seoul \
--Id 6AA6************32BF \
--Name justinkim_quickstart_hls \
--Protocol HLS \
--Manifest index \
--AuthInfo '{"WhiteIpList":[],"BlackIpList":[],"AuthKey":""}'Manifest:index로 두면index.m3u8이 마스터 플레이리스트가 됩니다AuthInfo: 지금은 비워 둡니다. 운영 환경에서는 IP 제한이나 인증 키를 반드시 걸어주세요
주소 확인
tccli mdp DescribeStreamPackageChannel \
--region ap-seoul \
--Id 6AA6************32BF{
"Points": {
"Inputs": [
{
"Url": "https://13******46.ap-seoul.streampackage.srclivepush.myqcloud.com/v1/01a0****96005/01a0****96006"
},
{
"Url": "https://13******46.ap-seoul.streampackage.srclivepush.myqcloud.com/v1/01a0****96005/01a0****96007"
}
],
"Endpoints": [
{
"Name": "justinkim_quickstart_hls",
"Url": "https://13******46.ap-seoul.streampackage.srclivepull.myqcloud.com/v1/01a0****96005/01a0****86d1/index.m3u8",
"Protocol": "HLS",
"Manifest": "index"
}
]
}
}CSS 재생 도메인 연결
StreamPackage 채널에 CSS 재생 도메인을 바인딩합니다. 이 예제에서는 기존에 등록된 Seoul 리전 도메인인 cdn.tencentpoc.com을 사용합니다.
tccli mdp BindNewLVBDomainWithChannel \
--region ap-seoul \
--ChannelId 6AA6************32BF \
--LVBDomain cdn.tencentpoc.com{
"LVBDomain": "cdn.tencentpoc.com"
}바인딩이 끝나면 엔드포인트 URL의 도메인만 재생 도메인으로 바꾼 것이 CSS 재생 주소가 됩니다. 경로는 그대로입니다.
https://cdn.tencentpoc.com/v1/01a0****96005/01a0****86d1/index.m3u8CDN 연결 후 원본 접근 권한, 인증, 요청 경로 / 쿼리, DNS / TLS와 실제 재생을 확인합니다. 변경 전에는 해당 요청 구간을 확인합니다.
구성 결과
| 항목 | 값 |
|---|---|
| Channel | justinkim_quickstart (6AA6************32BF) |
| Endpoint | justinkim_quickstart_hls |
| Input URL (StreamLive가 푸시할 곳) | https://13****<strong>46.ap-seoul.streampackage.srclivepush.myqcloud.com/v1/01a0</strong><strong>96005/01a0</strong>**96006 |
| Endpoint URL (원본) | https://13****<strong>46.ap-seoul.streampackage.srclivepull.myqcloud.com/v1/01a0</strong><strong>96005/01a0</strong>**86d1/index.m3u8 |
| CSS 재생 URL | https://cdn.tencentpoc.com/v1/01a0**<strong>96005/01a0</strong>**86d1/index.m3u8 |
