Under klipp en video vid kodning med Media Services-.NET
Du kan trimma eller under klipp en video när du kodar den med ett jobb. Den här funktionen fungerar med alla transformeringar som har skapats med antingen BuiltInStandardEncoderPreset för inställningar eller StandardEncoderPreset för inställningar.
Följande C#-exempel skapar ett jobb som trimmar en video i en till gång när den skickar ett kodnings jobb.
Förutsättningar
För att slutföra stegen som beskrivs i det här avsnittet måste du:
- Skapa ett Azure Media Services-konto
- Skapa en transformering och in-och utdata-till gångar. Du kan se hur du skapar en transformering och in-och utdata-till gångar i guiden Ladda upp, koda och strömma videor med hjälp av .net .
- Läs avsnittet encoding Concept .
Exempel
/// <summary>
/// Submits a request to Media Services to apply the specified Transform to a given input video.
/// </summary>
/// <param name="client">The Media Services client.</param>
/// <param name="resourceGroupName">The name of the resource group within the Azure subscription.</param>
/// <param name="accountName"> The Media Services account name.</param>
/// <param name="transformName">The name of the transform.</param>
/// <param name="jobName">The (unique) name of the job.</param>
/// <param name="inputAssetName">The name of the input asset.</param>
/// <param name="outputAssetName">The (unique) name of the output asset that will store the result of the encoding job. </param>
// <SubmitJob>
private static async Task<Job> JobWithBuiltInStandardEncoderWithSingleClipAsync(
IAzureMediaServicesClient client,
string resourceGroupName,
string accountName,
string transformName,
string jobName,
string inputAssetName,
string outputAssetName)
{
var jobOutputs = new List<JobOutputAsset>
{
new JobOutputAsset(state: JobState.Queued, progress: 0, assetName: outputAssetName)
};
var clipStart = new AbsoluteClipTime()
{
Time = new TimeSpan(0, 0, 20)
};
var clipEnd = new AbsoluteClipTime()
{
Time = new TimeSpan(0, 0, 30)
};
var jobInput = new JobInputAsset(assetName: inputAssetName, start: clipStart, end: clipEnd);
Job job = await client.Jobs.CreateAsync(
resourceGroupName,
accountName,
transformName,
jobName,
new Job(input: jobInput, outputs: jobOutputs.ToArray(), name: jobName)
{
Description = $"A Job with transform {transformName} and single clip.",
Priority = Priority.Normal,
});
return job;
}