이 페이지에서는 보안 안정적인 전송 (SRT) 프로토콜 또는 실시간 메시지 프로토콜 (RTMP)을 사용하여 라이브 스트림 출력을 원격 엔드포인트에 배포하는 방법을 설명합니다. SRT와 RTMP는 모두 푸시 모드에서 스트림을 엔드포인트로 전송하는 데 사용됩니다. 지원되는 컨테이너 형식은 SRT의 경우 MPEG-TS이고 RTMP의 경우 FLV입니다.
시작하기 전에
이 페이지에서는 HLS 실시간 스트림 빠른 시작의 시작하기 전에 섹션의 단계를 완료했다고 가정하고 진행합니다.
선택한 배포 프로토콜에 따라 푸시 모드로 출력을 수신할 제공업체에 SRT 또는 RTMP 엔드포인트를 만듭니다. 엔드포인트 URI 형식은 프로토콜에 따라 다릅니다.
- SRT:
srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID
- RTMP의 경우:
rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME/RTMP_STREAM_KEY
또는rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME
SRT_SERVER_IP 및 RTMP_SERVER_IP은 IP 주소 또는 도메인 이름일 수 있습니다.
입력 엔드포인트 만들기
기본 입력 엔드포인트를 만들려면 projects.locations.inputs.create
메서드를 사용합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 입력 엔드포인트를 만들 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
INPUT_ID
: 입력 스트림을 전송할 새 입력 엔드포인트에 대한 사용자 정의 식별자입니다. 이 값은 1~63자(영문 기준)여야 하고[a-z0-9]
로 시작하고 끝나야 하며 문자 사이에 대시(-)를 포함할 수 있습니다. 예를 들면my-input
입니다.
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
반환된 OPERATION_ID를 복사하여 다음 섹션에 사용합니다.
결과 확인
projects.locations.operations.get
메서드를 사용하여 입력 엔드포인트가 생성되었는지 확인합니다. 응답에 "done: false"
가 포함되어 있으면 응답에 "done: true"
가 포함될 때까지 명령어를 반복합니다. 리전에서 첫 번째 입력 엔드포인트를 만드는 데 최대 10분까지 걸릴 수 있습니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 입력 엔드포인트가 있는 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
OPERATION_ID
: 작업의 식별자
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "endTime": END_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.Input", "name": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "type": "RTMP_PUSH", "uri": INPUT_STREAM_URI, # For example, "rtmp://1.2.3.4/live/b8ebdd94-c8d9-4d88-a16e-b963c43a953b", "tier": "HD" } }
uri
필드를 찾고 나중에 입력 스트림 보내기 섹션에서 사용할 반환된 INPUT_STREAM_URI를 복사합니다.
채널 만들기
채널을 만들려면 projects.locations.channels.create
메서드를 사용합니다.
채널 구성에서 다음 사항에 유의하세요.
distributionStreams
배열에는 배포를 위한 스트림의 멀티플렉싱 설정이 포함되어 있습니다.각
DistributionStream
객체에는key
,container
,elementaryStreams
필드가 포함되어야 합니다.{ "distributionStreams": [ { "key": "ds1", "container": "ts", // to be used with an SRT distribution "elementaryStreams": [ "es_video_720", "es_audio" ] }, { "key": "ds2", "container": "flv", // to be used with an RTMP distribution "elementaryStreams": [ "es_video_640", "es_audio" ] } ] }
distributions
배열에는 원격 엔드포인트를 포함한 배포 구성이 나열됩니다.Distribution
객체의distributionStream
필드를DistributionStream
객체의key
로 설정합니다.SRT 배포의 경우
SrtPushOutputEndpoint
객체의uri
을 사용자가 만든 SRT 엔드포인트로 설정합니다. RTMP 배포의 경우RtmpPushOutputEndpoint
객체에서uri
을 생성한 RTMP 엔드포인트로 설정합니다.{ "distributions": [ { "key": "pd1", "distributionStream": "ds1", // defined in a distributionStreams[] object with an MPEG-TS container "srtPush": { "uri": "srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID" } }, { "key": "pd2", "distributionStream": "ds2", // defined in a distributionStreams[] object with an FLV container "rtmpPush": { "uri": "rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME/", "streamKey": "RTMP_STREAM_KEY" } } ] }
AI 생성 자막 및 번역된 자막을 배포하려면 자동 자막 및 번역 구성 가이드를 참고하세요.
다음 샘플에서는 DistributionStream
객체 하나와 Distribution
객체 하나만 사용합니다.
REST
SRT
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 채널을 만들 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: 만들려는 채널의 사용자 정의 식별자입니다. 이 값은 1~63자(영문 기준)여야 하고[a-z0-9]
로 시작하고 끝나야 하며 문자 사이에 대시(-)를 포함할 수 있습니다.INPUT_ID
: 입력 엔드포인트의 사용자 정의 식별자입니다.BUCKET_NAME
: 실시간 스트림 매니페스트 및 세그먼트 파일을 보관하기 위해 만든 Cloud Storage 버킷의 이름입니다.SRT_SERVER_IP
: 원격 엔드포인트의 IP 주소 또는 도메인 이름SRT_SERVER_PORT
: 원격 엔드포인트의 포트 번호SRT_SERVER_STREAM_ID
: 원격 엔드포인트의 스트림 ID
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
RTMP
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 채널을 만들 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: 만들려는 채널의 사용자 정의 식별자입니다. 이 값은 1~63자(영문 기준)여야 하고[a-z0-9]
로 시작하고 끝나야 하며 문자 사이에 대시(-)를 포함할 수 있습니다.INPUT_ID
: 입력 엔드포인트의 사용자 정의 식별자입니다.BUCKET_NAME
: 실시간 스트림 매니페스트 및 세그먼트 파일을 보관하기 위해 만든 Cloud Storage 버킷의 이름입니다.RTMP_SERVER_IP
: 원격 엔드포인트의 IP 주소 또는 도메인 이름RTMP_SERVER_PORT
: 원격 엔드포인트의 포트 번호RTMP_APP_NAME
: 스트림 이름의 경로 접두사RTMP_STREAM_KEY
: 원격 엔드포인트의 스트림 키
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
새 작업 ID를 사용하여 작업 결과를 확인할 수 있습니다.
채널 가져오기
채널이 생성되면 projects.locations.channels.get
메서드를 사용하여 채널 상태를 쿼리합니다.
REST
SRT
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: 채널의 사용자 정의 식별자
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "inputAttachments": [ { "key": "INPUT_ID", "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID" } ], "activeInput": "INPUT_ID", "output": { "uri": "gs://BUCKET_NAME" }, "elementaryStreams": [ { "videoStream": { "h264": { "widthPixels": 1280, "heightPixels": 720, "frameRate": 30, "bitrateBps": 3000000, "gopDuration": "2s", "vbvSizeBits": 3000000, "vbvFullnessBits": 2700000, "entropyCoder": "cabac", "profile": "high" } }, "key": "es_video" }, { "audioStream": { "codec": "aac", "bitrateBps": 160000, "channelCount": 2, "sampleRateHertz": 48000 }, "key": "es_audio" } ], "muxStreams": [ { "key": "mux_video_ts", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ], "segmentSettings": { "segmentDuration": "2s" } } ], "manifests": [ { "fileName": "main.m3u8", "type": "HLS", "muxStreams": [ "mux_video_ts" ], "maxSegmentCount": 5, "segmentKeepDuration": "60s", "key": "manifest_hls" } ], "streamingState": "STOPPED", "distributionStreams": [ { "key": "ds1", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ] } ], "distributions": [ { "key": "pd1", "distributionStream": "ds1", "state": "NOT_READY", "srtPush": { "uri": "srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID" } } ] }
RTMP
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: 채널의 사용자 정의 식별자
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "inputAttachments": [ { "key": "INPUT_ID", "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID" } ], "activeInput": "INPUT_ID", "output": { "uri": "gs://BUCKET_NAME" }, "elementaryStreams": [ { "videoStream": { "h264": { "widthPixels": 1280, "heightPixels": 720, "frameRate": 30, "bitrateBps": 3000000, "gopDuration": "2s", "vbvSizeBits": 3000000, "vbvFullnessBits": 2700000, "entropyCoder": "cabac", "profile": "high" } }, "key": "es_video" }, { "audioStream": { "codec": "aac", "bitrateBps": 160000, "channelCount": 2, "sampleRateHertz": 48000 }, "key": "es_audio" } ], "muxStreams": [ { "key": "mux_video_ts", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ], "segmentSettings": { "segmentDuration": "2s" } } ], "manifests": [ { "fileName": "main.m3u8", "type": "HLS", "muxStreams": [ "mux_video_ts" ], "maxSegmentCount": 5, "segmentKeepDuration": "60s", "key": "manifest_hls" } ], "streamingState": "STOPPED", "distributionStreams": [ { "key": "ds1", "container": "flv", "elementaryStreams": [ "es_video", "es_audio" ] } ], "distributions": [ { "key": "pd1", "distributionStream": "ds1", "state": "NOT_READY", "rtmpPush": { "uri": "rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME", "streamKey": "RTMP_STREAM_KEY" } } ] }
전체 응답에는 다음 필드가 포함됩니다.
{
...
"streamingState": "STOPPED",
"distributions": [
{
...
"state": "NOT_READY"
...
}
]
...
}
이 응답은 채널의 스트리밍 상태와 채널 배포를 나타냅니다.
배포가 NOT_READY
상태인 경우 배포를 시작할 수 없습니다. 스트림을 배포하려면 상태가 READY
으로 변경될 때까지 기다려야 합니다.
첫 번째 배포 스트림을 만드는 데 최대 10분이 걸릴 수 있습니다. 배포 상태는 채널 상태와 독립적입니다. 채널을 시작하고 배포가 READY
가 될 때까지 기다린 후 배포를 시작할 수 있습니다.
이제 채널을 시작할 수 있습니다.
채널 시작
projects.locations.channels.start
메서드를 사용하여 채널을 시작합니다. 입력 스트림을 수락하거나 출력 스트림을 생성하려면 먼저 채널을 시작해야 합니다.
리전에서 첫 번째 채널을 시작하는 데는 약 10분이 걸립니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: 채널의 사용자 정의 식별자
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "start", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
채널이 시작되었는지 확인하려면 이전과 같이 채널 정보 가져오기를 수행합니다. 응답에 다음이 포함되어야 합니다.
{
...
"streamingState": "AWAITING_INPUT"
...
}
입력 스트림 보내기
새 터미널 창을 엽니다. 결과 확인 섹션에서 INPUT_STREAM_URI를 사용하여 다음 명령어를 실행합니다.
ffmpeg -re -f lavfi -i "testsrc=size=1280x720 [out0]; sine=frequency=500 [out1]" \
-acodec aac -vcodec h264 -f flv INPUT_STREAM_URI
이제 채널이 스트리밍되지만 배포는 여전히 중지되어 있습니다.
배포 시작
배포를 시작하려면 READY
상태여야 합니다. 모든 원격 엔드포인트에 라이브 스트림 출력을 배포하려면 projects.locations.channels.startdistribution
메서드를 사용합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: 채널의 사용자 정의 식별자
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "startdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
새 작업 ID를 사용하여 작업 결과를 확인할 수 있습니다. 배포를 시작한 후 입력 스트림이 시작되지 않으면 AWAITING_INPUT
상태가 될 수 있고, 입력 스트림이 지정된 엔드포인트에 배포되고 있으면 DISTRIBUTING
상태가 될 수 있습니다.
(선택사항) 배포 세트 시작
한 번에 모든 배포를 시작하는 대신 일부 배포만 시작할 수 있습니다. distributionKeys
배열 목록에 키를 추가하여 시작할 배포를 나열합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: 채널의 사용자 정의 식별자입니다.DISTRIBUTION_KEYS
: 쉼표로 구분된 문자열 키 목록입니다 (예:"pd1"
).
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "startdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
새 작업 ID를 사용하여 작업 결과를 확인할 수 있습니다.
배포가 실행 중인지 확인
배포가 시작되었는지 확인하려면 이전과 같이 채널 정보 가져오기를 수행합니다. 응답에 다음이 포함되어야 합니다.
{
"distributions": [
{
...
"state": "DISTRIBUTING"
...
},
...
]
}
원격 SRT 또는 RTMP 서버에서 생성한 엔드포인트가 데이터를 수신하는지 확인합니다.
배포 중지
모든 원격 엔드포인트에 라이브 스트림 출력을 배포하는 것을 중지하려면 projects.locations.channels.stopdistribution
메서드를 사용합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: 채널의 사용자 정의 식별자
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stopdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
새 작업 ID를 사용하여 작업 결과를 확인할 수 있습니다.
(선택사항) 배포 세트 중지
한 번에 모든 배포를 중지하는 대신 일부 배포만 중지할 수 있습니다. distributionKeys
배열 목록에 키를 추가하여 중지할 배포를 나열합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: 채널의 사용자 정의 식별자입니다.DISTRIBUTION_KEYS
: 쉼표로 구분된 문자열 키 목록입니다 (예:"pd1"
).
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stopdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
새 작업 ID를 사용하여 작업 결과를 확인할 수 있습니다.
SRT 암호화 지원
SRT 프로토콜을 사용하여 라이브 스트림 출력을 원격 엔드포인트에 배포하는 경우 Live Stream API는 AES 암호화로 라이브 스트림 콘텐츠를 보호합니다.
비밀번호를 만들고 원격 SRT 서버 준비
시작하기 전에 원격 SRT 서버를 준수하는 SRT 비밀번호를 만드세요. 일반적으로 암호는 10~79자(영문 기준)의 문자열이어야 합니다.
원격 SRT 서버에서 동일한 비밀번호를 설정하여 복호화 프로세스가 작동하는지 확인합니다. 방법은 원격 SRT 서버의 사용자 가이드를 참고하세요.
Secret Manager에 비밀번호 추가
Live Stream API는 비밀번호를 직접 수락하거나 관리하지 않습니다. Google Secret Manager를 통해 Live Stream API와 비밀번호를 공유해야 합니다.
채널을 구성하기 전에 다음 단계를 모두 완료해야 합니다.
- Secret Manager로 보안 비밀을 만듭니다.
- Live Stream API가 보안 비밀 콘텐츠에 액세스할 수 있도록 보안 비밀에 Identity and Access Management 권한을 구성합니다. 이렇게 하려면
service-PROJECT_NUMBER@gcp-sa-livestream.iam.gserviceaccount.com
서비스 계정에secretmanager.secretAccessor
역할을 부여하세요. 이는 서비스 계정이 Cloud Storage 버킷에 액세스하는 방법과 유사합니다. - 만든 보안 비밀 버전의 리소스 이름을 찾습니다(예:
projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/VERSION_ID
). 채널을 구성하려면 이 이름이 필요합니다.
채널 구성
암호의 보안 비밀 버전은 SrtPushOutputEndpoint
내에 지정됩니다.
{
"distributions": [
{
"key": "pd1",
"distributionStream": "ds1", // defined in a distributionStreams[] object with an MPEG-TS container
"srtPush": {
"uri": "srt://{SRT_SERVER_IP}:{SRT_SERVER_PORT}?streamid={SRT_SERVER_STREAM_ID}",
"passphrase_secret_version": "projects/PROJECT_NUMBER/secrets/key1/versions/1"
}
}
]
}
삭제
이 페이지에서 사용된 리소스에 대한 비용이 Google Cloud 계정에 청구되지 않게 하려면 다음 단계를 수행합니다.
채널 중지
projects.locations.channels.stop
메서드를 사용하여 채널을 중지합니다. 채널을 삭제하려면 먼저 채널을 중지해야 합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: 채널의 사용자 정의 식별자
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stop", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
새 작업 ID를 사용하여 작업 결과를 확인할 수 있습니다.
입력 스트림 중지
ffmpeg
를 사용하여 입력 스트림을 전송한 경우 채널을 중지한 후 자동으로 연결이 끊어집니다.
채널 삭제
projects.locations.channels.delete
메서드를 사용하여 채널을 삭제합니다. 채널에서 사용하는 입력 엔드포인트를 삭제하려면 먼저 채널을 삭제해야 합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 채널이 있는 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: 채널의 사용자 정의 식별자
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
새 작업 ID를 사용하여 작업 결과를 확인할 수 있습니다.
입력 엔드포인트 삭제
projects.locations.inputs.delete
메서드를 사용하여 입력 엔드포인트를 삭제합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_NUMBER
: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.LOCATION
: 입력 엔드포인트가 있는 위치. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
INPUT_ID
: 입력 엔드포인트의 사용자 정의 식별자입니다.
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
새 작업 ID를 사용하여 작업 결과를 확인할 수 있습니다.
Cloud Storage 버킷 삭제
Google Cloud 콘솔에서 Cloud Storage 브라우저 페이지로 이동합니다.
만든 버킷 옆에 있는 확인란을 선택합니다.
삭제를 클릭합니다.
표시되는 대화상자 창에서 삭제를 클릭하여 버킷과 콘텐츠를 삭제합니다.