TransformArgs

data class TransformArgs(val description: Output<String>? = null, val mediaServicesAccountName: Output<String>? = null, val name: Output<String>? = null, val outputs: Output<List<TransformOutputArgs>>? = null, val resourceGroupName: Output<String>? = null) : ConvertibleToJava<TransformArgs>

Manages a Transform.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "media-resources",
location: "West Europe",
});
const exampleAccount = new azure.storage.Account("example", {
name: "examplestoracc",
resourceGroupName: example.name,
location: example.location,
accountTier: "Standard",
accountReplicationType: "GRS",
});
const exampleServiceAccount = new azure.media.ServiceAccount("example", {
name: "examplemediaacc",
location: example.location,
resourceGroupName: example.name,
storageAccounts: [{
id: exampleAccount.id,
isPrimary: true,
}],
});
const exampleTransform = new azure.media.Transform("example", {
name: "transform1",
resourceGroupName: example.name,
mediaServicesAccountName: exampleServiceAccount.name,
description: "My transform description",
outputs: [{
relativePriority: "Normal",
onErrorAction: "ContinueJob",
builtinPreset: {
presetName: "AACGoodQualityAudio",
},
}],
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="media-resources",
location="West Europe")
example_account = azure.storage.Account("example",
name="examplestoracc",
resource_group_name=example.name,
location=example.location,
account_tier="Standard",
account_replication_type="GRS")
example_service_account = azure.media.ServiceAccount("example",
name="examplemediaacc",
location=example.location,
resource_group_name=example.name,
storage_accounts=[{
"id": example_account.id,
"is_primary": True,
}])
example_transform = azure.media.Transform("example",
name="transform1",
resource_group_name=example.name,
media_services_account_name=example_service_account.name,
description="My transform description",
outputs=[{
"relative_priority": "Normal",
"on_error_action": "ContinueJob",
"builtin_preset": {
"preset_name": "AACGoodQualityAudio",
},
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "media-resources",
Location = "West Europe",
});
var exampleAccount = new Azure.Storage.Account("example", new()
{
Name = "examplestoracc",
ResourceGroupName = example.Name,
Location = example.Location,
AccountTier = "Standard",
AccountReplicationType = "GRS",
});
var exampleServiceAccount = new Azure.Media.ServiceAccount("example", new()
{
Name = "examplemediaacc",
Location = example.Location,
ResourceGroupName = example.Name,
StorageAccounts = new[]
{
new Azure.Media.Inputs.ServiceAccountStorageAccountArgs
{
Id = exampleAccount.Id,
IsPrimary = true,
},
},
});
var exampleTransform = new Azure.Media.Transform("example", new()
{
Name = "transform1",
ResourceGroupName = example.Name,
MediaServicesAccountName = exampleServiceAccount.Name,
Description = "My transform description",
Outputs = new[]
{
new Azure.Media.Inputs.TransformOutputArgs
{
RelativePriority = "Normal",
OnErrorAction = "ContinueJob",
BuiltinPreset = new Azure.Media.Inputs.TransformOutputBuiltinPresetArgs
{
PresetName = "AACGoodQualityAudio",
},
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/media"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/storage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("media-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
Name: pulumi.String("examplestoracc"),
ResourceGroupName: example.Name,
Location: example.Location,
AccountTier: pulumi.String("Standard"),
AccountReplicationType: pulumi.String("GRS"),
})
if err != nil {
return err
}
exampleServiceAccount, err := media.NewServiceAccount(ctx, "example", &media.ServiceAccountArgs{
Name: pulumi.String("examplemediaacc"),
Location: example.Location,
ResourceGroupName: example.Name,
StorageAccounts: media.ServiceAccountStorageAccountArray{
&media.ServiceAccountStorageAccountArgs{
Id: exampleAccount.ID(),
IsPrimary: pulumi.Bool(true),
},
},
})
if err != nil {
return err
}
_, err = media.NewTransform(ctx, "example", &media.TransformArgs{
Name: pulumi.String("transform1"),
ResourceGroupName: example.Name,
MediaServicesAccountName: exampleServiceAccount.Name,
Description: pulumi.String("My transform description"),
Outputs: media.TransformOutputTypeArray{
&media.TransformOutputTypeArgs{
RelativePriority: pulumi.String("Normal"),
OnErrorAction: pulumi.String("ContinueJob"),
BuiltinPreset: &media.TransformOutputBuiltinPresetArgs{
PresetName: pulumi.String("AACGoodQualityAudio"),
},
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.storage.Account;
import com.pulumi.azure.storage.AccountArgs;
import com.pulumi.azure.media.ServiceAccount;
import com.pulumi.azure.media.ServiceAccountArgs;
import com.pulumi.azure.media.inputs.ServiceAccountStorageAccountArgs;
import com.pulumi.azure.media.Transform;
import com.pulumi.azure.media.TransformArgs;
import com.pulumi.azure.media.inputs.TransformOutputArgs;
import com.pulumi.azure.media.inputs.TransformOutputBuiltinPresetArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("media-resources")
.location("West Europe")
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("examplestoracc")
.resourceGroupName(example.name())
.location(example.location())
.accountTier("Standard")
.accountReplicationType("GRS")
.build());
var exampleServiceAccount = new ServiceAccount("exampleServiceAccount", ServiceAccountArgs.builder()
.name("examplemediaacc")
.location(example.location())
.resourceGroupName(example.name())
.storageAccounts(ServiceAccountStorageAccountArgs.builder()
.id(exampleAccount.id())
.isPrimary(true)
.build())
.build());
var exampleTransform = new Transform("exampleTransform", TransformArgs.builder()
.name("transform1")
.resourceGroupName(example.name())
.mediaServicesAccountName(exampleServiceAccount.name())
.description("My transform description")
.outputs(TransformOutputArgs.builder()
.relativePriority("Normal")
.onErrorAction("ContinueJob")
.builtinPreset(TransformOutputBuiltinPresetArgs.builder()
.presetName("AACGoodQualityAudio")
.build())
.build())
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: media-resources
location: West Europe
exampleAccount:
type: azure:storage:Account
name: example
properties:
name: examplestoracc
resourceGroupName: ${example.name}
location: ${example.location}
accountTier: Standard
accountReplicationType: GRS
exampleServiceAccount:
type: azure:media:ServiceAccount
name: example
properties:
name: examplemediaacc
location: ${example.location}
resourceGroupName: ${example.name}
storageAccounts:
- id: ${exampleAccount.id}
isPrimary: true
exampleTransform:
type: azure:media:Transform
name: example
properties:
name: transform1
resourceGroupName: ${example.name}
mediaServicesAccountName: ${exampleServiceAccount.name}
description: My transform description
outputs:
- relativePriority: Normal
onErrorAction: ContinueJob
builtinPreset:
presetName: AACGoodQualityAudio

With Multiple Outputs

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "media-resources",
location: "West Europe",
});
const exampleAccount = new azure.storage.Account("example", {
name: "examplestoracc",
resourceGroupName: example.name,
location: example.location,
accountTier: "Standard",
accountReplicationType: "GRS",
});
const exampleServiceAccount = new azure.media.ServiceAccount("example", {
name: "examplemediaacc",
location: example.location,
resourceGroupName: example.name,
storageAccounts: [{
id: exampleAccount.id,
isPrimary: true,
}],
});
const exampleTransform = new azure.media.Transform("example", {
name: "transform1",
resourceGroupName: example.name,
mediaServicesAccountName: exampleServiceAccount.name,
description: "My transform description",
outputs: [
{
relativePriority: "Normal",
onErrorAction: "ContinueJob",
builtinPreset: {
presetName: "AACGoodQualityAudio",
presetConfiguration: {
complexity: "Balanced",
interleaveOutput: "NonInterleavedOutput",
keyFrameIntervalInSeconds: 123122.5,
maxBitrateBps: 300000,
maxHeight: 480,
maxLayers: 14,
minBitrateBps: 200000,
minHeight: 360,
},
},
},
{
relativePriority: "Low",
onErrorAction: "ContinueJob",
audioAnalyzerPreset: {
audioLanguage: "en-US",
audioAnalysisMode: "Basic",
experimentalOptions: {
env: "test",
},
},
},
{
relativePriority: "Low",
onErrorAction: "StopProcessingJob",
faceDetectorPreset: {
analysisResolution: "StandardDefinition",
blurType: "Med",
faceRedactorMode: "Combined",
experimentalOptions: {
env: "test",
},
},
},
{
relativePriority: "Normal",
onErrorAction: "StopProcessingJob",
videoAnalyzerPreset: {
audioLanguage: "en-US",
audioAnalysisMode: "Basic",
insightsType: "AllInsights",
experimentalOptions: {
env: "test",
},
},
},
{
relativePriority: "Low",
onErrorAction: "ContinueJob",
customPreset: {
codecs: [
{
aacAudio: {
bitrate: 128000,
channels: 2,
samplingRate: 48000,
profile: "AacLc",
},
},
{
copyAudio: {
label: "test",
},
},
{
copyVideo: {
label: "test",
},
},
{
h264Video: {
keyFrameInterval: "PT1S",
stretchMode: "AutoSize",
syncMode: "Auto",
sceneChangeDetectionEnabled: false,
rateControlMode: "ABR",
complexity: "Quality",
layers: [
{
width: "64",
height: "64",
bitrate: 1045000,
maxBitrate: 1045000,
bFrames: 3,
slices: 0,
adaptiveBFrameEnabled: true,
profile: "Auto",
level: "auto",
bufferWindow: "PT5S",
referenceFrames: 4,
crf: 23,
entropyMode: "Cabac",
},
{
width: "64",
height: "64",
bitrate: 1000,
maxBitrate: 1000,
bFrames: 3,
frameRate: "32",
slices: 1,
adaptiveBFrameEnabled: true,
profile: "High444",
level: "auto",
bufferWindow: "PT5S",
referenceFrames: 4,
crf: 23,
entropyMode: "Cavlc",
},
],
},
},
{
h265Video: {
keyFrameInterval: "PT2S",
stretchMode: "AutoSize",
syncMode: "Auto",
sceneChangeDetectionEnabled: false,
complexity: "Speed",
layers: [{
width: "64",
height: "64",
bitrate: 1045000,
maxBitrate: 1045000,
bFrames: 3,
slices: 5,
adaptiveBFrameEnabled: true,
profile: "Auto",
label: "test",
level: "auto",
bufferWindow: "PT5S",
frameRate: "32",
referenceFrames: 4,
crf: 23,
}],
},
},
{
jpgImage: {
stretchMode: "AutoSize",
syncMode: "Auto",
start: "10",
range: "100%%",
spriteColumn: 1,
step: "10",
layers: [{
quality: 70,
height: "180",
label: "test",
width: "120",
}],
},
},
{
pngImage: {
stretchMode: "AutoSize",
syncMode: "Auto",
start: "{Best}",
range: "80",
step: "10",
layers: [{
height: "180",
label: "test",
width: "120",
}],
},
},
],
formats: [
{
jpg: {
filenamePattern: "test{Basename}",
},
},
{
mp4: {
filenamePattern: "test{Bitrate}",
outputFiles: [{
labels: [
"test",
"ppe",
],
}],
},
},
{
png: {
filenamePattern: "test{Basename}",
},
},
{
transportStream: {
filenamePattern: "test{Bitrate}",
outputFiles: [{
labels: ["prod"],
}],
},
},
],
filter: {
cropRectangle: {
height: "240",
left: "30",
top: "360",
width: "70",
},
deinterlace: {
parity: "TopFieldFirst",
mode: "AutoPixelAdaptive",
},
fadeIn: {
duration: "PT5S",
fadeColor: "0xFF0000",
start: "10",
},
fadeOut: {
duration: "90%%",
fadeColor: "#FF0C7B",
start: "10%%",
},
rotation: "Auto",
overlays: [
{
audio: {
inputLabel: "label.jpg",
start: "PT5S",
end: "PT30S",
fadeInDuration: "PT1S",
fadeOutDuration: "PT2S",
audioGainLevel: 1,
},
},
{
video: {
inputLabel: "label.jpg",
start: "PT5S",
end: "PT30S",
fadeInDuration: "PT1S",
fadeOutDuration: "PT2S",
audioGainLevel: 1,
opacity: 1,
position: {
height: "180",
left: "20",
top: "240",
width: "140",
},
cropRectangle: {
height: "240",
left: "30",
top: "360",
width: "70",
},
},
},
],
},
},
},
],
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="media-resources",
location="West Europe")
example_account = azure.storage.Account("example",
name="examplestoracc",
resource_group_name=example.name,
location=example.location,
account_tier="Standard",
account_replication_type="GRS")
example_service_account = azure.media.ServiceAccount("example",
name="examplemediaacc",
location=example.location,
resource_group_name=example.name,
storage_accounts=[{
"id": example_account.id,
"is_primary": True,
}])
example_transform = azure.media.Transform("example",
name="transform1",
resource_group_name=example.name,
media_services_account_name=example_service_account.name,
description="My transform description",
outputs=[
{
"relative_priority": "Normal",
"on_error_action": "ContinueJob",
"builtin_preset": {
"preset_name": "AACGoodQualityAudio",
"preset_configuration": {
"complexity": "Balanced",
"interleave_output": "NonInterleavedOutput",
"key_frame_interval_in_seconds": 123122.5,
"max_bitrate_bps": 300000,
"max_height": 480,
"max_layers": 14,
"min_bitrate_bps": 200000,
"min_height": 360,
},
},
},
{
"relative_priority": "Low",
"on_error_action": "ContinueJob",
"audio_analyzer_preset": {
"audio_language": "en-US",
"audio_analysis_mode": "Basic",
"experimental_options": {
"env": "test",
},
},
},
{
"relative_priority": "Low",
"on_error_action": "StopProcessingJob",
"face_detector_preset": {
"analysis_resolution": "StandardDefinition",
"blur_type": "Med",
"face_redactor_mode": "Combined",
"experimental_options": {
"env": "test",
},
},
},
{
"relative_priority": "Normal",
"on_error_action": "StopProcessingJob",
"video_analyzer_preset": {
"audio_language": "en-US",
"audio_analysis_mode": "Basic",
"insights_type": "AllInsights",
"experimental_options": {
"env": "test",
},
},
},
{
"relative_priority": "Low",
"on_error_action": "ContinueJob",
"custom_preset": {
"codecs": [
{
"aac_audio": {
"bitrate": 128000,
"channels": 2,
"sampling_rate": 48000,
"profile": "AacLc",
},
},
{
"copy_audio": {
"label": "test",
},
},
{
"copy_video": {
"label": "test",
},
},
{
"h264_video": {
"key_frame_interval": "PT1S",
"stretch_mode": "AutoSize",
"sync_mode": "Auto",
"scene_change_detection_enabled": False,
"rate_control_mode": "ABR",
"complexity": "Quality",
"layers": [
{
"width": "64",
"height": "64",
"bitrate": 1045000,
"max_bitrate": 1045000,
"b_frames": 3,
"slices": 0,
"adaptive_b_frame_enabled": True,
"profile": "Auto",
"level": "auto",
"buffer_window": "PT5S",
"reference_frames": 4,
"crf": 23,
"entropy_mode": "Cabac",
},
{
"width": "64",
"height": "64",
"bitrate": 1000,
"max_bitrate": 1000,
"b_frames": 3,
"frame_rate": "32",
"slices": 1,
"adaptive_b_frame_enabled": True,
"profile": "High444",
"level": "auto",
"buffer_window": "PT5S",
"reference_frames": 4,
"crf": 23,
"entropy_mode": "Cavlc",
},
],
},
},
{
"h265_video": {
"key_frame_interval": "PT2S",
"stretch_mode": "AutoSize",
"sync_mode": "Auto",
"scene_change_detection_enabled": False,
"complexity": "Speed",
"layers": [{
"width": "64",
"height": "64",
"bitrate": 1045000,
"max_bitrate": 1045000,
"b_frames": 3,
"slices": 5,
"adaptive_b_frame_enabled": True,
"profile": "Auto",
"label": "test",
"level": "auto",
"buffer_window": "PT5S",
"frame_rate": "32",
"reference_frames": 4,
"crf": 23,
}],
},
},
{
"jpg_image": {
"stretch_mode": "AutoSize",
"sync_mode": "Auto",
"start": "10",
"range": "100%%",
"sprite_column": 1,
"step": "10",
"layers": [{
"quality": 70,
"height": "180",
"label": "test",
"width": "120",
}],
},
},
{
"png_image": {
"stretch_mode": "AutoSize",
"sync_mode": "Auto",
"start": "{Best}",
"range": "80",
"step": "10",
"layers": [{
"height": "180",
"label": "test",
"width": "120",
}],
},
},
],
"formats": [
{
"jpg": {
"filename_pattern": "test{Basename}",
},
},
{
"mp4": {
"filename_pattern": "test{Bitrate}",
"output_files": [{
"labels": [
"test",
"ppe",
],
}],
},
},
{
"png": {
"filename_pattern": "test{Basename}",
},
},
{
"transport_stream": {
"filename_pattern": "test{Bitrate}",
"output_files": [{
"labels": ["prod"],
}],
},
},
],
"filter": {
"crop_rectangle": {
"height": "240",
"left": "30",
"top": "360",
"width": "70",
},
"deinterlace": {
"parity": "TopFieldFirst",
"mode": "AutoPixelAdaptive",
},
"fade_in": {
"duration": "PT5S",
"fade_color": "0xFF0000",
"start": "10",
},
"fade_out": {
"duration": "90%%",
"fade_color": "#FF0C7B",
"start": "10%%",
},
"rotation": "Auto",
"overlays": [
{
"audio": {
"input_label": "label.jpg",
"start": "PT5S",
"end": "PT30S",
"fade_in_duration": "PT1S",
"fade_out_duration": "PT2S",
"audio_gain_level": 1,
},
},
{
"video": {
"input_label": "label.jpg",
"start": "PT5S",
"end": "PT30S",
"fade_in_duration": "PT1S",
"fade_out_duration": "PT2S",
"audio_gain_level": 1,
"opacity": 1,
"position": {
"height": "180",
"left": "20",
"top": "240",
"width": "140",
},
"crop_rectangle": {
"height": "240",
"left": "30",
"top": "360",
"width": "70",
},
},
},
],
},
},
},
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "media-resources",
Location = "West Europe",
});
var exampleAccount = new Azure.Storage.Account("example", new()
{
Name = "examplestoracc",
ResourceGroupName = example.Name,
Location = example.Location,
AccountTier = "Standard",
AccountReplicationType = "GRS",
});
var exampleServiceAccount = new Azure.Media.ServiceAccount("example", new()
{
Name = "examplemediaacc",
Location = example.Location,
ResourceGroupName = example.Name,
StorageAccounts = new[]
{
new Azure.Media.Inputs.ServiceAccountStorageAccountArgs
{
Id = exampleAccount.Id,
IsPrimary = true,
},
},
});
var exampleTransform = new Azure.Media.Transform("example", new()
{
Name = "transform1",
ResourceGroupName = example.Name,
MediaServicesAccountName = exampleServiceAccount.Name,
Description = "My transform description",
Outputs = new[]
{
new Azure.Media.Inputs.TransformOutputArgs
{
RelativePriority = "Normal",
OnErrorAction = "ContinueJob",
BuiltinPreset = new Azure.Media.Inputs.TransformOutputBuiltinPresetArgs
{
PresetName = "AACGoodQualityAudio",
PresetConfiguration = new Azure.Media.Inputs.TransformOutputBuiltinPresetPresetConfigurationArgs
{
Complexity = "Balanced",
InterleaveOutput = "NonInterleavedOutput",
KeyFrameIntervalInSeconds = 123122.5,
MaxBitrateBps = 300000,
MaxHeight = 480,
MaxLayers = 14,
MinBitrateBps = 200000,
MinHeight = 360,
},
},
},
new Azure.Media.Inputs.TransformOutputArgs
{
RelativePriority = "Low",
OnErrorAction = "ContinueJob",
AudioAnalyzerPreset = new Azure.Media.Inputs.TransformOutputAudioAnalyzerPresetArgs
{
AudioLanguage = "en-US",
AudioAnalysisMode = "Basic",
ExperimentalOptions =
{
{ "env", "test" },
},
},
},
new Azure.Media.Inputs.TransformOutputArgs
{
RelativePriority = "Low",
OnErrorAction = "StopProcessingJob",
FaceDetectorPreset = new Azure.Media.Inputs.TransformOutputFaceDetectorPresetArgs
{
AnalysisResolution = "StandardDefinition",
BlurType = "Med",
FaceRedactorMode = "Combined",
ExperimentalOptions =
{
{ "env", "test" },
},
},
},
new Azure.Media.Inputs.TransformOutputArgs
{
RelativePriority = "Normal",
OnErrorAction = "StopProcessingJob",
VideoAnalyzerPreset = new Azure.Media.Inputs.TransformOutputVideoAnalyzerPresetArgs
{
AudioLanguage = "en-US",
AudioAnalysisMode = "Basic",
InsightsType = "AllInsights",
ExperimentalOptions =
{
{ "env", "test" },
},
},
},
new Azure.Media.Inputs.TransformOutputArgs
{
RelativePriority = "Low",
OnErrorAction = "ContinueJob",
CustomPreset = new Azure.Media.Inputs.TransformOutputCustomPresetArgs
{
Codecs = new[]
{
new Azure.Media.Inputs.TransformOutputCustomPresetCodecArgs
{
AacAudio = new Azure.Media.Inputs.TransformOutputCustomPresetCodecAacAudioArgs
{
Bitrate = 128000,
Channels = 2,
SamplingRate = 48000,
Profile = "AacLc",
},
},
new Azure.Media.Inputs.TransformOutputCustomPresetCodecArgs
{
CopyAudio = new Azure.Media.Inputs.TransformOutputCustomPresetCodecCopyAudioArgs
{
Label = "test",
},
},
new Azure.Media.Inputs.TransformOutputCustomPresetCodecArgs
{
CopyVideo = new Azure.Media.Inputs.TransformOutputCustomPresetCodecCopyVideoArgs
{
Label = "test",
},
},
new Azure.Media.Inputs.TransformOutputCustomPresetCodecArgs
{
H264Video = new Azure.Media.Inputs.TransformOutputCustomPresetCodecH264VideoArgs
{
KeyFrameInterval = "PT1S",
StretchMode = "AutoSize",
SyncMode = "Auto",
SceneChangeDetectionEnabled = false,
RateControlMode = "ABR",
Complexity = "Quality",
Layers = new[]
{
new Azure.Media.Inputs.TransformOutputCustomPresetCodecH264VideoLayerArgs
{
Width = "64",
Height = "64",
Bitrate = 1045000,
MaxBitrate = 1045000,
BFrames = 3,
Slices = 0,
AdaptiveBFrameEnabled = true,
Profile = "Auto",
Level = "auto",
BufferWindow = "PT5S",
ReferenceFrames = 4,
Crf = 23,
EntropyMode = "Cabac",
},
new Azure.Media.Inputs.TransformOutputCustomPresetCodecH264VideoLayerArgs
{
Width = "64",
Height = "64",
Bitrate = 1000,
MaxBitrate = 1000,
BFrames = 3,
FrameRate = "32",
Slices = 1,
AdaptiveBFrameEnabled = true,
Profile = "High444",
Level = "auto",
BufferWindow = "PT5S",
ReferenceFrames = 4,
Crf = 23,
EntropyMode = "Cavlc",
},
},
},
},
new Azure.Media.Inputs.TransformOutputCustomPresetCodecArgs
{
H265Video = new Azure.Media.Inputs.TransformOutputCustomPresetCodecH265VideoArgs
{
KeyFrameInterval = "PT2S",
StretchMode = "AutoSize",
SyncMode = "Auto",
SceneChangeDetectionEnabled = false,
Complexity = "Speed",
Layers = new[]
{
new Azure.Media.Inputs.TransformOutputCustomPresetCodecH265VideoLayerArgs
{
Width = "64",
Height = "64",
Bitrate = 1045000,
MaxBitrate = 1045000,
BFrames = 3,
Slices = 5,
AdaptiveBFrameEnabled = true,
Profile = "Auto",
Label = "test",
Level = "auto",
BufferWindow = "PT5S",
FrameRate = "32",
ReferenceFrames = 4,
Crf = 23,
},
},
},
},
new Azure.Media.Inputs.TransformOutputCustomPresetCodecArgs
{
JpgImage = new Azure.Media.Inputs.TransformOutputCustomPresetCodecJpgImageArgs
{
StretchMode = "AutoSize",
SyncMode = "Auto",
Start = "10",
Range = "100%%",
SpriteColumn = 1,
Step = "10",
Layers = new[]
{
new Azure.Media.Inputs.TransformOutputCustomPresetCodecJpgImageLayerArgs
{
Quality = 70,
Height = "180",
Label = "test",
Width = "120",
},
},
},
},
new Azure.Media.Inputs.TransformOutputCustomPresetCodecArgs
{
PngImage = new Azure.Media.Inputs.TransformOutputCustomPresetCodecPngImageArgs
{
StretchMode = "AutoSize",
SyncMode = "Auto",
Start = "{Best}",
Range = "80",
Step = "10",
Layers = new[]
{
new Azure.Media.Inputs.TransformOutputCustomPresetCodecPngImageLayerArgs
{
Height = "180",
Label = "test",
Width = "120",
},
},
},
},
},
Formats = new[]
{
new Azure.Media.Inputs.TransformOutputCustomPresetFormatArgs
{
Jpg = new Azure.Media.Inputs.TransformOutputCustomPresetFormatJpgArgs
{
FilenamePattern = "test{Basename}",
},
},
new Azure.Media.Inputs.TransformOutputCustomPresetFormatArgs
{
Mp4 = new Azure.Media.Inputs.TransformOutputCustomPresetFormatMp4Args
{
FilenamePattern = "test{Bitrate}",
OutputFiles = new[]
{
new Azure.Media.Inputs.TransformOutputCustomPresetFormatMp4OutputFileArgs
{
Labels = new[]
{
"test",
"ppe",
},
},
},
},
},
new Azure.Media.Inputs.TransformOutputCustomPresetFormatArgs
{
Png = new Azure.Media.Inputs.TransformOutputCustomPresetFormatPngArgs
{
FilenamePattern = "test{Basename}",
},
},
new Azure.Media.Inputs.TransformOutputCustomPresetFormatArgs
{
TransportStream = new Azure.Media.Inputs.TransformOutputCustomPresetFormatTransportStreamArgs
{
FilenamePattern = "test{Bitrate}",
OutputFiles = new[]
{
new Azure.Media.Inputs.TransformOutputCustomPresetFormatTransportStreamOutputFileArgs
{
Labels = new[]
{
"prod",
},
},
},
},
},
},
Filter = new Azure.Media.Inputs.TransformOutputCustomPresetFilterArgs
{
CropRectangle = new Azure.Media.Inputs.TransformOutputCustomPresetFilterCropRectangleArgs
{
Height = "240",
Left = "30",
Top = "360",
Width = "70",
},
Deinterlace = new Azure.Media.Inputs.TransformOutputCustomPresetFilterDeinterlaceArgs
{
Parity = "TopFieldFirst",
Mode = "AutoPixelAdaptive",
},
FadeIn = new Azure.Media.Inputs.TransformOutputCustomPresetFilterFadeInArgs
{
Duration = "PT5S",
FadeColor = "0xFF0000",
Start = "10",
},
FadeOut = new Azure.Media.Inputs.TransformOutputCustomPresetFilterFadeOutArgs
{
Duration = "90%%",
FadeColor = "#FF0C7B",
Start = "10%%",
},
Rotation = "Auto",
Overlays = new[]
{
new Azure.Media.Inputs.TransformOutputCustomPresetFilterOverlayArgs
{
Audio = new Azure.Media.Inputs.TransformOutputCustomPresetFilterOverlayAudioArgs
{
InputLabel = "label.jpg",
Start = "PT5S",
End = "PT30S",
FadeInDuration = "PT1S",
FadeOutDuration = "PT2S",
AudioGainLevel = 1,
},
},
new Azure.Media.Inputs.TransformOutputCustomPresetFilterOverlayArgs
{
Video = new Azure.Media.Inputs.TransformOutputCustomPresetFilterOverlayVideoArgs
{
InputLabel = "label.jpg",
Start = "PT5S",
End = "PT30S",
FadeInDuration = "PT1S",
FadeOutDuration = "PT2S",
AudioGainLevel = 1,
Opacity = 1,
Position = new Azure.Media.Inputs.TransformOutputCustomPresetFilterOverlayVideoPositionArgs
{
Height = "180",
Left = "20",
Top = "240",
Width = "140",
},
CropRectangle = new Azure.Media.Inputs.TransformOutputCustomPresetFilterOverlayVideoCropRectangleArgs
{
Height = "240",
Left = "30",
Top = "360",
Width = "70",
},
},
},
},
},
},
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/media"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/storage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("media-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
Name: pulumi.String("examplestoracc"),
ResourceGroupName: example.Name,
Location: example.Location,
AccountTier: pulumi.String("Standard"),
AccountReplicationType: pulumi.String("GRS"),
})
if err != nil {
return err
}
exampleServiceAccount, err := media.NewServiceAccount(ctx, "example", &media.ServiceAccountArgs{
Name: pulumi.String("examplemediaacc"),
Location: example.Location,
ResourceGroupName: example.Name,
StorageAccounts: media.ServiceAccountStorageAccountArray{
&media.ServiceAccountStorageAccountArgs{
Id: exampleAccount.ID(),
IsPrimary: pulumi.Bool(true),
},
},
})
if err != nil {
return err
}
_, err = media.NewTransform(ctx, "example", &media.TransformArgs{
Name: pulumi.String("transform1"),
ResourceGroupName: example.Name,
MediaServicesAccountName: exampleServiceAccount.Name,
Description: pulumi.String("My transform description"),
Outputs: media.TransformOutputTypeArray{
&media.TransformOutputTypeArgs{
RelativePriority: pulumi.String("Normal"),
OnErrorAction: pulumi.String("ContinueJob"),
BuiltinPreset: &media.TransformOutputBuiltinPresetArgs{
PresetName: pulumi.String("AACGoodQualityAudio"),
PresetConfiguration: &media.TransformOutputBuiltinPresetPresetConfigurationArgs{
Complexity: pulumi.String("Balanced"),
InterleaveOutput: pulumi.String("NonInterleavedOutput"),
KeyFrameIntervalInSeconds: pulumi.Float64(123122.5),
MaxBitrateBps: pulumi.Int(300000),
MaxHeight: pulumi.Int(480),
MaxLayers: pulumi.Int(14),
MinBitrateBps: pulumi.Int(200000),
MinHeight: pulumi.Int(360),
},
},
},
&media.TransformOutputTypeArgs{
RelativePriority: pulumi.String("Low"),
OnErrorAction: pulumi.String("ContinueJob"),
AudioAnalyzerPreset: &media.TransformOutputAudioAnalyzerPresetArgs{
AudioLanguage: pulumi.String("en-US"),
AudioAnalysisMode: pulumi.String("Basic"),
ExperimentalOptions: pulumi.StringMap{
"env": pulumi.String("test"),
},
},
},
&media.TransformOutputTypeArgs{
RelativePriority: pulumi.String("Low"),
OnErrorAction: pulumi.String("StopProcessingJob"),
FaceDetectorPreset: &media.TransformOutputFaceDetectorPresetArgs{
AnalysisResolution: pulumi.String("StandardDefinition"),
BlurType: pulumi.String("Med"),
FaceRedactorMode: pulumi.String("Combined"),
ExperimentalOptions: pulumi.StringMap{
"env": pulumi.String("test"),
},
},
},
&media.TransformOutputTypeArgs{
RelativePriority: pulumi.String("Normal"),
OnErrorAction: pulumi.String("StopProcessingJob"),
VideoAnalyzerPreset: &media.TransformOutputVideoAnalyzerPresetArgs{
AudioLanguage: pulumi.String("en-US"),
AudioAnalysisMode: pulumi.String("Basic"),
InsightsType: pulumi.String("AllInsights"),
ExperimentalOptions: pulumi.StringMap{
"env": pulumi.String("test"),
},
},
},
&media.TransformOutputTypeArgs{
RelativePriority: pulumi.String("Low"),
OnErrorAction: pulumi.String("ContinueJob"),
CustomPreset: &media.TransformOutputCustomPresetArgs{
Codecs: media.TransformOutputCustomPresetCodecArray{
&media.TransformOutputCustomPresetCodecArgs{
AacAudio: &media.TransformOutputCustomPresetCodecAacAudioArgs{
Bitrate: pulumi.Int(128000),
Channels: pulumi.Int(2),
SamplingRate: pulumi.Int(48000),
Profile: pulumi.String("AacLc"),
},
},
&media.TransformOutputCustomPresetCodecArgs{
CopyAudio: &media.TransformOutputCustomPresetCodecCopyAudioArgs{
Label: pulumi.String("test"),
},
},
&media.TransformOutputCustomPresetCodecArgs{
CopyVideo: &media.TransformOutputCustomPresetCodecCopyVideoArgs{
Label: pulumi.String("test"),
},
},
&media.TransformOutputCustomPresetCodecArgs{
H264Video: &media.TransformOutputCustomPresetCodecH264VideoArgs{
KeyFrameInterval: pulumi.String("PT1S"),
StretchMode: pulumi.String("AutoSize"),
SyncMode: pulumi.String("Auto"),
SceneChangeDetectionEnabled: pulumi.Bool(false),
RateControlMode: pulumi.String("ABR"),
Complexity: pulumi.String("Quality"),
Layers: media.TransformOutputCustomPresetCodecH264VideoLayerArray{
&media.TransformOutputCustomPresetCodecH264VideoLayerArgs{
Width: pulumi.String("64"),
Height: pulumi.String("64"),
Bitrate: pulumi.Int(1045000),
MaxBitrate: pulumi.Int(1045000),
BFrames: pulumi.Int(3),
Slices: pulumi.Int(0),
AdaptiveBFrameEnabled: pulumi.Bool(true),
Profile: pulumi.String("Auto"),
Level: pulumi.String("auto"),
BufferWindow: pulumi.String("PT5S"),
ReferenceFrames: pulumi.Int(4),
Crf: pulumi.Float64(23),
EntropyMode: pulumi.String("Cabac"),
},
&media.TransformOutputCustomPresetCodecH264VideoLayerArgs{
Width: pulumi.String("64"),
Height: pulumi.String("64"),
Bitrate: pulumi.Int(1000),
MaxBitrate: pulumi.Int(1000),
BFrames: pulumi.Int(3),
FrameRate: pulumi.String("32"),
Slices: pulumi.Int(1),
AdaptiveBFrameEnabled: pulumi.Bool(true),
Profile: pulumi.String("High444"),
Level: pulumi.String("auto"),
BufferWindow: pulumi.String("PT5S"),
ReferenceFrames: pulumi.Int(4),
Crf: pulumi.Float64(23),
EntropyMode: pulumi.String("Cavlc"),
},
},
},
},
&media.TransformOutputCustomPresetCodecArgs{
H265Video: &media.TransformOutputCustomPresetCodecH265VideoArgs{
KeyFrameInterval: pulumi.String("PT2S"),
StretchMode: pulumi.String("AutoSize"),
SyncMode: pulumi.String("Auto"),
SceneChangeDetectionEnabled: pulumi.Bool(false),
Complexity: pulumi.String("Speed"),
Layers: media.TransformOutputCustomPresetCodecH265VideoLayerArray{
&media.TransformOutputCustomPresetCodecH265VideoLayerArgs{
Width: pulumi.String("64"),
Height: pulumi.String("64"),
Bitrate: pulumi.Int(1045000),
MaxBitrate: pulumi.Int(1045000),
BFrames: pulumi.Int(3),
Slices: pulumi.Int(5),
AdaptiveBFrameEnabled: pulumi.Bool(true),
Profile: pulumi.String("Auto"),
Label: pulumi.String("test"),
Level: pulumi.String("auto"),
BufferWindow: pulumi.String("PT5S"),
FrameRate: pulumi.String("32"),
ReferenceFrames: pulumi.Int(4),
Crf: pulumi.Float64(23),
},
},
},
},
&media.TransformOutputCustomPresetCodecArgs{
JpgImage: &media.TransformOutputCustomPresetCodecJpgImageArgs{
StretchMode: pulumi.String("AutoSize"),
SyncMode: pulumi.String("Auto"),
Start: pulumi.String("10"),
Range: pulumi.String("100%%"),
SpriteColumn: pulumi.Int(1),
Step: pulumi.String("10"),
Layers: media.TransformOutputCustomPresetCodecJpgImageLayerArray{
&media.TransformOutputCustomPresetCodecJpgImageLayerArgs{
Quality: pulumi.Int(70),
Height: pulumi.String("180"),
Label: pulumi.String("test"),
Width: pulumi.String("120"),
},
},
},
},
&media.TransformOutputCustomPresetCodecArgs{
PngImage: &media.TransformOutputCustomPresetCodecPngImageArgs{
StretchMode: pulumi.String("AutoSize"),
SyncMode: pulumi.String("Auto"),
Start: pulumi.String("{Best}"),
Range: pulumi.String("80"),
Step: pulumi.String("10"),
Layers: media.TransformOutputCustomPresetCodecPngImageLayerArray{
&media.TransformOutputCustomPresetCodecPngImageLayerArgs{
Height: pulumi.String("180"),
Label: pulumi.String("test"),
Width: pulumi.String("120"),
},
},
},
},
},
Formats: media.TransformOutputCustomPresetFormatArray{
&media.TransformOutputCustomPresetFormatArgs{
Jpg: &media.TransformOutputCustomPresetFormatJpgArgs{
FilenamePattern: pulumi.String("test{Basename}"),
},
},
&media.TransformOutputCustomPresetFormatArgs{
Mp4: &media.TransformOutputCustomPresetFormatMp4Args{
FilenamePattern: pulumi.String("test{Bitrate}"),
OutputFiles: media.TransformOutputCustomPresetFormatMp4OutputFileArray{
&media.TransformOutputCustomPresetFormatMp4OutputFileArgs{
Labels: pulumi.StringArray{
pulumi.String("test"),
pulumi.String("ppe"),
},
},
},
},
},
&media.TransformOutputCustomPresetFormatArgs{
Png: &media.TransformOutputCustomPresetFormatPngArgs{
FilenamePattern: pulumi.String("test{Basename}"),
},
},
&media.TransformOutputCustomPresetFormatArgs{
TransportStream: &media.TransformOutputCustomPresetFormatTransportStreamArgs{
FilenamePattern: pulumi.String("test{Bitrate}"),
OutputFiles: media.TransformOutputCustomPresetFormatTransportStreamOutputFileArray{
&media.TransformOutputCustomPresetFormatTransportStreamOutputFileArgs{
Labels: pulumi.StringArray{
pulumi.String("prod"),
},
},
},
},
},
},
Filter: &media.TransformOutputCustomPresetFilterArgs{
CropRectangle: &media.TransformOutputCustomPresetFilterCropRectangleArgs{
Height: pulumi.String("240"),
Left: pulumi.String("30"),
Top: pulumi.String("360"),
Width: pulumi.String("70"),
},
Deinterlace: &media.TransformOutputCustomPresetFilterDeinterlaceArgs{
Parity: pulumi.String("TopFieldFirst"),
Mode: pulumi.String("AutoPixelAdaptive"),
},
FadeIn: &media.TransformOutputCustomPresetFilterFadeInArgs{
Duration: pulumi.String("PT5S"),
FadeColor: pulumi.String("0xFF0000"),
Start: pulumi.String("10"),
},
FadeOut: &media.TransformOutputCustomPresetFilterFadeOutArgs{
Duration: pulumi.String("90%%"),
FadeColor: pulumi.String("#FF0C7B"),
Start: pulumi.String("10%%"),
},
Rotation: pulumi.String("Auto"),
Overlays: media.TransformOutputCustomPresetFilterOverlayArray{
&media.TransformOutputCustomPresetFilterOverlayArgs{
Audio: &media.TransformOutputCustomPresetFilterOverlayAudioArgs{
InputLabel: pulumi.String("label.jpg"),
Start: pulumi.String("PT5S"),
End: pulumi.String("PT30S"),
FadeInDuration: pulumi.String("PT1S"),
FadeOutDuration: pulumi.String("PT2S"),
AudioGainLevel: pulumi.Float64(1),
},
},
&media.TransformOutputCustomPresetFilterOverlayArgs{
Video: &media.TransformOutputCustomPresetFilterOverlayVideoArgs{
InputLabel: pulumi.String("label.jpg"),
Start: pulumi.String("PT5S"),
End: pulumi.String("PT30S"),
FadeInDuration: pulumi.String("PT1S"),
FadeOutDuration: pulumi.String("PT2S"),
AudioGainLevel: pulumi.Float64(1),
Opacity: pulumi.Float64(1),
Position: &media.TransformOutputCustomPresetFilterOverlayVideoPositionArgs{
Height: pulumi.String("180"),
Left: pulumi.String("20"),
Top: pulumi.String("240"),
Width: pulumi.String("140"),
},
CropRectangle: &media.TransformOutputCustomPresetFilterOverlayVideoCropRectangleArgs{
Height: pulumi.String("240"),
Left: pulumi.String("30"),
Top: pulumi.String("360"),
Width: pulumi.String("70"),
},
},
},
},
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.storage.Account;
import com.pulumi.azure.storage.AccountArgs;
import com.pulumi.azure.media.ServiceAccount;
import com.pulumi.azure.media.ServiceAccountArgs;
import com.pulumi.azure.media.inputs.ServiceAccountStorageAccountArgs;
import com.pulumi.azure.media.Transform;
import com.pulumi.azure.media.TransformArgs;
import com.pulumi.azure.media.inputs.TransformOutputArgs;
import com.pulumi.azure.media.inputs.TransformOutputBuiltinPresetArgs;
import com.pulumi.azure.media.inputs.TransformOutputBuiltinPresetPresetConfigurationArgs;
import com.pulumi.azure.media.inputs.TransformOutputAudioAnalyzerPresetArgs;
import com.pulumi.azure.media.inputs.TransformOutputFaceDetectorPresetArgs;
import com.pulumi.azure.media.inputs.TransformOutputVideoAnalyzerPresetArgs;
import com.pulumi.azure.media.inputs.TransformOutputCustomPresetArgs;
import com.pulumi.azure.media.inputs.TransformOutputCustomPresetFilterArgs;
import com.pulumi.azure.media.inputs.TransformOutputCustomPresetFilterCropRectangleArgs;
import com.pulumi.azure.media.inputs.TransformOutputCustomPresetFilterDeinterlaceArgs;
import com.pulumi.azure.media.inputs.TransformOutputCustomPresetFilterFadeInArgs;
import com.pulumi.azure.media.inputs.TransformOutputCustomPresetFilterFadeOutArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("media-resources")
.location("West Europe")
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("examplestoracc")
.resourceGroupName(example.name())
.location(example.location())
.accountTier("Standard")
.accountReplicationType("GRS")
.build());
var exampleServiceAccount = new ServiceAccount("exampleServiceAccount", ServiceAccountArgs.builder()
.name("examplemediaacc")
.location(example.location())
.resourceGroupName(example.name())
.storageAccounts(ServiceAccountStorageAccountArgs.builder()
.id(exampleAccount.id())
.isPrimary(true)
.build())
.build());
var exampleTransform = new Transform("exampleTransform", TransformArgs.builder()
.name("transform1")
.resourceGroupName(example.name())
.mediaServicesAccountName(exampleServiceAccount.name())
.description("My transform description")
.outputs(
TransformOutputArgs.builder()
.relativePriority("Normal")
.onErrorAction("ContinueJob")
.builtinPreset(TransformOutputBuiltinPresetArgs.builder()
.presetName("AACGoodQualityAudio")
.presetConfiguration(TransformOutputBuiltinPresetPresetConfigurationArgs.builder()
.complexity("Balanced")
.interleaveOutput("NonInterleavedOutput")
.keyFrameIntervalInSeconds(123122.5)
.maxBitrateBps(300000)
.maxHeight(480)
.maxLayers(14)
.minBitrateBps(200000)
.minHeight(360)
.build())
.build())
.build(),
TransformOutputArgs.builder()
.relativePriority("Low")
.onErrorAction("ContinueJob")
.audioAnalyzerPreset(TransformOutputAudioAnalyzerPresetArgs.builder()
.audioLanguage("en-US")
.audioAnalysisMode("Basic")
.experimentalOptions(Map.of("env", "test"))
.build())
.build(),
TransformOutputArgs.builder()
.relativePriority("Low")
.onErrorAction("StopProcessingJob")
.faceDetectorPreset(TransformOutputFaceDetectorPresetArgs.builder()
.analysisResolution("StandardDefinition")
.blurType("Med")
.faceRedactorMode("Combined")
.experimentalOptions(Map.of("env", "test"))
.build())
.build(),
TransformOutputArgs.builder()
.relativePriority("Normal")
.onErrorAction("StopProcessingJob")
.videoAnalyzerPreset(TransformOutputVideoAnalyzerPresetArgs.builder()
.audioLanguage("en-US")
.audioAnalysisMode("Basic")
.insightsType("AllInsights")
.experimentalOptions(Map.of("env", "test"))
.build())
.build(),
TransformOutputArgs.builder()
.relativePriority("Low")
.onErrorAction("ContinueJob")
.customPreset(TransformOutputCustomPresetArgs.builder()
.codecs(
TransformOutputCustomPresetCodecArgs.builder()
.aacAudio(TransformOutputCustomPresetCodecAacAudioArgs.builder()
.bitrate(128000)
.channels(2)
.samplingRate(48000)
.profile("AacLc")
.build())
.build(),
TransformOutputCustomPresetCodecArgs.builder()
.copyAudio(TransformOutputCustomPresetCodecCopyAudioArgs.builder()
.label("test")
.build())
.build(),
TransformOutputCustomPresetCodecArgs.builder()
.copyVideo(TransformOutputCustomPresetCodecCopyVideoArgs.builder()
.label("test")
.build())
.build(),
TransformOutputCustomPresetCodecArgs.builder()
.h264Video(TransformOutputCustomPresetCodecH264VideoArgs.builder()
.keyFrameInterval("PT1S")
.stretchMode("AutoSize")
.syncMode("Auto")
.sceneChangeDetectionEnabled(false)
.rateControlMode("ABR")
.complexity("Quality")
.layers(
TransformOutputCustomPresetCodecH264VideoLayerArgs.builder()
.width("64")
.height("64")
.bitrate(1045000)
.maxBitrate(1045000)
.bFrames(3)
.slices(0)
.adaptiveBFrameEnabled(true)
.profile("Auto")
.level("auto")
.bufferWindow("PT5S")
.referenceFrames(4)
.crf(23)
.entropyMode("Cabac")
.build(),
TransformOutputCustomPresetCodecH264VideoLayerArgs.builder()
.width("64")
.height("64")
.bitrate(1000)
.maxBitrate(1000)
.bFrames(3)
.frameRate("32")
.slices(1)
.adaptiveBFrameEnabled(true)
.profile("High444")
.level("auto")
.bufferWindow("PT5S")
.referenceFrames(4)
.crf(23)
.entropyMode("Cavlc")
.build())
.build())
.build(),
TransformOutputCustomPresetCodecArgs.builder()
.h265Video(TransformOutputCustomPresetCodecH265VideoArgs.builder()
.keyFrameInterval("PT2S")
.stretchMode("AutoSize")
.syncMode("Auto")
.sceneChangeDetectionEnabled(false)
.complexity("Speed")
.layers(TransformOutputCustomPresetCodecH265VideoLayerArgs.builder()
.width("64")
.height("64")
.bitrate(1045000)
.maxBitrate(1045000)
.bFrames(3)
.slices(5)
.adaptiveBFrameEnabled(true)
.profile("Auto")
.label("test")
.level("auto")
.bufferWindow("PT5S")
.frameRate("32")
.referenceFrames(4)
.crf(23)
.build())
.build())
.build(),
TransformOutputCustomPresetCodecArgs.builder()
.jpgImage(TransformOutputCustomPresetCodecJpgImageArgs.builder()
.stretchMode("AutoSize")
.syncMode("Auto")
.start("10")
.range("100%%")
.spriteColumn(1)
.step("10")
.layers(TransformOutputCustomPresetCodecJpgImageLayerArgs.builder()
.quality(70)
.height("180")
.label("test")
.width("120")
.build())
.build())
.build(),
TransformOutputCustomPresetCodecArgs.builder()
.pngImage(TransformOutputCustomPresetCodecPngImageArgs.builder()
.stretchMode("AutoSize")
.syncMode("Auto")
.start("{Best}")
.range("80")
.step("10")
.layers(TransformOutputCustomPresetCodecPngImageLayerArgs.builder()
.height("180")
.label("test")
.width("120")
.build())
.build())
.build())
.formats(
TransformOutputCustomPresetFormatArgs.builder()
.jpg(TransformOutputCustomPresetFormatJpgArgs.builder()
.filenamePattern("test{Basename}")
.build())
.build(),
TransformOutputCustomPresetFormatArgs.builder()
.mp4(TransformOutputCustomPresetFormatMp4Args.builder()
.filenamePattern("test{Bitrate}")
.outputFiles(TransformOutputCustomPresetFormatMp4OutputFileArgs.builder()
.labels(
"test",
"ppe")
.build())
.build())
.build(),
TransformOutputCustomPresetFormatArgs.builder()
.png(TransformOutputCustomPresetFormatPngArgs.builder()
.filenamePattern("test{Basename}")
.build())
.build(),
TransformOutputCustomPresetFormatArgs.builder()
.transportStream(TransformOutputCustomPresetFormatTransportStreamArgs.builder()
.filenamePattern("test{Bitrate}")
.outputFiles(TransformOutputCustomPresetFormatTransportStreamOutputFileArgs.builder()
.labels("prod")
.build())
.build())
.build())
.filter(TransformOutputCustomPresetFilterArgs.builder()
.cropRectangle(TransformOutputCustomPresetFilterCropRectangleArgs.builder()
.height("240")
.left("30")
.top("360")
.width("70")
.build())
.deinterlace(TransformOutputCustomPresetFilterDeinterlaceArgs.builder()
.parity("TopFieldFirst")
.mode("AutoPixelAdaptive")
.build())
.fadeIn(TransformOutputCustomPresetFilterFadeInArgs.builder()
.duration("PT5S")
.fadeColor("0xFF0000")
.start("10")
.build())
.fadeOut(TransformOutputCustomPresetFilterFadeOutArgs.builder()
.duration("90%%")
.fadeColor("#FF0C7B")
.start("10%%")
.build())
.rotation("Auto")
.overlays(
TransformOutputCustomPresetFilterOverlayArgs.builder()
.audio(TransformOutputCustomPresetFilterOverlayAudioArgs.builder()
.inputLabel("label.jpg")
.start("PT5S")
.end("PT30S")
.fadeInDuration("PT1S")
.fadeOutDuration("PT2S")
.audioGainLevel(1)
.build())
.build(),
TransformOutputCustomPresetFilterOverlayArgs.builder()
.video(TransformOutputCustomPresetFilterOverlayVideoArgs.builder()
.inputLabel("label.jpg")
.start("PT5S")
.end("PT30S")
.fadeInDuration("PT1S")
.fadeOutDuration("PT2S")
.audioGainLevel(1)
.opacity(1)
.position(TransformOutputCustomPresetFilterOverlayVideoPositionArgs.builder()
.height("180")
.left("20")
.top("240")
.width("140")
.build())
.cropRectangle(TransformOutputCustomPresetFilterOverlayVideoCropRectangleArgs.builder()
.height("240")
.left("30")
.top("360")
.width("70")
.build())
.build())
.build())
.build())
.build())
.build())
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: media-resources
location: West Europe
exampleAccount:
type: azure:storage:Account
name: example
properties:
name: examplestoracc
resourceGroupName: ${example.name}
location: ${example.location}
accountTier: Standard
accountReplicationType: GRS
exampleServiceAccount:
type: azure:media:ServiceAccount
name: example
properties:
name: examplemediaacc
location: ${example.location}
resourceGroupName: ${example.name}
storageAccounts:
- id: ${exampleAccount.id}
isPrimary: true
exampleTransform:
type: azure:media:Transform
name: example
properties:
name: transform1
resourceGroupName: ${example.name}
mediaServicesAccountName: ${exampleServiceAccount.name}
description: My transform description
outputs:
- relativePriority: Normal
onErrorAction: ContinueJob
builtinPreset:
presetName: AACGoodQualityAudio
presetConfiguration:
complexity: Balanced
interleaveOutput: NonInterleavedOutput
keyFrameIntervalInSeconds: 123122.5
maxBitrateBps: 300000
maxHeight: 480
maxLayers: 14
minBitrateBps: 200000
minHeight: 360
- relativePriority: Low
onErrorAction: ContinueJob
audioAnalyzerPreset:
audioLanguage: en-US
audioAnalysisMode: Basic
experimentalOptions:
env: test
- relativePriority: Low
onErrorAction: StopProcessingJob
faceDetectorPreset:
analysisResolution: StandardDefinition
blurType: Med
faceRedactorMode: Combined
experimentalOptions:
env: test
- relativePriority: Normal
onErrorAction: StopProcessingJob
videoAnalyzerPreset:
audioLanguage: en-US
audioAnalysisMode: Basic
insightsType: AllInsights
experimentalOptions:
env: test
- relativePriority: Low
onErrorAction: ContinueJob
customPreset:
codecs:
- aacAudio:
bitrate: 128000
channels: 2
samplingRate: 48000
profile: AacLc
- copyAudio:
label: test
- copyVideo:
label: test
- h264Video:
keyFrameInterval: PT1S
stretchMode: AutoSize
syncMode: Auto
sceneChangeDetectionEnabled: false
rateControlMode: ABR
complexity: Quality
layers:
- width: '64'
height: '64'
bitrate: 1.045e+06
maxBitrate: 1.045e+06
bFrames: 3
slices: 0
adaptiveBFrameEnabled: true
profile: Auto
level: auto
bufferWindow: PT5S
referenceFrames: 4
crf: 23
entropyMode: Cabac
- width: '64'
height: '64'
bitrate: 1000
maxBitrate: 1000
bFrames: 3
frameRate: '32'
slices: 1
adaptiveBFrameEnabled: true
profile: High444
level: auto
bufferWindow: PT5S
referenceFrames: 4
crf: 23
entropyMode: Cavlc
- h265Video:
keyFrameInterval: PT2S
stretchMode: AutoSize
syncMode: Auto
sceneChangeDetectionEnabled: false
complexity: Speed
layers:
- width: '64'
height: '64'
bitrate: 1.045e+06
maxBitrate: 1.045e+06
bFrames: 3
slices: 5
adaptiveBFrameEnabled: true
profile: Auto
label: test
level: auto
bufferWindow: PT5S
frameRate: '32'
referenceFrames: 4
crf: 23
- jpgImage:
stretchMode: AutoSize
syncMode: Auto
start: '10'
range: 100%%
spriteColumn: 1
step: '10'
layers:
- quality: 70
height: '180'
label: test
width: '120'
- pngImage:
stretchMode: AutoSize
syncMode: Auto
start: '{Best}'
range: '80'
step: '10'
layers:
- height: '180'
label: test
width: '120'
formats:
- jpg:
filenamePattern: test{Basename}
- mp4:
filenamePattern: test{Bitrate}
outputFiles:
- labels:
- test
- ppe
- png:
filenamePattern: test{Basename}
- transportStream:
filenamePattern: test{Bitrate}
outputFiles:
- labels:
- prod
filter:
cropRectangle:
height: '240'
left: '30'
top: '360'
width: '70'
deinterlace:
parity: TopFieldFirst
mode: AutoPixelAdaptive
fadeIn:
duration: PT5S
fadeColor: 0xFF0000
start: '10'
fadeOut:
duration: 90%%
fadeColor: '#FF0C7B'
start: 10%%
rotation: Auto
overlays:
- audio:
inputLabel: label.jpg
start: PT5S
end: PT30S
fadeInDuration: PT1S
fadeOutDuration: PT2S
audioGainLevel: 1
- video:
inputLabel: label.jpg
start: PT5S
end: PT30S
fadeInDuration: PT1S
fadeOutDuration: PT2S
audioGainLevel: 1
opacity: 1
position:
height: '180'
left: '20'
top: '240'
width: '140'
cropRectangle:
height: '240'
left: '30'
top: '360'
width: '70'

Import

Transforms can be imported using the resource id, e.g.

$ pulumi import azure:media/transform:Transform example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Media/mediaServices/media1/transforms/transform1

Constructors

Link copied to clipboard
constructor(description: Output<String>? = null, mediaServicesAccountName: Output<String>? = null, name: Output<String>? = null, outputs: Output<List<TransformOutputArgs>>? = null, resourceGroupName: Output<String>? = null)

Properties

Link copied to clipboard
val description: Output<String>? = null

An optional verbose description of the Transform.

Link copied to clipboard
val mediaServicesAccountName: Output<String>? = null

The Media Services account name. Changing this forces a new Transform to be created.

Link copied to clipboard
val name: Output<String>? = null

The name which should be used for this Transform. Changing this forces a new Transform to be created.

Link copied to clipboard
val outputs: Output<List<TransformOutputArgs>>? = null

One or more output blocks as defined below. At least one output must be defined.

Link copied to clipboard
val resourceGroupName: Output<String>? = null

The name of the Resource Group where the Transform should exist. Changing this forces a new Transform to be created.

Functions

Link copied to clipboard
open override fun toJava(): TransformArgs