2017-09-04 16 views
0

私は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のクリップは何ですか?

答えて

0

ワイヤのXMLペイロードが大きくなりすぎる可能性があります。 "config.Configuration"プリセット設定XMLファイルのペイロードに関する詳細を共有できますか?Fiddler2を使用してワイヤトラフィックをキャプチャしてこれを私たちのチームに送信すれば、これをさらに調査するのに役立ちます。

関連する問題