StreamLive 채널 구성
On this page
StreamLive 채널에 입력 / 트랜스코딩 설정 / 출력 목적지를 연결한 뒤 시작합니다. 채널은 원본을 지정한 화질로 인코딩해 목적지로 전달합니다.
이 문서에서는 1080p30 입력 하나로 1080p30과 720p30 출력을 만들고, 두 출력을 StreamPackage로 전송합니다.
시작 전 준비
- 입력 구성을 완료하고 송출 장비에서 해당 입력으로 전송할 수 있어야 합니다.
- StreamPackage 채널을 먼저 생성하고 채널 ID를 확인합니다. 재생 URL이나 입력 URL이 아니라 채널 ID가 필요합니다.
- 출력은 H.264 영상과 AAC 오디오를 함께 포함하는 결합형 템플릿을 사용합니다. 템플릿의 개념은 트랜스코딩 템플릿을 참고합니다.
- 채널 실행에는 과금이 발생합니다. 검증 종료 후 정지할 채널과 계속 운영할 채널을 구분합니다.
1. 채널과 입력 연결
- StreamLive 콘솔에서 작업 리전을 선택합니다.
- 채널 생성 화면에서 이름을
demo_channel로 입력합니다. - 입력 추가 단계에서 준비한 입력을 선택합니다.
- 다중 오디오 입력은 사용할 트랙을 지정합니다. 기본 구성은 첫 번째 오디오 트랙입니다.
입력이 채널에 연결된 상태와 신호가 수신되는 상태는 다릅니다.
2. 출력 그룹과 목적지 설정
출력 그룹은 같은 전송 방식과 목적지를 사용하는 출력 묶음입니다. 출력은 실제로 내보낼 개별 화질입니다.
| 설정 | 이 예제의 값 | 의미 |
|---|---|---|
| 출력 그룹 이름 | demoPackage |
출력 묶음을 구분하는 이름 |
| 출력 그룹 유형 | HLS_STREAM_PACKAGE |
현재 계정의 StreamPackage로 HLS 전송 |
| 목적지 | 생성한 StreamPackage 채널 ID | 스트림을 수신할 채널 |
출력 1 |
output1080p |
1920×1080, 30fps |
출력 2 |
output720p |
1280×720, 30fps |
일반 HLS 출력 유형은 목적지 URL에 HTTP PUT으로 전송합니다. HLS_STREAM_PACKAGE 유형은 StreamPackage 채널 ID를 지정합니다.
3. 화질별 트랜스코딩 설정
각 출력의 Transcoding Setting에서 영상과 오디오가 포함된 결합형 템플릿을 설정합니다.
| 설정 | 1080p 출력 |
720p 출력 |
|---|---|---|
| 템플릿 이름 | demo1080p |
demo720p |
| 영상 코덱 | H.264 | H.264 |
| 해상도 | 1920×1080 |
1280×720 |
| 프레임레이트 | 30fps |
30fps |
| 영상 비트레이트 | 4Mbps |
2Mbps |
| 비트레이트 제어 | ABR | ABR |
| 오디오 | AAC, 128kbps, 48kHz |
AAC, 128kbps, 48kHz |
비트레이트는 예제값입니다. 움직임이 많은 원본과 정적인 원본은 필요한 비트레이트가 다르므로 실제 콘텐츠로 검증합니다. 한 채널 내 모든 출력 그룹과 출력의 프레임레이트 설정은 동일하게 맞춥니다.
이 예제는 출력 하나에 결합형 템플릿 하나를 연결합니다. 별도 영상 / 오디오 템플릿을 사용하는 분리형 구성은 다중 오디오 트랙 등에 사용할 수 있습니다.
4. HLS 설정
| 설정 | 예제값 | 확인 사항 |
|---|---|---|
| Segment Duration | 4초 |
API SegmentDuration에는 밀리초 단위인 4000 입력 |
| Segment Number | 5 |
출력 플레이리스트에 유지할 세그먼트 개수 |
| Scheme | MERGE |
영상과 오디오를 합친 세그먼트 |
| Segment Type | ts |
MPEG-TS 세그먼트 |
| PDT Insertion | 활성화 | 프로그램 시각 태그 삽입 |
| PDT Duration | 600초 |
PDT 태그 삽입 간격. 저장 기간이나 타임시프트 범위가 아님 |
약 4초인 세그먼트 5개는 약 20초 분량의 목록에 해당합니다. 인코딩 / 전송 / CDN 캐시 / 플레이어 버퍼가 추가로 영향을 줍니다.
저지연 HLS / fMP4 / DRM은 출력 유형 / 코덱 / 패키저 / 플레이어 조합에 맞춰 추가 설정합니다.
5. 저장 / 시작 / 재생 확인
- 설정을 확인한 뒤 Confirm과 Done으로 저장합니다.
- 대상 채널의 Start를 선택합니다.
- 송출 측에서 입력 신호를 전송하고 채널 상태와 입력 모니터링을 확인합니다.
- StreamPackage의 Output Endpoint에서 재생 URL을 확인합니다.
- 마스터 플레이리스트에 두 화질이 있는지, 각 미디어 플레이리스트가 갱신되는지 확인합니다.
- 플레이어에서 두 화질을 각각 재생하고 영상 / 오디오 / 화질 전환을 확인합니다.
채널 시작 후 입력 수신 → 인코딩 출력 → 패키저 수신 → CDN 응답 → 플레이어 재생 순서로 확인합니다.
API로 동일 구성 생성
다음 JSON을 channel.json으로 저장하고 REPLACE_INPUT_ID와 REPLACE_PACKAGE_CHANNEL_ID를 실제 값으로 바꿉니다.
{
"Name": "demo_channel",
"AttachedInputs": [
{
"Id": "REPLACE_INPUT_ID"
}
],
"AVTemplates": [
{
"Name": "demo1080p",
"NeedVideo": 1,
"NeedAudio": 1,
"Vcodec": "H264",
"Width": 1920,
"Height": 1080,
"Fps": 30,
"VideoBitrate": 4000000,
"RateControlMode": "ABR",
"Acodec": "AAC",
"AudioBitrate": 128000,
"AudioSampleRate": 48000,
"FrameRateType": "SPECIFIED_HZ"
},
{
"Name": "demo720p",
"NeedVideo": 1,
"NeedAudio": 1,
"Vcodec": "H264",
"Width": 1280,
"Height": 720,
"Fps": 30,
"VideoBitrate": 2000000,
"RateControlMode": "ABR",
"Acodec": "AAC",
"AudioBitrate": 128000,
"AudioSampleRate": 48000,
"FrameRateType": "SPECIFIED_HZ"
}
],
"OutputGroups": [
{
"Name": "demoPackage",
"Type": "HLS_STREAM_PACKAGE",
"Outputs": [
{
"Name": "output1080p",
"AVTemplateNames": [
"demo1080p"
]
},
{
"Name": "output720p",
"AVTemplateNames": [
"demo720p"
]
}
],
"HlsRemuxSettings": {
"SegmentDuration": 4000,
"SegmentNumber": 5,
"PdtInsertion": "OPEN",
"PdtDuration": 600,
"Scheme": "MERGE",
"SegmentType": "ts"
},
"StreamPackageSettings": {
"Id": "REPLACE_PACKAGE_CHANNEL_ID"
}
}
]
}TCCLI 인증과 리전을 설정한 환경에서 실행합니다. 이 명령은 새 채널을 생성합니다.
tccli mdl CreateStreamLiveChannel --region ap-seoul --cli-input-json file://channel.json생성 응답에서 채널 ID를 확인한 다음 조회 / 시작합니다.
tccli mdl DescribeStreamLiveChannel --region ap-seoul --Id REPLACE_CHANNEL_ID
tccli mdl StartStreamLiveChannel --region ap-seoul --Id REPLACE_CHANNEL_ID변경과 종료
정지가 필요한 변경은 점검 시간 또는 예비 경로를 준비한 뒤 IDLE 상태에서 적용합니다. 테스트 후 대상 ID를 확인해 채널을 정지합니다.
tccli mdl StopStreamLiveChannel --region ap-seoul --Id REPLACE_CHANNEL_IDStreamLink 전송, StreamPackage 저장 기능, CDN 사용도 각각 정리합니다.
