SDK for Kotlin을 사용한 MediaConvert 예제 - AWS SDK for Kotlin

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

SDK for Kotlin을 사용한 MediaConvert 예제

다음 코드 예제에서는 AWS MediaConvert와 함께 SDK for Kotlin을 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

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

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

주제

작업

다음 코드 예시는 CreateJob의 사용 방법을 보여 줍니다.

SDK for Kotlin
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

suspend fun createMediaJob( mcClient: MediaConvertClient, mcRoleARN: String, fileInput1: String, ): String? { // Step 1: Describe endpoints to get the MediaConvert endpoint URL val describeResponse = mcClient.describeEndpoints( DescribeEndpointsRequest { maxResults = 1 }, ) val endpointUrl = describeResponse.endpoints?.firstOrNull()?.url ?: error("No MediaConvert endpoint found") // Step 2: Create MediaConvert client with resolved endpoint val mediaConvert = MediaConvertClient.fromEnvironment { region = "us-west-2" endpointProvider = MediaConvertEndpointProvider { Endpoint(endpointUrl) } } // Output destination folder in S3 - put in 'output/' folder beside input val outputDestination = fileInput1.substringBeforeLast('/') + "/output/" // Step 3: Create the job request with minimal valid video codec settings val jobRequest = CreateJobRequest { role = mcRoleARN settings = JobSettings { inputs = listOf( Input { fileInput = fileInput1 }, ) outputGroups = listOf( OutputGroup { outputGroupSettings = OutputGroupSettings { type = OutputGroupType.FileGroupSettings fileGroupSettings = FileGroupSettings { destination = outputDestination } } outputs = listOf( Output { containerSettings = ContainerSettings { container = ContainerType.Mp4 } videoDescription = VideoDescription { width = 1280 height = 720 codecSettings = VideoCodecSettings { codec = VideoCodec.H264 h264Settings = H264Settings { rateControlMode = H264RateControlMode.Qvbr qvbrSettings = H264QvbrSettings { qvbrQualityLevel = 7 } maxBitrate = 5_000_000 codecLevel = H264CodecLevel.Auto codecProfile = H264CodecProfile.Main framerateControl = H264FramerateControl.InitializeFromSource } } } }, ) }, ) } } // Step 4: Call MediaConvert to create the job val response = mediaConvert.createJob(jobRequest) // Return the job ID or null if not found return response.job?.id }
  • API 세부 정보는 AWS SDK for Kotlin API 참조CreateJob을 참조하십시오.

다음 코드 예시는 GetJob의 사용 방법을 보여 줍니다.

SDK for Kotlin
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

suspend fun getSpecificJob(mcClient: MediaConvertClient, jobId: String) { // 1. Discover the correct endpoint val res = mcClient.describeEndpoints(DescribeEndpointsRequest { maxResults = 1 }) var endpointUrl = res.endpoints?.firstOrNull()?.url ?: error(" No MediaConvert endpoint found") // 2. Create a new client using the endpoint val clientWithEndpoint = MediaConvertClient { region = "us-west-2" endpointUrl = endpointUrl } // 3. Get the job details val jobResponse = clientWithEndpoint.getJob(GetJobRequest { id = jobId }) val job = jobResponse.job println("Job status: ${job?.status}") println("Job ARN: ${job?.arn}") println("Output group count: ${job?.settings?.outputGroups?.size}") }
  • API 세부 정보는 AWS SDK for Kotlin API 참조GetJob을 참조하십시오.

다음 코드 예시는 ListJobs의 사용 방법을 보여 줍니다.

SDK for Kotlin
참고

GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

suspend fun listCompleteJobs(mcClient: MediaConvertClient) { val describeEndpoints = DescribeEndpointsRequest { maxResults = 20 } val res = mcClient.describeEndpoints(describeEndpoints) if (res.endpoints?.size!! <= 0) { println("Cannot find MediaConvert service endpoint URL!") exitProcess(0) } val endpointURL = res.endpoints!![0].url!! val mediaConvert = MediaConvertClient.fromEnvironment { region = "us-west-2" endpointProvider = MediaConvertEndpointProvider { Endpoint(endpointURL) } } val jobsRequest = ListJobsRequest { maxResults = 10 status = JobStatus.fromValue("COMPLETE") } val jobsResponse = mediaConvert.listJobs(jobsRequest) val jobs = jobsResponse.jobs if (jobs != null) { for (job in jobs) { println("The JOB ARN is ${job.arn}") } } }
  • API 세부 정보는 AWS SDK for Kotlin API 참조ListJobs를 참조하십시오.