Windows Azure Media Services рдХреНрдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ


рдпрджрд┐ рдЖрдк рдХреНрд▓рд╛рдЙрдб рд╕рдорд╛рдЪрд╛рд░ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ 2012 рд▓рдВрджрди рдУрд▓рдВрдкрд┐рдХ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдореАрдбрд┐рдпрд╛ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдореАрдбрд┐рдпрд╛ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рдПрдХ рддрдХрдиреАрдХ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╣рдорд╛рд░реЗ рд╕рд╛рдЭреЗрджрд╛рд░ рднреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдПрдХ рдУрд░, рдпреЗ рд╕рд┐рджреНрдз рдФрд░ рдкрд░рд┐рдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рджреВрд╕рд░реА рдУрд░, рдЗрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдФрд░ рдореАрдбрд┐рдпрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдХреЛрдбрд┐рдВрдЧ, рдкреНрд░рд╕рд╛рд░рдг рдФрд░ рд╡рд┐рддрд░рдг рдХреА рдЕрдкрдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред

Windows Azure Media Services рдЖрдкрдХреА рд╕реНрд╡рдпрдВ рдХреА рдореАрдбрд┐рдпрд╛ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрд╡рд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ:
рдпрд╛, рдпрджрд┐ рдЖрдк рдЖрд░реЗрдЦ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдореАрдбрд┐рдпрд╛ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:

рдпрджрд┐ рдЖрдк рдЖрд░реЗрдЦ рдХреЛ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдореАрдбрд┐рдпрд╛ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреА рдПрдХ рдФрд░ рд╢рд╛рдирджрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - рд╡реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдореАрдбрд┐рдпрд╛ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдПрдХ рд╕реНрд░реЛрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: рд╕рд╛рдзрд╛рд░рдг рдбреЗрд╕реНрдХрдЯреЙрдк рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рд▓реЗрдХрд░ рдЯреЗрд▓реАрд╡рд┐рдЬрди рд╕реЗрдЯ-рдЯреЙрдк рдмреЙрдХреНрд╕ рдпрд╛ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рддрдХред

рдФрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдЕрджреНрднреБрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП REST API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдЪрд┐рдд, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╕рдВрдЧрдарди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Windows Azure Media Services рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдорд╛рдзрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред .NET рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ .NET рдХреЗ рд▓рд┐рдП Windows Azure Media Services SDK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП REST API рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рдкреЗрдЯрддрд╛ рд╣реИред

рддреЛ, рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдореАрдбрд┐рдпрд╛ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреНрдпрд╛ рд╣реИред рдЖрдЗрдП рдЙрдиреНрд╣реЗрдВ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВред

рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛ рд╡рд┐рдХрд╛рд╕


рдореИрдХ рдФрд░ рдкреАрд╕реА
рдЕрдм рдЖрдк Microsoft рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдХ рдФрд░ рдкреАрд╕реА рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рдПрд╕рдбреАрдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдлреНрд▓реИрд╢ рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдПрд╕рдбреАрдХреЗ:
рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдЪрд┐рдХрдиреА рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ
Microsoft рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдпрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ

рд╡рд┐рдВрдбреЛрдЬ 8
рд╡рд┐рдВрдбреЛрдЬ 8 рдХреЗ рддрд╣рдд WinRT рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд╕рдбреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ HTML / JS, C # рдпрд╛ C ++ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
WinRT рд╡рд┐рдВрдбреЛрдЬ 8applications рдХреЗ рд▓рд┐рдП рдЪрд┐рдХрдиреА рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрд╕рдбреАрдХреЗ
Microsoft рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: WinRT рд╡рд┐рдВрдбреЛрдЬ 8 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдпрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ

рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди
Microsoft рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдкрд░ рд╡реАрдбрд┐рдпреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд╕рдбреАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдЪрд┐рдХрдиреА рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ
Microsoft рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдпрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ

iOS рдЙрдкрдХрд░рдгреЛрдВ
IPhone, iPod рдФрд░ iPad рд╕рд╣рд┐рдд iOS рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, Microsoft PlayReady рдХреЗ рд╕рд╛рде iOS рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд┐рдХрдиреА рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ SDK рдХреЛ рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИред
PlayReady рдХреЗ рд╕рд╛рде iOS рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд┐рдХрдиреА рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ SDK

Android рдбрд┐рд╡рд╛рдЗрд╕
Microsoft рд╕рд╛рдЭреЗрджрд╛рд░ рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрд╕рдбреАрдХреЗ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рдЖрдкреВрд░реНрддрд┐ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдПрдХреНрд╕рдмреЙрдХреНрд╕
Xbox, рдЪрд┐рдХрдиреА рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рд╕рд╛рде Xbox LIVE рдРрдкреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред Xbox рд▓рд╛рдЗрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдХрд┐рдЯ (ADK) рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
Xbox рд▓рд╛рдЗрд╡ ADK рдХреЗ рд▓рд┐рдП рдЪрд┐рдХрдирд╛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ
Microsoft рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: Xbox LIVE ADK рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдпрд░ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ

рдПрдВрдмреЗрдбреЗрдб рдФрд░ рдЕрдиреНрдп рдбрд┐рд╡рд╛рдЗрд╕
рдПрдореНрдмреЗрдбреЗрдб рдбрд┐рд╡рд╛рдЗрд╕реЗрдЬрд╝, рдЬреИрд╕реЗ рдЯреЗрд▓реАрд╡рд┐рдЬрд╝рди, рд╕реЗрдЯ-рдЯреЙрдк рдмреЙрдХреНрд╕, рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдпрд░, рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдХрд┐ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдврд╛рдВрдЪреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдореАрдбрд┐рдпрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:
рдЪрд┐рдХрдирд╛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХрд┐рдЯ
Microsoft PlayReady рдбрд┐рд╡рд╛рдЗрд╕ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХрд┐рдЯ

рд╕реЗрд╡рд╛ рднрд╛рдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ

Windows Azure рдореАрдбрд┐рдпрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ Windows Azure рдкреНрд░рдмрдВрдзрди рдкреЛрд░реНрдЯрд▓ рдореЗрдВ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ (рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмреАрдЯрд╛ рдореЗрдВ рд╣реИ):


рд╕реЗрд╡рд╛ рдХреА рд╕реНрдерд┐рддрд┐ рд╕рдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж - рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред


рдЙрд╕рдХреЗ рдмрд╛рдж, рдпрджрд┐ рдЖрдк рдПрдХ .NET рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Visual Studio 2010 SP1 рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
рдЕрдм рдЖрдк Windows Azure Media Services рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рд╣реИрдВред

рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ рдЬреЛ рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдореАрдбрд┐рдпрд╛ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

Visual Studio рдореЗрдВ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4 рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛрдбрд╝реЗрдВ:
Microsoft.WindowsAzure.MediaServices.Client.dll
\ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ (x86) \ Microsoft SDKs \ Windows Azure рдореАрдбрд┐рдпрд╛ рд╕реЗрд╡рд╛рдПрдБ \ Services SDK \ v1.0 \

Microsoft.WindowsAzure.StorageClient.dll
\ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ \ Windows рдиреАрд▓рд╛ SDK \ v1.6 \ bin \

Microsoft.Data.Edm.dll
(+ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ (x86) \ Microsoft WCF рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛рдПрдБ \ 5.0 \ bin \ .NETFramework \

Microsoft.Data.OData.dll
(+ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ (x86) \ Microsoft WCF рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛рдПрдБ \ 5.0 \ bin \ .NETFramework \

Microsoft.Data.Services.Client.dll
(+ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ (x86) \ Microsoft WCF рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛рдПрдБ \ 5.0 \ bin \ .NETFramework \

Microsoft.Data.Services.dll
(+ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ (x86) \ Microsoft WCF рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛рдПрдБ \ 5.0 \ bin \ .NETFramework \

System.Spatial.dll
(+ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ (x86) \ Microsoft WCF рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛рдПрдБ \ 5.0 \ bin \ .NETFramework \

System.Configuration

рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ app.config рдХреЗ рд▓рд┐рдП рдореАрдбрд┐рдпрд╛ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗрдВ:
<?xml version="1.0"?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> </startup> <appSettings> <add key="accountName" value="Add-Media-Services-Account-Name" /> <add key="accountKey" value="Add-Media-Services-Account-Key" /> </appSettings> </configuration> 


рд╕реНрдерд╛рдиреАрдп рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП рдХреЛрдб рдЪрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
 private static readonly string _singleInputFilePath = Path.GetFullPath(@"C:\mediaFiles\interview.wmv"); private static readonly string _outputFilesFolder = Path.GetFullPath(@"C:\outputfiles"); 


рдирд┐рдореНрди рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдмреНрд▓реЙрдХ рдХреЛ рдмрджрд▓реЗрдВ:
 using System.Linq; using System; using System.Configuration; using System.IO; using System.Threading; using System.Collections.Generic; using Microsoft.WindowsAzure.MediaServices.Client; 


рдЙрди рдЪрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬрд┐рдирдореЗрдВ рдЖрдкрдХрд╛ рдЦрд╛рддрд╛ рдбреЗрдЯрд╛ рд╣реЛрдЧрд╛:
 private static readonly string _accountKey = ConfigurationManager.AppSettings["accountKey"]; private static readonly string _accountName = ConfigurationManager.AppSettings["accountName"]; 


рд╕рд░реНрд╡рд░ рд╕рдВрджрд░реНрдн рдФрд░ рдХрд╛рд░реНрдп рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
 private static CloudMediaContext _context = null; static string _outputAssetID = null; 


рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдореЗрдВ, рд╕реЗрд╡рд╛ рд╕рдВрджрд░реНрдн рдирд┐рд░реНрдорд╛рдг рдЬреЛрдбрд╝реЗрдВ:
 _context = new CloudMediaContext(_accountName, _accountKey); 


рдЕрдм рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рдореЗрдВ рдореАрдбрд┐рдпрд╛ рдбреЗрдЯрд╛ рдмрдирд╛рдиреЗ рдФрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 static IAsset CreateAndUploadAsset(string inputMediaFilePath) { IAsset theAsset = _context.Assets.Create(inputMediaFilePath, AssetCreationOptions.StorageEncrypted); Console.WriteLine("Asset name: " + theAsset.Name); Console.WriteLine("Asset ID: " + theAsset.Id); Console.WriteLine("Time created: " + theAsset.Created.Date.ToString()); Console.WriteLine("Encrypted status: " + theAsset.Options.ToString()); return theAsset; } IAsset asset = CreateAndUploadAsset(_singleInputFilePath); 


рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЯреНрд░рд╛рдВрд╕рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрдИ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рдмрдирд╛рдПрдВрдЧреЗ:
 //   static void CreateEncodingJob(IAsset asset, string outputFolder) { IJob job = _context.Jobs.Create("My Encoding Job"); //  - IMediaProcessor processor = GetMediaProcessor("Windows Azure Media Encoder"); //    ITask task = job.Tasks.AddNew("My encoding task", processor, "H.264 256k DSL CBR", TaskCreationOptions.None); // ,   task.InputMediaAssets.Add(asset); //  Asset    task.OutputMediaAssets.AddNew("Output asset", true, AssetCreationOptions.None); //  . job.Submit(); //        CheckJobProgress(job.Id); //    Job job = GetJob(job.Id); //     IAsset outputAsset = job.OutputMediaAssets[0]; //     _outputAssetID = outputAsset.Id; //  SAS URL      string sasUrl = GetAssetSasUrl(outputAsset, TimeSpan.FromMinutes(30)); //  URL    string outFilePath = Path.GetFullPath(outputFolder + @"\" + "SasUrl.txt"); WriteToFile(outFilePath, sasUrl); } 


рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпред

рд╣рдо рдХрд╛рдо рдХреЗ рдЕрдВрдд рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
 private static void CheckJobProgress(string jobId) { //    bool jobCompleted = false; //   const int JobProgressInterval = 20000; while (!jobCompleted) { //     Job IJob theJob = GetJob(jobId); //       switch (theJob.State) { case JobState.Finished: jobCompleted = true; Console.WriteLine(""); Console.WriteLine("********************"); Console.WriteLine("Job state: " + theJob.State + "."); Console.WriteLine("Please wait while local tasks complete..."); Console.WriteLine(); break; case JobState.Queued: case JobState.Scheduled: case JobState.Processing: Console.WriteLine("Job state: " + theJob.State + "."); Console.WriteLine("Please wait..."); Console.WriteLine(); break; case JobState.Error: break; default: Console.WriteLine(theJob.State.ToString()); break; } // ,      Thread.Sleep(JobProgressInterval); } } 


рд╣рдо рдореАрдбрд┐рдпрд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ:
 private static IMediaProcessor GetMediaProcessor(string mediaProcessor) { //         // MP4 to Smooth Streams Task // Windows Azure Media Encoder // PlayReady Protection Task // Smooth Streams to HLS Task // Storage Decryption // ,       var theProcessor = from p in _context.MediaProcessors where p.Name == mediaProcessor select p; //   IMediaprocessor. IMediaProcessor processor = theProcessor.First(); if (processor == null) throw new ArgumentException(string.Format(System.Globalization.CultureInfo.CurrentCulture, "Unknown processor", mediaProcessor)); return processor; } 


рдиреМрдХрд░реА рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:
 static IJob GetJob(string jobId) { //  Job  Id var job = from j in _context.Jobs where j.Id == jobId select j; //     IJob theJob = job.FirstOrDefault(); // ,  Job  :) if (theJob != null) return theJob; else Console.WriteLine("Job does not exist."); return null; } 


рдХреЛрдбрд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП SAS URL рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:
 static String GetAssetSasUrl(IAsset asset, TimeSpan accessPolicyTimeout) { //   IAccessPolicy readPolicy = _context.AccessPolicies.Create("My Test Policy", accessPolicyTimeout, AccessPermissions.Read); //  locator,     asset    ILocator locator = _context.Locators.CreateSasLocator(asset, readPolicy, DateTime.UtcNow.AddMinutes(-5)); Console.WriteLine("Locator path: "); Console.WriteLine(locator.Path); Console.WriteLine(); //    mp4  -     - xml var theOutputFile = from f in asset.Files where f.Name.EndsWith(".mp4") select f; //  IQueryable  IFileInfo. IFileInfo theFile = theOutputFile.FirstOrDefault(); string fileName = theFile.Name; //   SAS URL var uriBuilder = new UriBuilder(locator.Path); uriBuilder.Path += "/" + fileName; Console.WriteLine("Full URL to file: "); Console.WriteLine(uriBuilder.Uri.AbsoluteUri); Console.WriteLine(); return uriBuilder.Uri.AbsoluteUri; } 


рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐:

 static void WriteToFile(string outFilePath, string fileContent) { StreamWriter sr = File.CreateText(outFilePath); sr.Write(fileContent); sr.Close(); 


рдЗрд╕реЗ рдореЗрди рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдмрд╛рдХреА рд╣реИ:
 CreateEncodingJob(asset, _outputFilesFolder); 


рдФрд░ рдЖрдк рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЙрджрд╛рд╣рд░рдг
 Asset name: interview Asset ID: nb:cid:UUID:xyzxyza-318a-4a47-b996-27353b23abc3 Time created: 5/24/2012 12:00:00 AM Encrypted status: StorageEncrypted Job state: Queued. Please wait... Job state: Processing. Please wait... Job state: Processing. Please wait... ******************** Job state: Finished. Please wait while local tasks complete... Locator path: https://MediaServicesServer.blob.core.windows.net/asset-zzzz374-1234-4c60-9da8-3daf 7a6dabcd?st=2012-05-24T21%3A59%3A55Z&se=2012-05-24T22%3A29%3A55Z&sr=c&si=b1a0cf8 f-45bf-4f77-a84a-a38c3f8a002d&sig=tWmPLPpNuQpEXvCd2Ik8rCfY5AqjII3gnWgi9ustBI4%3D Full URL to file: https:// MediaServicesServer.blob.core.windows.net/asset- zzzz374-1234-4c60-9da8-3daf 7a6dabcd/interview.mp4?st=2012-05-24T21%3A59%3A55Z&se=2012-05-24T22%3A29%3A55Z&s r=c&si=b1a0cf8f-45bf-4f77-a84a-a38c3f8a002d&sig=tWmPLPpNuQpEXvCd2Ik8rCfY5AqjII3g nWgi9ustBI4%3D 



рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдореАрдбрд┐рдпрд╛ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреА рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдП рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕рд░рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреЛ рд╕реЗрд╡рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рд░рд▓рддрдо рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреА рд╣реИред рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдВрдХ рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ: www.windowsazure.com/en-us/develop/net/how-to-guides/media-services

Source: https://habr.com/ru/post/In150593/


All Articles