를 사용한 MediaLive 예제 AWS CLI - AWS SDK 코드 예제

AWS Doc SDK ExamplesWord AWS SDK 리포지토리에는 더 많은 GitHub 예제가 있습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 사용한 MediaLive 예제 AWS CLI

다음 코드 예제에서는 AWS Command Line Interface with MediaLive를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.

주제

작업

다음 코드 예시에서는 create-channel을 사용하는 방법을 보여 줍니다.

AWS CLI

채널을 생성하려면

다음 create-channel 예제에서는 지정하려는 파라미터가 포함된 JSON 파일을 전달하여 채널을 생성합니다.

이 예제의 채널은 비디오, 오디오 및 임베디드 캡션이 포함된 소스에 연결하는 PULL HLS 입력을 수집합니다. 채널은 Akamai 서버를 대상으로 하는 HLS 출력 그룹 하나를 생성합니다. 출력 그룹에는 두 개의 출력이 포함되어 있습니다. 하나는 H.265 비디오 및 AAC 오디오용이고 다른 하나는 Web-VTT 캡션용이며 영어로만 제공됩니다.

이 예제 채널용 JSON에는 PULL HLS Word 입력을 사용하고 Akamai를 대상으로 하는 HLS 출력 그룹을 생성하는 채널에 필요한 최소 파라미터가 포함됩니다. JSON에는 다음과 같은 주요 섹션이 포함되어 있습니다.

InputAttachments오디오 소스 하나와 캡션 소스 하나를 지정합니다. 이는 비디오 선택기를 지정하지 않습니다. 즉, MediaLive 는 소스에서 찾은 첫 번째 비디오를 추출합니다.이 채널의 단일 출력 그룹에 대한 두 IP 주소(URLs)가 포함되어 Destinations있습니다. 이러한 주소에는 passwords.EncoderSettings가 필요합니다. AudioDescriptions이 하위 섹션은 채널에 소스 from InputAttachments를 사용하는 오디오 출력 자산 하나를 포함하고 AAC 형식의 오디오를 생성하도록 지정합니다. CaptionDescriptions이 명령은 채널에 소스 from InputAttachments를 사용하는 캡션 출력 자산 하나를 포함하고 Web-VTT 형식의 캡션을 생성하도록 지정합니다. VideoDescriptions이 명령은 채널에 지정된 해상도와 함께 비디오 출력 자산 하나를 포함하도록 지정합니다. OutputGroups이 명령은 출력 그룹을 지정합니다. 이 예제에서는 이름이 인 그룹이 하나 있습니다Akamai. 연결은 HLS PUT를 사용하여 이루어집니다. 출력 그룹에는 두 개의 출력이 포함됩니다. 한 가지 출력은 비디오 자산(명칭 Video_high)과 오디오 자산(명칭 )입니다Audio_EN. 한 가지 출력은 캡션 자산(이라는 이름)에 대한 것입니다WebVTT_EN.

이 예제에서는 일부 파라미터에 값이 없거나 중첩된 빈 파라미터가 포함되어 있습니다. 예를 들어 Video_and_audio 출력용 OutputSettings 에는 빈 파라미터 M3u8Settings로 끝나는 여러 중첩 파라미터가 포함되어 있습니다. 이 파라미터를 포함해야 하지만 하나, 여러 개 또는 모든 하위 파라미터를 생략할 수 있습니다. 즉, 하위 파라미터가 기본값을 취하거나 null이 됩니다.

이 예제 채널에 적용되지만이 파일에 지정되지 않은 모든 파라미터는 기본값을 사용하거나 null로 설정하거나 MediaLive에서 생성한 고유한 값을 사용합니다.

aws medialive create-channel \ --cli-input-json file://channel-in-hls-out-hls-akamai.json

channel-in-hls-out-hls-akamai.json의 콘텐츠:

{ "Name": "News_West", "RoleArn": "arn:aws:iam::111122223333:role/MediaLiveAccessRole", "InputAttachments": [ { "InputAttachmentName": "local_news", "InputId": "1234567", "InputSettings": { "AudioSelectors": [ { "Name": "English-Audio", "SelectorSettings": { "AudioLanguageSelection": { "LanguageCode": "EN" } } } ], "CaptionSelectors": [ { "LanguageCode": "ENE", "Name": "English_embedded" } ] } } ], "Destinations": [ { "Id": "akamai-server-west", "Settings": [ { "PasswordParam": "/medialive/examplecorp1", "Url": "http://203.0.113.55/news/news_west", "Username": "examplecorp" }, { "PasswordParam": "/medialive/examplecorp2", "Url": "http://203.0.113.82/news/news_west", "Username": "examplecorp" } ] } ], "EncoderSettings": { "AudioDescriptions": [ { "AudioSelectorName": "English-Audio", "CodecSettings": { "AacSettings": {} }, "Name": "Audio_EN" } ], "CaptionDescriptions": [ { "CaptionSelectorName": "English_embedded", "DestinationSettings": { "WebvttDestinationSettings": {} }, "Name": "WebVTT_EN" } ], "VideoDescriptions": [ { "Height": 720, "Name": "Video_high", "Width": 1280 } ], "OutputGroups": [ { "Name": "Akamai", "OutputGroupSettings": { "HlsGroupSettings": { "Destination": { "DestinationRefId": "akamai-server-west" }, "HlsCdnSettings": { "HlsBasicPutSettings": {} } } }, "Outputs": [ { "AudioDescriptionNames": [ "Audio_EN" ], "OutputName": "Video_and_audio", "OutputSettings": { "HlsOutputSettings": { "HlsSettings": { "StandardHlsSettings": { "M3u8Settings": {} } }, "NameModifier": "_1" } }, "VideoDescriptionName": "Video_high" }, { "CaptionDescriptionNames": [ "WebVTT_EN" ], "OutputName": "Captions-WebVTT", "OutputSettings": { "HlsOutputSettings": { "HlsSettings": { "StandardHlsSettings": { "M3u8Settings": {} } }, "NameModifier": "_2" } } } ] } ], "TimecodeConfig": { "Source": "EMBEDDED" } } }

출력:

출력은 JSON 파일의 내용과 다음 값을 반복합니다. 모든 파라미터는 알파벳순으로 정렬됩니다.

ARN 채널에 대해. ARN의 마지막 부분은 고유한 채널 ID입니다.EgressEndpoints는 PUSH 입력에만 사용되므로이 예제 채널에서는 비어 있습니다. 적용하면 콘텐츠가 푸시되는 on MediaLive 의 주소가 표시됩니다.OutputGroups, Outputs. 여기에는 포함되지 않았지만이 채널과 관련된 파라미터를 포함하여 출력 그룹 및 출력에 대한 모든 파라미터가 표시됩니다. 파라미터가 비어 있거나(아마도이 채널 구성에서 파라미터 또는 기능이 비활성화되었음을 나타냄) 적용될 기본값을 표시할 수 있습니다.LogLevel는 기본값(DISABLED)Tags으로 설정되어 있습니다.는 기본값(null)PipelinesRunningCount으로 설정되어 있고 채널의 현재 상태를 State 표시합니다.

자세한 내용은 AWS Elemental MediaLive 사용 설명서Scratch에서 채널 생성을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조CreateChannel를 참조하세요.

다음 코드 예시에서는 create-input을 사용하는 방법을 보여 줍니다.

AWS CLI

입력을 생성하려면

다음 create-input 예제에서는 이러한 유형의 HLS PULL 입력에 적용되는 파라미터가 포함된 JSON 파일을 전달하여 입력을 생성합니다. 이 예제 입력의 JSON는 수집에서 중복을 지원하기 위해 입력에 두 개의 소스(주소)를 지정합니다. 이러한 주소에는 암호가 필요합니다.

aws medialive create-input \ --cli-input-json file://input-hls-pull-news.json

input-hls-pull-news.json의 콘텐츠:

{ "Name": "local_news", "RequestId": "cli000059", "Sources": [ { "Url": "https://203.0.113.13/newschannel/anytownusa.m3u8", "Username": "examplecorp", "PasswordParam": "/medialive/examplecorp1" }, { "Url": "https://198.51.100.54/fillervideos/oceanwaves.mp4", "Username": "examplecorp", "PasswordParam": "examplecorp2" } ], "Type": "URL_PULL" }

출력:

출력은 JSON 파일의 내용과 다음 값을 반복합니다. 모든 파라미터는 알파벳순으로 정렬됩니다.

Arn 입력용입니다. ARN의 마지막 부분은 고유 입력 ID입니다. Attached Channels새로 생성된 입력의 경우 항상 비어 있습니다. Destinations이 예제에서는 비어 있습니다.Id 입력의 경우 ARN PUSH 입력과 동일한 ID입니다.이 예제MediaConnectFlows에서는 비어 있습니다.이 입력의 경우 PUSH State 입력과만 사용되므로 type MediaConnect 입력과 함께 사용SecurityGroups되기 때문입니다.이 예제에서는 비어 있습니다.이 입력의 경우 비어 Tags있습니다(이 파라미터의 기본값).

자세한 내용은 AWS Elemental MediaLive 사용 설명서입력 생성을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조CreateInput를 참조하세요.