AWS CLI에서 AWS Elemental MediaLive 신속 생성
streampack risako입니다.
연말연시를 여유롭게 보냈나요?나는 별로 외출하지 않고 새해의 즐거움을 즐겼다.
2021년에도 다양한 것들을 흡수하고 Qiita에 남을 수 있도록 노력하겠습니다!
이번에는
AWS Elemental Medialive
(이하 MediaLive) input 및 Channel AWS CLI
(이하 CLI) 의 빠른 제작 방법 을 소개합니다.AWS Management Console에서 제작하는 것보다 익숙해지면 CLI가 시간이 단축되기 때문에 여러 개를 제작하는 데 편리합니다.
미디어라이브 input와 channel을 자주 만드시는 분들은 꼭 참고하세요
입문
미리 해 두어라.
이쪽도 먼저 만들어야 돼.
참고:
JSON 파일은 첫 번째 문자를 대문자로 설정해야 합니다.
소문자로 만들 때 오류가 발생하여 만들 수 없습니다.
input 만들기 {
"Name": "test-input",
"Type": "RTMP_PUSH",
"InputSecurityGroups": [
"000000"
],
"Destinations": [
{
"StreamName": "hoge/stream"
}
]
}
변경이 필요한 곳
항목
설명
비고
Name
임의의 입력 이름 입력
Type
입력 유형 입력
JSON의 Type 기재 방법은 여기
InputSecurityGroups
보안 그룹 ID 입력
기존 보안 그룹이 있는 경우 ID 를 입력합니다.
StreamName
스트림 이름 입력
이번에는 SINGLE _이것은 INPUT에서 생성된 것이지만 STANDARD_INPUT 시 2개가 기재됩니다.참고: Type에 따라 설정 내용이 변경됩니다.
CLI에서 input 생성
$aws medialive --profile <名前付きプロファイル名> create-input --region <作成するリージョン> --cli-input-json file://<JSONファイル名>
【例】
$aws medialive --profile xxxx create-input --region ap-northeast-1 --cli-input-json file://test-input.json
채널 생성
ABR은 간단한 채널 설정 예입니다.{
"Name": "test-channel",
"InputAttachments": [
{
"InputId": "xxxxx",
"InputAttachmentName": "test-input",
"InputSettings": {
"SourceEndBehavior": "CONTINUE",
"InputFilter": "AUTO",
"FilterStrength": 1,
"DeblockFilter": "DISABLED",
"DenoiseFilter": "DISABLED",
"AudioSelectors": [
{
"Name": "Audio1"
}
],
"CaptionSelectors": []
}
}
],
"Destinations": [
{
"Id": "hlsdestin",
"Settings": [
{
"Url": "mediastoressl://xxxx.data.mediastore.ap-northeast-1.amazonaws.com/demo/liveA"
},
],
"MediaPackageSettings": []
}
],
"EncoderSettings": {
"AudioDescriptions": [
{
"AudioSelectorName": "Audio1",
"CodecSettings": {
"AacSettings": {
"InputType": "NORMAL",
"Bitrate": 128000,
"CodingMode": "CODING_MODE_2_0",
"RawFormat": "NONE",
"Spec": "MPEG4",
"Profile": "LC",
"RateControlMode": "CBR",
"SampleRate": 48000
}
},
"AudioTypeControl": "FOLLOW_INPUT",
"LanguageCodeControl": "FOLLOW_INPUT",
"Name": "audio_mid"
}
],
"CaptionDescriptions": [],
"OutputGroups": [
{
"OutputGroupSettings": {
"HlsGroupSettings": {
"AdMarkers": [],
"CaptionLanguageSetting": "OMIT",
"CaptionLanguageMappings": [],
"HlsCdnSettings": {
"HlsMediaStoreSettings": {
"NumRetries": 10,
"ConnectionRetryInterval": 1,
"RestartDelay": 15,
"FilecacheDuration": 300,
"MediaStoreStorageClass": "TEMPORAL"
}
},
"InputLossAction": "EMIT_OUTPUT",
"ManifestCompression": "NONE",
"Destination": {
"DestinationRefId": "hlsdestin"
},
"IvInManifest": "INCLUDE",
"IvSource": "FOLLOWS_SEGMENT_NUMBER",
"ClientCache": "ENABLED",
"TsFileMode": "SEGMENTED_FILES",
"ManifestDurationFormat": "FLOATING_POINT",
"SegmentationMode": "USE_SEGMENT_DURATION",
"RedundantManifest": "DISABLED",
"OutputSelection": "MANIFESTS_AND_SEGMENTS",
"StreamInfResolution": "INCLUDE",
"IFrameOnlyPlaylists": "DISABLED",
"IndexNSegments": 15,
"ProgramDateTime": "EXCLUDE",
"ProgramDateTimePeriod": 600,
"KeepSegments": 30,
"SegmentLength": 2,
"TimedMetadataId3Frame": "PRIV",
"TimedMetadataId3Period": 10,
"HlsId3SegmentTagging": "DISABLED",
"CodecSpecification": "RFC_4281",
"DirectoryStructure": "SINGLE_DIRECTORY",
"SegmentsPerSubdirectory": 10000,
"Mode": "LIVE"
}
},
"Name": "HLS Group",
"Outputs": [
{
"OutputSettings": {
"HlsOutputSettings": {
"NameModifier": "_mid",
"HlsSettings": {
"StandardHlsSettings": {
"M3u8Settings": {
"AudioFramesPerPes": 4,
"AudioPids": "492-498",
"NielsenId3Behavior": "NO_PASSTHROUGH",
"PcrControl": "PCR_EVERY_PES_PACKET",
"PmtPid": "480",
"ProgramNum": 1,
"Scte35Pid": "500",
"Scte35Behavior": "NO_PASSTHROUGH",
"TimedMetadataPid": "502",
"TimedMetadataBehavior": "NO_PASSTHROUGH",
"VideoPid": "481"
},
"AudioRenditionSets": "program_audio"
}
},
"H265PackagingType": "HVC1"
}
},
"OutputName": "mid",
"VideoDescriptionName": "video_mid",
"AudioDescriptionNames": [
"audio_mid"
],
"CaptionDescriptionNames": []
}
]
}
],
"TimecodeConfig": {
"Source": "EMBEDDED"
},
"VideoDescriptions": [
{
"CodecSettings": {
"H264Settings": {
"AfdSignaling": "NONE",
"ColorMetadata": "INSERT",
"AdaptiveQuantization": "MEDIUM",
"Bitrate": 2000000,
"EntropyEncoding": "CABAC",
"FlickerAq": "ENABLED",
"FramerateControl": "SPECIFIED",
"FramerateNumerator": 30,
"FramerateDenominator": 1,
"GopBReference": "DISABLED",
"GopClosedCadence": 1,
"GopNumBFrames": 1,
"GopSize": 2,
"GopSizeUnits": "SECONDS",
"SubgopLength": "FIXED",
"ScanType": "PROGRESSIVE",
"Level": "H264_LEVEL_AUTO",
"LookAheadRateControl": "MEDIUM",
"NumRefFrames": 1,
"ParControl": "INITIALIZE_FROM_SOURCE",
"Profile": "MAIN",
"RateControlMode": "CBR",
"Syntax": "DEFAULT",
"SceneChangeDetect": "ENABLED",
"SpatialAq": "ENABLED",
"TemporalAq": "ENABLED",
"TimecodeInsertion": "DISABLED"
}
},
"Height": 720,
"Name": "video_mid",
"RespondToAfd": "NONE",
"Sharpness": 50,
"ScalingBehavior": "DEFAULT",
"Width": 1280
}
]
},
"RoleArn": "arn:aws:iam::xxxxx:role/MediaLiveAccessRole",
"InputSpecification": {
"Codec": "AVC",
"Resolution": "HD",
"MaximumBitrate": "MAX_20_MBPS"
},
"LogLevel": "ERROR",
"Tags": {},
"ChannelClass": "SINGLE_PIPELINE"
}
변경이 필요한 곳
항목
설명
비고
Name
채널 이름
InputId
방금 생성한 InputID
Url
mediastore 데이터 endpoint
https://가 아닌mediastoressl://로 변경해야 합니다.
AudioDescriptions
사운드 비트레이트 등 사운드 관련 설정 입력
VideoDescriptions
Bitrate, Frame Rate, 해상도 등 영상 관련 설정 입력
RoleArn
미디어 실시간 액세스 권한이 있는 IAMROle
생성되지 않으면 먼저 생성해야 합니다.
ChannelClass
수량 입력
SINGLE_PIPELINEE 또는 STANDARD
CLI로 채널 만들기!
$ aws medialive --profile <名前付きプロファイル名> create-channel --region <作成するリージョン> --cli-input-json file://<JSONファイル名>
【例】
$ aws medialive --profile xxxx create-channel --region ap-northeast-1 --cli-input-json file://test-channel.json
이로써 제작 종료!
콘솔 화면에 생성된 입력 또는 채널이 성공적으로 생성되었습니다!
동일한 구성의 여러 채널을 만들 때 템플릿을 준비하는 것이 유용합니다.
이번에도 읽어주셔서 감사합니다
참고 자료
Reference
이 문제에 관하여(AWS CLI에서 AWS Elemental MediaLive 신속 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/r-wakamatsu/items/9beeb67f618827c5037f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
{
"Name": "test-input",
"Type": "RTMP_PUSH",
"InputSecurityGroups": [
"000000"
],
"Destinations": [
{
"StreamName": "hoge/stream"
}
]
}
$aws medialive --profile <名前付きプロファイル名> create-input --region <作成するリージョン> --cli-input-json file://<JSONファイル名>
【例】
$aws medialive --profile xxxx create-input --region ap-northeast-1 --cli-input-json file://test-input.json
ABR은 간단한 채널 설정 예입니다.
{
"Name": "test-channel",
"InputAttachments": [
{
"InputId": "xxxxx",
"InputAttachmentName": "test-input",
"InputSettings": {
"SourceEndBehavior": "CONTINUE",
"InputFilter": "AUTO",
"FilterStrength": 1,
"DeblockFilter": "DISABLED",
"DenoiseFilter": "DISABLED",
"AudioSelectors": [
{
"Name": "Audio1"
}
],
"CaptionSelectors": []
}
}
],
"Destinations": [
{
"Id": "hlsdestin",
"Settings": [
{
"Url": "mediastoressl://xxxx.data.mediastore.ap-northeast-1.amazonaws.com/demo/liveA"
},
],
"MediaPackageSettings": []
}
],
"EncoderSettings": {
"AudioDescriptions": [
{
"AudioSelectorName": "Audio1",
"CodecSettings": {
"AacSettings": {
"InputType": "NORMAL",
"Bitrate": 128000,
"CodingMode": "CODING_MODE_2_0",
"RawFormat": "NONE",
"Spec": "MPEG4",
"Profile": "LC",
"RateControlMode": "CBR",
"SampleRate": 48000
}
},
"AudioTypeControl": "FOLLOW_INPUT",
"LanguageCodeControl": "FOLLOW_INPUT",
"Name": "audio_mid"
}
],
"CaptionDescriptions": [],
"OutputGroups": [
{
"OutputGroupSettings": {
"HlsGroupSettings": {
"AdMarkers": [],
"CaptionLanguageSetting": "OMIT",
"CaptionLanguageMappings": [],
"HlsCdnSettings": {
"HlsMediaStoreSettings": {
"NumRetries": 10,
"ConnectionRetryInterval": 1,
"RestartDelay": 15,
"FilecacheDuration": 300,
"MediaStoreStorageClass": "TEMPORAL"
}
},
"InputLossAction": "EMIT_OUTPUT",
"ManifestCompression": "NONE",
"Destination": {
"DestinationRefId": "hlsdestin"
},
"IvInManifest": "INCLUDE",
"IvSource": "FOLLOWS_SEGMENT_NUMBER",
"ClientCache": "ENABLED",
"TsFileMode": "SEGMENTED_FILES",
"ManifestDurationFormat": "FLOATING_POINT",
"SegmentationMode": "USE_SEGMENT_DURATION",
"RedundantManifest": "DISABLED",
"OutputSelection": "MANIFESTS_AND_SEGMENTS",
"StreamInfResolution": "INCLUDE",
"IFrameOnlyPlaylists": "DISABLED",
"IndexNSegments": 15,
"ProgramDateTime": "EXCLUDE",
"ProgramDateTimePeriod": 600,
"KeepSegments": 30,
"SegmentLength": 2,
"TimedMetadataId3Frame": "PRIV",
"TimedMetadataId3Period": 10,
"HlsId3SegmentTagging": "DISABLED",
"CodecSpecification": "RFC_4281",
"DirectoryStructure": "SINGLE_DIRECTORY",
"SegmentsPerSubdirectory": 10000,
"Mode": "LIVE"
}
},
"Name": "HLS Group",
"Outputs": [
{
"OutputSettings": {
"HlsOutputSettings": {
"NameModifier": "_mid",
"HlsSettings": {
"StandardHlsSettings": {
"M3u8Settings": {
"AudioFramesPerPes": 4,
"AudioPids": "492-498",
"NielsenId3Behavior": "NO_PASSTHROUGH",
"PcrControl": "PCR_EVERY_PES_PACKET",
"PmtPid": "480",
"ProgramNum": 1,
"Scte35Pid": "500",
"Scte35Behavior": "NO_PASSTHROUGH",
"TimedMetadataPid": "502",
"TimedMetadataBehavior": "NO_PASSTHROUGH",
"VideoPid": "481"
},
"AudioRenditionSets": "program_audio"
}
},
"H265PackagingType": "HVC1"
}
},
"OutputName": "mid",
"VideoDescriptionName": "video_mid",
"AudioDescriptionNames": [
"audio_mid"
],
"CaptionDescriptionNames": []
}
]
}
],
"TimecodeConfig": {
"Source": "EMBEDDED"
},
"VideoDescriptions": [
{
"CodecSettings": {
"H264Settings": {
"AfdSignaling": "NONE",
"ColorMetadata": "INSERT",
"AdaptiveQuantization": "MEDIUM",
"Bitrate": 2000000,
"EntropyEncoding": "CABAC",
"FlickerAq": "ENABLED",
"FramerateControl": "SPECIFIED",
"FramerateNumerator": 30,
"FramerateDenominator": 1,
"GopBReference": "DISABLED",
"GopClosedCadence": 1,
"GopNumBFrames": 1,
"GopSize": 2,
"GopSizeUnits": "SECONDS",
"SubgopLength": "FIXED",
"ScanType": "PROGRESSIVE",
"Level": "H264_LEVEL_AUTO",
"LookAheadRateControl": "MEDIUM",
"NumRefFrames": 1,
"ParControl": "INITIALIZE_FROM_SOURCE",
"Profile": "MAIN",
"RateControlMode": "CBR",
"Syntax": "DEFAULT",
"SceneChangeDetect": "ENABLED",
"SpatialAq": "ENABLED",
"TemporalAq": "ENABLED",
"TimecodeInsertion": "DISABLED"
}
},
"Height": 720,
"Name": "video_mid",
"RespondToAfd": "NONE",
"Sharpness": 50,
"ScalingBehavior": "DEFAULT",
"Width": 1280
}
]
},
"RoleArn": "arn:aws:iam::xxxxx:role/MediaLiveAccessRole",
"InputSpecification": {
"Codec": "AVC",
"Resolution": "HD",
"MaximumBitrate": "MAX_20_MBPS"
},
"LogLevel": "ERROR",
"Tags": {},
"ChannelClass": "SINGLE_PIPELINE"
}
변경이 필요한 곳
항목
설명
비고
Name
채널 이름
InputId
방금 생성한 InputID
Url
mediastore 데이터 endpoint
https://가 아닌mediastoressl://로 변경해야 합니다.
AudioDescriptions
사운드 비트레이트 등 사운드 관련 설정 입력
VideoDescriptions
Bitrate, Frame Rate, 해상도 등 영상 관련 설정 입력
RoleArn
미디어 실시간 액세스 권한이 있는 IAMROle
생성되지 않으면 먼저 생성해야 합니다.
ChannelClass
수량 입력
SINGLE_PIPELINEE 또는 STANDARD
CLI로 채널 만들기!
$ aws medialive --profile <名前付きプロファイル名> create-channel --region <作成するリージョン> --cli-input-json file://<JSONファイル名>
【例】
$ aws medialive --profile xxxx create-channel --region ap-northeast-1 --cli-input-json file://test-channel.json
이로써 제작 종료!콘솔 화면에 생성된 입력 또는 채널이 성공적으로 생성되었습니다!
동일한 구성의 여러 채널을 만들 때 템플릿을 준비하는 것이 유용합니다.
이번에도 읽어주셔서 감사합니다
참고 자료
Reference
이 문제에 관하여(AWS CLI에서 AWS Elemental MediaLive 신속 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/r-wakamatsu/items/9beeb67f618827c5037f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)