AWS Elemental MediaConvertAWS SDK for PHP 버전 3을 사용한 예제 - AWS SDK for PHP

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

AWS Elemental MediaConvertAWS SDK for PHP 버전 3을 사용한 예제

AWS Elemental MediaConvert 는 브로드캐스트 등급 기능이 있는 파일 기반 비디오 트랜스코딩 서비스입니다. 이를 사용하여 브로드캐스트 및 인터넷을 통한 (VOD) 전송을 위한 video-on-demand 자산을 생성할 수 있습니다. 자세한 내용은 AWS Elemental MediaConvert 사용 설명서를 참조하십시오.

PHP API 용 AWS Elemental MediaConvert 는 AWS.MediaConvert 클라이언트 클래스를 통해 노출됩니다. 자세한 내용은 API 참조Class: AWS.MediaConvert의 섹션을 참조하세요.

에서 트랜스코딩 작업 생성 및 관리 AWS Elemental MediaConvert

이 예제에서는 AWS SDK for PHP 버전 3을 사용하여 를 호출 AWS Elemental MediaConvert 하고 트랜스코딩 작업을 생성합니다. 시작하기 전에 입력 스토리지로 프로비저닝한 Amazon S3 버킷에 입력 비디오를 업로드해야 합니다. 지원되는 입력 비디오 코덱 및 컨테이너 목록은 AWS Elemental MediaConvert 사용 설명서지원되는 입력 코덱 및 컨테이너를 참조하세요.

다음 예제에서는 다음과 같은 작업을 하는 방법을 보여줍니다.

  • 에서 트랜스코딩 작업을 생성합니다 AWS Elemental MediaConvert. CreateJob.

  • AWS Elemental MediaConvert 대기열에서 트랜스코딩 작업을 취소합니다. CancelJob

  • 완료된 트랜스코딩 작업에 JSON 대해 를 검색합니다. GetJob

  • 가장 최근에 생성된 작업 중 최대 20개에 대한 JSON 배열을 검색합니다. ListJobs

에 대한 모든 예제 코드는 에서 GitHub확인할 AWS SDK for PHP 수 있습니다.

보안 인증 정보

예제 코드를 실행하기 전에 에 설명된 대로 AWS 자격 증명을 구성합니다보안 인증 정보. 그런 다음 에 설명된 AWS SDK for PHP대로 를 가져옵니다기본 사용법.

MediaConvert 클라이언트에 액세스하려면 입력 파일과 출력 파일이 저장된 Amazon S3 버킷에 대한 AWS Elemental MediaConvert 액세스 권한을 부여하는 IAM 역할을 생성합니다. 자세한 내용은 AWS Elemental MediaConvert 사용 설명서 IAM 권한 설정을 참조하세요.

클라이언트 만들기

코드의 리전을 사용하여 MediaConvert 클라이언트를 생성 AWS SDK for PHP 하여 를 구성합니다. 예를 들면, 리전이 us-west-2로 설정되어 있습니다.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\MediaConvert\MediaConvertClient;

샘플 코드

$mediaConvertClient = new MediaConvertClient([ 'version' => '2017-08-29', 'region' => 'us-east-2', 'profile' => 'default' ]);

단순 트랜스코딩 작업 정의

트랜스코드 작업 파라미터를 JSON 정의하는 를 생성합니다.

이러한 파라미터는 세부적으로 정의됩니다. AWS Elemental MediaConvert 콘솔을 사용하여 콘솔에서 JSON 작업 설정을 선택한 다음 작업 섹션 하단에서 작업 표시를 JSON 선택하여 작업 파라미터를 생성할 수 있습니다. 이 예제는 간단한 작업에 JSON 대한 를 보여줍니다.

샘플 코드

$jobSetting = [ "OutputGroups" => [ [ "Name" => "File Group", "OutputGroupSettings" => [ "Type" => "FILE_GROUP_SETTINGS", "FileGroupSettings" => [ "Destination" => "s3://OUTPUT_BUCKET_NAME/" ] ], "Outputs" => [ [ "VideoDescription" => [ "ScalingBehavior" => "DEFAULT", "TimecodeInsertion" => "DISABLED", "AntiAlias" => "ENABLED", "Sharpness" => 50, "CodecSettings" => [ "Codec" => "H_264", "H264Settings" => [ "InterlaceMode" => "PROGRESSIVE", "NumberReferenceFrames" => 3, "Syntax" => "DEFAULT", "Softness" => 0, "GopClosedCadence" => 1, "GopSize" => 90, "Slices" => 1, "GopBReference" => "DISABLED", "SlowPal" => "DISABLED", "SpatialAdaptiveQuantization" => "ENABLED", "TemporalAdaptiveQuantization" => "ENABLED", "FlickerAdaptiveQuantization" => "DISABLED", "EntropyEncoding" => "CABAC", "Bitrate" => 5000000, "FramerateControl" => "SPECIFIED", "RateControlMode" => "CBR", "CodecProfile" => "MAIN", "Telecine" => "NONE", "MinIInterval" => 0, "AdaptiveQuantization" => "HIGH", "CodecLevel" => "AUTO", "FieldEncoding" => "PAFF", "SceneChangeDetect" => "ENABLED", "QualityTuningLevel" => "SINGLE_PASS", "FramerateConversionAlgorithm" => "DUPLICATE_DROP", "UnregisteredSeiTimecode" => "DISABLED", "GopSizeUnits" => "FRAMES", "ParControl" => "SPECIFIED", "NumberBFramesBetweenReferenceFrames" => 2, "RepeatPps" => "DISABLED", "FramerateNumerator" => 30, "FramerateDenominator" => 1, "ParNumerator" => 1, "ParDenominator" => 1 ] ], "AfdSignaling" => "NONE", "DropFrameTimecode" => "ENABLED", "RespondToAfd" => "NONE", "ColorMetadata" => "INSERT" ], "AudioDescriptions" => [ [ "AudioTypeControl" => "FOLLOW_INPUT", "CodecSettings" => [ "Codec" => "AAC", "AacSettings" => [ "AudioDescriptionBroadcasterMix" => "NORMAL", "RateControlMode" => "CBR", "CodecProfile" => "LC", "CodingMode" => "CODING_MODE_2_0", "RawFormat" => "NONE", "SampleRate" => 48000, "Specification" => "MPEG4", "Bitrate" => 64000 ] ], "LanguageCodeControl" => "FOLLOW_INPUT", "AudioSourceName" => "Audio Selector 1" ] ], "ContainerSettings" => [ "Container" => "MP4", "Mp4Settings" => [ "CslgAtom" => "INCLUDE", "FreeSpaceBox" => "EXCLUDE", "MoovPlacement" => "PROGRESSIVE_DOWNLOAD" ] ], "NameModifier" => "_1" ] ] ] ], "AdAvailOffset" => 0, "Inputs" => [ [ "AudioSelectors" => [ "Audio Selector 1" => [ "Offset" => 0, "DefaultSelection" => "NOT_DEFAULT", "ProgramSelection" => 1, "SelectorType" => "TRACK", "Tracks" => [ 1 ] ] ], "VideoSelector" => [ "ColorSpace" => "FOLLOW" ], "FilterEnable" => "AUTO", "PsiControl" => "USE_PSI", "FilterStrength" => 0, "DeblockFilter" => "DISABLED", "DenoiseFilter" => "DISABLED", "TimecodeSource" => "EMBEDDED", "FileInput" => "s3://INPUT_BUCKET_AND_FILE_NAME" ] ], "TimecodeConfig" => [ "Source" => "EMBEDDED" ] ];

작업 만들기

작업 파라미터 를 생성한 후 를 호출AWS.MediaConvert service object하고 파라미터를 전달하여 createJob 메서드를 JSON호출합니다. 생성된 작업의 ID는 응답 데이터로 반환됩니다.

샘플 코드

try { $result = $mediaConvertClient->createJob([ "Role" => "IAM_ROLE_ARN", "Settings" => $jobSetting, //JobSettings structure "Queue" => "JOB_QUEUE_ARN", "UserMetadata" => [ "Customer" => "Amazon" ], ]); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

작업 검색

createjob을 호출할 때 JobID가 반환되면 JSON 형식으로 최근 작업에 대한 자세한 설명을 얻을 수 있습니다.

샘플 코드

$mediaConvertClient = new MediaConvertClient([ 'version' => '2017-08-29', 'region' => 'us-east-2', 'profile' => 'default' ]); try { $result = $mediaConvertClient->getJob([ 'Id' => 'JOB_ID', ]); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

작업 취소

createjob 호출 시 반환되었던 JobID를 사용하여 대기열에 있는 동안 작업을 취소할 수 있습니다. 이미 트랜스코딩이 시작된 작업은 취소할 수 없습니다.

샘플 코드

$mediaConvertClient = new MediaConvertClient([ 'version' => '2017-08-29', 'region' => 'us-east-2', 'profile' => 'default' ]); try { $result = $mediaConvertClient->cancelJob([ 'Id' => 'JOB_ID', // REQUIRED The Job ID of the job to be cancelled. ]); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

최근 트랜스코딩 작업 나열

값을 포함하여 파라미터를 생성하여 목록을 JSON, 또는 DESCENDING 순서로 정렬할지ASCENDING, 확인할 작업 대기열ARN의 , 포함할 작업의 상태를 지정합니다. 그러면 최대 20개 작업이 반환됩니다. 20개의 최근 작업을 검색하려면 결과와 함께 반환된 nextToken 문자열을 사용합니다.

샘플 코드

$mediaConvertClient = new MediaConvertClient([ 'version' => '2017-08-29', 'region' => 'us-east-2', 'profile' => 'default' ]); try { $result = $mediaConvertClient->listJobs([ 'MaxResults' => 20, 'Order' => 'ASCENDING', 'Queue' => 'QUEUE_ARN', 'Status' => 'SUBMITTED', // 'NextToken' => '<string>', //OPTIONAL To retrieve the twenty next most recent jobs ]); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }