如何从智能手机上传视频到azure媒体服务

时间:2015-04-28 06:43:01

标签: c# azure

如何使用c#从智能手机上传视频到azure媒体服务?是否存在适用于移动设备的第三方编码器,如笔记本电脑/台式机的线阵?我们可以使用rest api来实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

由于移动设备上的带宽较低,因此不宜从手机上传视频。此外,我不确定是否有任何第三方应用程序可以实现相同,但它可以做到。以下代码适用于Windows Phone和Xamirin App Development

    // Part 1 - Connect to Media Services
  //          Setup upload progress event
  //          Upload a video to encode
  CloudMediaContext mediaContext =
    new CloudMediaContext("[ ACCOUNT NAME ]","[ ACCOUNT KEY ]");
  mediaContext.Assets.OnUploadProgress += Assets_OnUploadProgress;
  var asset = mediaContext.Assets.Create(    
    @"C:\windows\Performance\WinSat\winsat.wmv");
  // Part 2 - Create a task, specify encoding details
  Console.Clear();
  IJob job = mediaContext.Jobs.CreateJob("Sample Job");
  var expressionEncoder = mediaContext.MediaProcessors.Where(
    mp => mp.Name == "Expression Encoder").Single();
  var task = job.Tasks.Add(
    mediaProcessor: expressionEncoder,
    configuration: "H.264 HD 720p VBR");
  task.Inputs.Add(asset);
  task.Outputs.Add("Sample Task Output Asset");
  // Part 3 - Submit the encoding job to begin processing
  while (job.State != JobState.Finished)
  {
    job = mediaContext.Jobs.Refresh(job.Id);
    Console.SetCursorPosition(0, 0);
    Console.WriteLine("Job Name: " + job.Name);
    Console.WriteLine("Job ID: " + job.Id);
    Console.WriteLine();
    Console.WriteLine("Job State: {0,-20}", job.State);
    Console.WriteLine("Task Progress: {0:0.00}%  ",
      job.Tasks.Single().Progress);
    Thread.Sleep(500);
  }
  Console.WriteLine();
  Console.WriteLine("Job Complete!");
  Console.ReadLine();
}

不要忘记通过Nugget Package Manager添加Media Service SDK