WAND wiki
최근 문서

검색 결과가 없습니다. 모델명이나 다른 키워드로 검색해 보세요.

Quick StartLast Updated 2026-09-30

2. StreamLive 입력과 채널

On this page

StreamLive에서 원본을 받을 입력과 트랜스코딩 채널을 구성하고, 처리한 영상을 StreamPackage로 전달합니다. 콘솔을 이용한 기본 절차를 먼저 설명하고 API 예시를 이어서 제공합니다.

사전 준비

  • 1. StreamPackage 채널과 엔드포인트를 완료하고 채널 ID를 준비합니다.
  • 같은 계정의 대상 리전을 확인합니다.
  • 입력에 접속할 송출 측 공인 IP를 준비합니다. StreamLink를 연결할 경우 인코더가 아니라 StreamLive에 실제 접속하는 StreamLink 출력 측 주소를 기준으로 접근 정책을 설정합니다.
  • 아래 1080p / 720p 설정은 예시입니다. 원본 해상도, 프레임레이트와 필요한 출력 품질에 맞게 조정합니다.

1. 보안 그룹과 입력 생성

  1. StreamLive 콘솔의 Security Group에서 입력 접근 정책을 생성합니다.
  2. 실제 송출 IP만 허용합니다. 단일 IPv4 주소는 203.0.113.10/32와 같은 CIDR 형식으로 입력합니다. 이 주소는 설명용이므로 실제 공인 IP로 바꿉니다.
  3. Input → Create Input에서 이름과 RTMP_PUSH 유형을 선택합니다.
  4. 보안 그룹을 연결하고 Destination의 application name과 stream name을 입력합니다.
  5. 생성 후 콘솔에 표시된 푸시 주소를 확인합니다. 이 주소는 다음 단계에서 StreamLink Output의 목적지로 사용합니다.

입력 A/B는 별도 파이프라인입니다. 이중화를 구성할 때는 각각의 주소와 송출 경로를 확인합니다.

2. 채널과 출력 구성

  1. Channel → Create Channel을 선택하고 채널 이름을 입력합니다.
  2. 앞에서 만든 Input을 연결합니다.
  3. 출력 그룹의 유형을 HLS_STREAM_PACKAGE로 선택합니다.
  4. 목적지에 같은 계정의 StreamPackage 채널 ID를 지정합니다. 일반 HLS 출력은 HTTP PUT 목적지 URL을 사용하는 별도 유형이므로 구분합니다.
  5. Output을 두 개 추가하고 각각의 Transcoding Setting → Setting에서 아래 설정을 적용합니다.
설정 1080p 출력 720p 출력
오디오 / 영상 템플릿 이름 quickstart1080p quickstart720p
영상 코덱 H.264 H.264
해상도 1920 × 1080 1280 × 720
프레임레이트 30 fps 30 fps
영상 비트레이트 4 Mbps 2 Mbps
오디오 AAC, 128 kbps AAC, 128 kbps

템플릿 이름은 영문 / 숫자 1~20자로 지정합니다. 채널 안의 출력 프레임레이트 설정은 동일하게 맞춥니다.

세그먼트 설정: Segment 설정에서 이 예제는 TS 형식, 세그먼트 길이 4초, 목록 유지 개수 5개로 구성합니다. 콘솔 표시 단위를 확인합니다. 아래 API 예시의 SegmentDuration: 4000은 밀리초 단위입니다. 설정 저장: Confirm → Done으로 저장합니다.

3. 시작과 상세 화면 확인

대상 채널에서 Start를 선택하고 상태를 확인합니다.

StreamLive 채널 상세 화면: 실행 상태와 연결된 입력 확인

  • Information → Basic Information → State: RUNNING이면 채널이 시작된 상태입니다.
  • Input Setting: 앞에서 만든 입력의 이름과 ID가 연결되어 있는지 확인합니다.
  • Output Group Setting: StreamPackage 목적지와 두 개의 출력을 확인합니다.
  • Alerts / Health / Logs: 입력 및 출력 장애가 있는지 확인합니다.

미리보기 설정과 입력 상태를 확인하고, 최종 판정은 StreamPackage 미디어 목록 갱신 및 실제 영상 / 오디오 재생으로 진행합니다.

4. 다음 단계와 테스트 종료

3. StreamLink Flow 연결에서 원본 송출을 연결한 뒤 4. 송출 및 재생 확인을 진행합니다.

실행 중 채널은 정지한 뒤 설정을 편집합니다. 테스트 종료 시 대상 채널 / 입력 / 보안 그룹의 사용 여부를 확인하고 전용 리소스를 정리합니다.

공식 문서

API로 구성하는 경우

다음은 콘솔 절차와 같은 구성을 만드는 API 예시입니다.

보안 그룹 생성

입력에 실제 접속하는 송출 IP를 허용합니다. 아래 설명용 IP를 실제 송출 공인 IP로 변경합니다.

LANGUAGE
tccli mdl CreateStreamLiveInputSecurityGroup \
  --region ap-seoul \
  --Name justinkim_ingest_allowed \
  --Whitelist 203.0.113.10/32
LANGUAGE
{
  "Id": "6AA6************26B1"
}

203.0.113.10/32는 설명용 주소입니다. StreamLive에 접속하는 송출 측 공인 IP로 변경합니다. 전체 주소 허용은 피합니다.

입력 생성

RTMP_PUSH 타입으로 만들고 AppName / StreamName을 지정합니다. 이 조합이 곧 푸시 주소가 됩니다.

LANGUAGE
tccli mdl CreateStreamLiveInput \
  --region ap-seoul \
  --Name justinkim_quickstart_input \
  --Type RTMP_PUSH \
  --SecurityGroupIds '["6AA6************26B1"]' \
  --InputSettings '[{"AppName":"justinkim","StreamName":"quickstart"}]'
LANGUAGE
{
  "Id": "6AA6************26B2"
}

확인해 보면 입력 주소를 줍니다.

LANGUAGE
tccli mdl DescribeStreamLiveInput \
  --region ap-seoul \
  --Id 6AA6************26B2
LANGUAGE
{
  "Type": "RTMP_PUSH",
  "InputSettings": [
    {
      "AppName": "justinkim",
      "StreamName": "quickstart",
      "InputAddress": "rtmp://13******46.ap-seoul-1.streamlive.myqcloud.com"
    }
  ]
}

즉 푸시 주소는 다음 두 줄로 정리됩니다.

LANGUAGE
URL       rtmp://13******46.ap-seoul-1.streamlive.myqcloud.com/justinkim
StreamKey quickstart

채널 생성

채널은 입력 + 트랜스코딩 템플릿 + 출력 그룹을 묶은 실행 단위입니다. 설정이 길어서 JSON 파일로 만들어 사용합니다.

LANGUAGE
cat > /tmp/streamlive-channel.json <<'EOF'
{
  "Name": "justinkim_quickstart_channel",
  "AttachedInputs": [{ "Id": "6AA6************26B2" }],
  "AVTemplates": [
    {
      "Name": "justinkim1080p",
      "NeedVideo": 1, "Vcodec": "H264",
      "Width": 1920, "Height": 1080, "Fps": 30,
      "VideoBitrate": 4000000, "RateControlMode": "ABR",
      "NeedAudio": 1, "Acodec": "AAC", "AudioBitrate": 128000
    },
    {
      "Name": "justinkim720p",
      "NeedVideo": 1, "Vcodec": "H264",
      "Width": 1280, "Height": 720, "Fps": 30,
      "VideoBitrate": 2000000, "RateControlMode": "ABR",
      "NeedAudio": 1, "Acodec": "AAC", "AudioBitrate": 128000
    }
  ],
  "OutputGroups": [
    {
      "Name": "justinkim_to_package",
      "Type": "HLS_STREAM_PACKAGE",
      "Outputs": [
        { "Name": "justinkimout1080p", "AVTemplateNames": ["justinkim1080p"] },
        { "Name": "justinkimout720p",  "AVTemplateNames": ["justinkim720p"] }
      ],
      "Destinations": [
        { "OutputUrl": "https://13******46.ap-seoul.streampackage.srclivepush.myqcloud.com/v1/01a0****96005/01a0****96006" }
      ],
      "HlsRemuxSettings": {
        "SegmentDuration": 4000,
        "SegmentNumber": 5,
        "Scheme": "MERGE",
        "SegmentType": "ts"
      },
      "StreamPackageSettings": { "Id": "6AA6************32BF" }
    }
  ]
}
EOF

JSON 파일 저장 후 다음 명령으로 채널을 생성합니다.

LANGUAGE
tccli mdl CreateStreamLiveChannel \
  --region ap-seoul \
  --cli-input-json file:///tmp/streamlive-channel.json
LANGUAGE
{
  "Id": "6AA6************5542"
}

설정 항목

항목 값 의미
Type HLS_STREAM_PACKAGE StreamPackage로 HLS를 밀어넣는 출력 타입
Destinations[].OutputUrl StreamPackage Input URL 1단계에서 확보한 주소
StreamPackageSettings.Id 채널 ID 목적지 채널 지정
SegmentDuration 4000 세그먼트 4초
SegmentNumber 5 플레이리스트에 유지할 세그먼트 수
Scheme MERGE 오디오와 영상를 하나의 TS로 묶음

출력 하나당 AVTemplateNames는 한 개만 넣으세요. 1080p와 720p를 한 출력에 몰아넣으면 생성은 되지만 렌디션이 하나만 나옵니다. ABR 래더를 만들려면 템플릿 수만큼 출력을 만드는 방식으로 가야 합니다.

트랜스코딩 템플릿 이름은 streamlive1080p처럼 영문 / 숫자를 사용합니다. 채널 이름에는 밑줄을 사용할 수 있습니다.

채널 시작

LANGUAGE
tccli mdl StartStreamLiveChannel \
  --region ap-seoul \
  --Id 6AA6************5542

상태가 RUNNING인지 확인합니다. 다음 단계에서 실제 송출과 재생을 확인합니다.

LANGUAGE
tccli mdl DescribeStreamLiveChannels --region ap-seoul
LANGUAGE
justinkim_quickstart_channel   6AA6************5542   RUNNING

RTMP 입력 생성 화면

StreamLive RTMP 입력 생성 폼

RTMP_PUSH 입력 생성 폼에서 Security Group을 선택하고 Destination A에 application name과 stream name을 지정한 뒤 Confirm을 누릅니다. Destination B는 두 번째 파이프라인에 사용합니다.