Skip to content

StreamLive 채널 구성 ​

StreamLive 채널에 입력 / 트랜스코딩 설정 / 출력 목적지를 연결한 뒤 시작합니다. 채널은 원본을 지정한 화질로 인코딩해 목적지로 전달합니다.

이 문서에서는 1080p30 입력 하나로 1080p30과 720p30 출력을 만들고, 두 출력을 StreamPackage로 전송합니다.

입력에서 StreamPackage 출력까지

시작 전 준비 ​

  • 입력 구성을 완료하고 송출 장비에서 해당 입력으로 전송할 수 있어야 합니다.
  • StreamPackage 채널을 먼저 생성하고 채널 ID를 확인합니다. 재생 URL이나 입력 URL이 아니라 채널 ID가 필요합니다.
  • 출력은 H.264 영상과 AAC 오디오를 함께 포함하는 결합형 템플릿을 사용합니다. 템플릿의 개념은 트랜스코딩 템플릿을 참고합니다.
  • 채널 실행에는 과금이 발생합니다. 검증 종료 후 정지할 채널과 계속 운영할 채널을 구분합니다.

1. 채널과 입력 연결 ​

  1. StreamLive 콘솔에서 작업 리전을 선택합니다.
  2. 채널 생성 화면에서 이름을 demo_channel로 입력합니다.
  3. 입력 추가 단계에서 준비한 입력을 선택합니다.
  4. 다중 오디오 입력은 사용할 트랙을 지정합니다. 기본 구성은 첫 번째 오디오 트랙입니다.

입력이 채널에 연결된 상태와 신호가 수신되는 상태는 다릅니다.

2. 출력 그룹과 목적지 설정 ​

출력 그룹은 같은 전송 방식과 목적지를 사용하는 출력 묶음입니다. 출력은 실제로 내보낼 개별 화질입니다.

설정이 예제의 값의미
출력 그룹 이름demoPackage출력 묶음을 구분하는 이름
출력 그룹 유형HLS_STREAM_PACKAGE현재 계정의 StreamPackage로 HLS 전송
목적지생성한 StreamPackage 채널 ID스트림을 수신할 채널
출력 1output1080p1920×1080, 30fps
출력 2output720p1280×720, 30fps

일반 HLS 출력 유형은 목적지 URL에 HTTP PUT으로 전송합니다. HLS_STREAM_PACKAGE 유형은 StreamPackage 채널 ID를 지정합니다.

3. 화질별 트랜스코딩 설정 ​

각 출력의 Transcoding Setting에서 영상과 오디오가 포함된 결합형 템플릿을 설정합니다.

설정1080p 출력720p 출력
템플릿 이름demo1080pdemo720p
영상 코덱H.264H.264
해상도1920×10801280×720
프레임레이트30fps30fps
영상 비트레이트4Mbps2Mbps
비트레이트 제어ABRABR
오디오AAC, 128kbps, 48kHzAAC, 128kbps, 48kHz

비트레이트는 예제값입니다. 움직임이 많은 원본과 정적인 원본은 필요한 비트레이트가 다르므로 실제 콘텐츠로 검증합니다. 한 채널 내 모든 출력 그룹과 출력의 프레임레이트 설정은 동일하게 맞춥니다.

이 예제는 출력 하나에 결합형 템플릿 하나를 연결합니다. 별도 영상 / 오디오 템플릿을 사용하는 분리형 구성은 다중 오디오 트랙 등에 사용할 수 있습니다.

4. HLS 설정 ​

설정예제값확인 사항
Segment Duration4초API SegmentDuration에는 밀리초 단위인 4000 입력
Segment Number5출력 플레이리스트에 유지할 세그먼트 개수
SchemeMERGE영상과 오디오를 합친 세그먼트
Segment TypetsMPEG-TS 세그먼트
PDT Insertion활성화프로그램 시각 태그 삽입
PDT Duration600초PDT 태그 삽입 간격. 저장 기간이나 타임시프트 범위가 아님

약 4초인 세그먼트 5개는 약 20초 분량의 목록에 해당합니다. 인코딩 / 전송 / CDN 캐시 / 플레이어 버퍼가 추가로 영향을 줍니다.

저지연 HLS / fMP4 / DRM은 출력 유형 / 코덱 / 패키저 / 플레이어 조합에 맞춰 추가 설정합니다.

5. 저장 / 시작 / 재생 확인 ​

  1. 설정을 확인한 뒤 Confirm과 Done으로 저장합니다.
  2. 대상 채널의 Start를 선택합니다.
  3. 송출 측에서 입력 신호를 전송하고 채널 상태와 입력 모니터링을 확인합니다.
  4. StreamPackage의 Output Endpoint에서 재생 URL을 확인합니다.
  5. 마스터 플레이리스트에 두 화질이 있는지, 각 미디어 플레이리스트가 갱신되는지 확인합니다.
  6. 플레이어에서 두 화질을 각각 재생하고 영상 / 오디오 / 화질 전환을 확인합니다.

채널 시작 후 입력 수신 → 인코딩 출력 → 패키저 수신 → CDN 응답 → 플레이어 재생 순서로 확인합니다.

API로 동일 구성 생성 ​

다음 JSON을 channel.json으로 저장하고 REPLACE_INPUT_ID와 REPLACE_PACKAGE_CHANNEL_ID를 실제 값으로 바꿉니다.

json
{
  "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 인증과 리전을 설정한 환경에서 실행합니다. 이 명령은 새 채널을 생성합니다.

bash
tccli mdl CreateStreamLiveChannel --region ap-seoul --cli-input-json file://channel.json

생성 응답에서 채널 ID를 확인한 다음 조회 / 시작합니다.

bash
tccli mdl DescribeStreamLiveChannel --region ap-seoul --Id REPLACE_CHANNEL_ID
tccli mdl StartStreamLiveChannel --region ap-seoul --Id REPLACE_CHANNEL_ID

변경과 종료 ​

정지가 필요한 변경은 점검 시간 또는 예비 경로를 준비한 뒤 IDLE 상태에서 적용합니다. 테스트 후 대상 ID를 확인해 채널을 정지합니다.

bash
tccli mdl StopStreamLiveChannel --region ap-seoul --Id REPLACE_CHANNEL_ID

StreamLink 전송, StreamPackage 저장 기능, CDN 사용도 각각 정리합니다.

참고 문서 ​

基于 VitePress 构建 · 部署于腾讯云 EdgeOne Pages