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