私はasp.net c#アプリケーションでAzureメディアサービスを使用して、アセットからのメディアクリップを結合し、そのための新しいジョブを作成しています。RequestEntityTooLarge例外の取得
クリップを10個以下連結して1つのクリップにマージすると(1分の長さのdiferentsポイントを持つ紺碧に掲載されたフィードからハイライトを作成しています)、正常に動作していて、完全なクリップを取得していますそれらをマージした後。
クリップを10個以上にすると、job.submit()メソッドで例外(RequestEntityTooLarge)が発生します。以下は私のコードです。
public string LaunchJobs_OneJobPerInputAsset_OneTaskPerfConfig(CloudMediaContext _context, IMediaProcessor processor, List<IAsset> selectedassets, string jobname, int jobpriority, string taskname, string outputassetname, List<ClipConfig> configuration, AssetCreationOptions myAssetCreationOptions, TaskOptions myTaskOptions, string storageaccountname = "")
{
string assetJobId = "";
string tasknameloc = "";
int count = 0;
outputAssetsList = new List<IAsset>();
// a job per asset, one task per config
foreach (IAsset asset in selectedassets)
{
string jobnameloc = jobname.Replace(Constants.NameconvInputasset, asset.Name);
IJob myJob = _context.Jobs.Create(jobnameloc, jobpriority);
_contextGlobal = _context;
foreach (var config in configuration)
{
if (config.PublishUrl.Contains(asset.Locators.SingleOrDefault().Path))
{
tasknameloc = taskname.Replace(Constants.NameconvInputasset, asset.Name).Replace(Constants.NameconvAMEpreset, config.Configuration);
ITask myTask = myJob.Tasks.AddNew(
tasknameloc,
processor,
config.Configuration,
myTaskOptions);
myTask.InputAssets.Add(asset);
// Add an output asset to contain the results of the task
string outputassetnameloc = outputassetname.Replace(Constants.NameconvInputasset, asset.Name).Replace(Constants.NameconvAMEpreset, config.Configuration);
outputassetnameloc = outputassetnameloc + '_' + count;
if (storageaccountname == "")
{
myTask.OutputAssets.AddNew(outputassetnameloc, asset.StorageAccountName, myAssetCreationOptions); // let's use the same storage account than the input asset
}
else
{
myTask.OutputAssets.AddNew(outputassetnameloc, storageaccountname, myAssetCreationOptions);
}
outputAsssetDetailforConcatenate.Add(new ClipConfig { Name = outputassetnameloc, StartTime = config.StartTime, Duration = config.Duration });
count++;
}
else
{
continue;
}
}
// Submit the job and wait until it is completed.
bool Error = false;
try
{
myJob.StateChanged += new EventHandler<JobStateChangedEventArgs>(JobStateChanged);
myJob.Submit();// I am getting exception in this line if the no. of clips are greater then 10.
myJob.GetExecutionProgressTask(CancellationToken.None);
outputAssetsList.AddRange(myJob.OutputMediaAssets);
// Call function to update status in session
SetStatusValueInSession("Clip generation job has submitted.");
assetJobId = myJob.Id;
}
catch (Exception ex)
{
// Add useful information to the exception
Error = true;
}
if (Error)
{
assetJobId = "There is error in job process.";
}
}
return assetJobId;
}
のみ10クリップを連結するための任意の制限はあり又はなしを増加させる任意の設定があります。 Azure Media Serviceのクリップは何ですか?