2015-04-28 37 views
0

如何使用c#將智能手機的視頻上傳到蔚藍媒體服務?是否有任何第三方編碼器存在用於筆記本電腦/臺式機的wirecast移動設備?我們可以使用rest api來實現嗎?如何將視頻上傳到智能手機的蔚藍媒體服務

+0

想澄清問題。您是否嘗試廣播/流式直播活動,或者您想上傳先前錄製的視頻?對於直播,您可以使用支持RTPM協議的組件。使用WireCast在http://azure.microsoft.com/blog/2014/09/18/azure-media-services-rtmp-support-and-live-encoders/上查看工作流程詳細信息。 –

+0

試圖廣播/流直播。我使用wirecast在筆記本電腦上完成了它。但需要通過智能手機來完成。謝謝:) – Krishna

+0

對於iphone你可以檢查http://mingfeiy.com/using-iphone-live-stream-azure-media-services。你的目標是什麼移動平臺? Iphone和Android有第三方庫使用RTMP協議進行流式傳輸。對於Windows手機檢查http://stackoverflow.com/questions/2319378/rtmp-c-sharp-client-library線程 –

回答

0

由於移動設備上的帶寬較低,因此從移動設備上傳視頻並不可取。此外,我不確定是否有任何第三方應用程序實現相同,但可以完成。下面的代碼爲Windows Phone的Xamirin應用程序開發

// 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(); 
} 

不要忘記通過金塊包管理器添加Media Service SDK工作正常。

相關問題