기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 사용 설명서의 지원되는 입력 코덱 및 컨테이너를 참조하세요.
다음 예제에서는 다음과 같은 작업을 하는 방법을 보여줍니다.
에 대한 모든 예제 코드는 에서 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 콘솔
샘플 코드
$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"; }