실시간 스트림 설정 구성

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 페이지에서는 여러 오디오 트랙, 자막, 스프라이트 시트와 같은 실시간 스트림 기능에 대한 입력 엔드포인트 또는 채널 생성 중에 설정을 구성하는 방법을 설명합니다.

입력 엔드포인트 생성을 통한 구성

입력 엔드포인트 생성 중 다음 기능의 구성을 지정할 수 있습니다.

IP 허용 목록

인코더의 IP 주소와 같이 입력 스트림이 시작된 IP 범위를 지정하여 입력 엔드포인트에 대한 액세스를 제한할 수 있습니다. 동영상 파이프라인은 이러한 범위의 IP 주소에서 발생하는 트래픽만 허용합니다. IP 범위는 CIDR 블록 형식이어야 합니다.

Input 리소스에서 securityRules 필드를 구성합니다.

{
  "type": "RTMP_PUSH",
  "securityRules": {
    "ipRanges": ["1.2.3.4/32"]
  }
}

채널 생성을 통한 구성

채널 생성 중에 다음 기능의 구성을 지정할 수 있습니다.

여러 비트 전송률 스트림

여러 비트 전송률, 해상도, 프레임 속도를 지원하는 고급 채널 구성을 만들 수 있습니다. 다음 구성은 출력에 muxStream 두 개를 포함하며, 하나는 프레임 속도가 30FPS(mux_video_360p30)인 360p이고, 다른 하나는 프레임 속도가 60FPS(mux_video_720p60)인 720p입니다. 이 구성은 여러 오디오 비트 전송률도 지원합니다. 자세한 내용은 권장 비트 전송률을 참조하세요.

{
  "inputAttachments":[
    {
      "key":"input-primary",
      "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID"
    }
  ],
  "output":{
    "uri": "gs://BUCKET_NAME"
  },
  "elementaryStreams": [
    {
      "key": "es_video_720p60",
      "videoStream": {
        "h264": {
          "profile": "high",
          "heightPixels": 720,
          "widthPixels": 1280,
          "bitrateBps": 5500000,
          "frameRate": 60
        }
      }
    },
    {
      "key": "es_video_360p30",
      "videoStream": {
        "h264": {
          "profile": "high",
          "heightPixels": 360,
          "widthPixels": 640,
          "bitrateBps": 400000,
          "frameRate": 30
        }
      }
    },
    {
      "key": "es_audio_160k",
      "audioStream": {
        "codec": "aac",
        "channelCount": 2,
        "bitrateBps": 160000
      }
    },
    {
      "key": "es_audio_64k",
      "audioStream": {
        "codec": "aac",
        "channelCount": 2,
        "bitrateBps": 64000
      }
    }
  ],
  "muxStreams": [
    {
      "key": "mux_video_720p60",
      "elementaryStreams": [
        "es_video_720p60"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "mux_video_360p30",
      "elementaryStreams": [
        "es_video_360p30"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "mux_audio_160k",
      "elementaryStreams": [
        "es_audio_160k"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "mux_audio_64k",
      "elementaryStreams": [
        "es_audio_64k"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    }
  ],
  "manifests": [
    {
      "fileName": "main.mpd",
      "type": "DASH",
      "muxStreams": [
        "mux_video_720p60",
        "mux_video_360p30",
        "mux_audio_160k",
        "mux_audio_64k"
      ],
      "maxSegmentCount": 5
    },
    {
      "fileName": "main.m3u8",
      "type": "HLS",
      "muxStreams": [
        "mux_video_720p60",
        "mux_video_360p30",
        "mux_audio_160k",
        "mux_audio_64k"
      ],
      "maxSegmentCount": 5
    }
  ]
}

여러 오디오 트랙

입력 스트림에 오디오 트랙이 두 개 이상 포함된 경우 AudioMapping 객체를 사용하여 각 AudioStream의 트랙을 선택합니다.

{
  "inputAttachments": [
    {
      "key": "MY-INPUT",
      "input": "/projects/PROJECT-ID/locations/LOCATION/inputs/MY-INPUT",
    }
  ],
  "output": {
    "uri": "gs://BUCKET_NAME/outputs/"
  },
  "elementaryStreams": [
    {
      "key": "es_video",
      "videoStream": {
        "h264": {
          "heightPixels": 720,
          "widthPixels": 1280,
          "bitrateBps": 3000000,
          "frameRate": 30
        }
      }
    },
    {
      "key": "es_first_audio",
      "audioStream": {
        "codec": "aac",
        "bitrateBps": 160000,
        "mapping": [
          {
            "inputKey": "MY-INPUT",
            "inputTrack": 1
          }
        ]
      }
    },
    {
      "key": "es_second_audio",
      "audioStream": {
        "codec": "aac",
        "bitrateBps": 160000,
        "mapping": [
          {
            "inputKey": "MY-INPUT",
            "inputTrack": 2
          }
        ]
      }
    }
  ],
  "muxStreams": [
    {
      "key": "mux_video",
      "elementaryStreams": ["es_video"],
    },
    {
      "key": "mux_first_audio",
      "elementaryStreams": ["es_first_audio"],
    },
    {
      "key": "mux_second_audio",
      "elementaryStreams": ["es_second_audio"],
    }
  ],
  "manifests": [
    {
      "type": "DASH",
      "muxStreams": [
        "mux_video",
        "mux_first_audio",
        "mux_second_audio",
      ]
    }
  ]
}

Shaka Player는 여러 오디오 트랙이 있는 HLS 스트림에 대해 다음 기능을 지원하지 않습니다.

  • TS 세그먼트로 대체 오디오 트랙 재생

  • fMP4 세그먼트가 있는 보조 및 대체 오디오 트랙 선택

CEA 608/708 자막 패스 스루

입력 스트림에 CEA 608/708 자막을 포함하는 경우 자막을 출력 스트림으로 전달할 수 있습니다. Channel을 만들 때 elementaryStreams에 다음 textStream을 추가합니다. 이 textStream은 CEA 608/708 자막을 모든 출력 동영상 스트림 및 렌더링에 삽입합니다.

{
  "key": "captions",
  "textStream": {
    "codec": "cea608"
  }
}

스프라이트 시트

스프라이트 시트를 생성하려면 Channel 리소스에서 spriteSheets 필드를 구성합니다.

{
  "spriteSheets": [
    {
      "format": "jpeg",
      "filePrefix": "sprite",
      "interval": "2s",
      "spriteWidthPixels": 320,
      "spriteHeightPixels": 240,
      "columnCount": 3,
      "rowCount": 3,
      "quality": 80
    }
  ]
}