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

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

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

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

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

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

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

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

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

  • AWS Elemental MediaConvert 대기열에서 트랜스코딩 작업을 취소하십시오. CancelJob

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

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

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

보안 인증 정보

예제 코드를 실행하기 전에 에 설명된 대로 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" ] ];

작업 만들기

작업 파라미터 JSON을 생성한 후에는 AWS.MediaConvert service object를 호출하고 파라미터를 전달하여 createJob 메서드를 호출합니다. 생성된 작업의 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"; }

최근 트랜스코딩 작업 나열

목록을 오름차순 또는 내림차순으로 정렬할지 여부, 확인할 작업 대기열의 ARN 및 포함할 작업 상태를 지정하는 값을 포함하여 JSON 파라미터를 생성합니다. 그러면 최대 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"; }