Использование Windows Azure для потокового

Реклама
PBC304ILL
Лабораторная работа
Использование Windows
Azure для потокового
вещания с поддержкой
Smooth Streaming
2
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
Технические основы
Введение
Microsoft Live Smooth Streaming – технология адаптивной передачи видео широкому кругу
клиентов, включая устройства с операционной системой Apple iOS. Один из вопросов, который
часто интересует наших партнёров и заказчиков: Может ли помочь Windows Azure в этой
области?
В настоящее время Windows Azure не обладает поддержкой «из коробки» IIS Media Services,
требуемой для протокола Live Smooth Streaming. К счастью, существует отличное простое
решение этой проблемы, которое полностью соответствует принципам бизнес модели
Platform-as-a-Services .
Эта лабораторная работа под руководством инструктора позволит Вам пройти все этапы
использования заранее подготовленного проекта Visual Studio для создания проекта видео
трансляции, готового для настройки под нужды заказчиков. После выполнения данной
лабораторной работы, Вы сможете скомпилировать и продемонстрировать этот проект
любому заинтересованному клиенту или партнёру.
Инструкции и код проекта находятся в открытом доступе, по ссылке:
http://azlivestreaming.codeplex.com/
Решение Windows Azure Live Streaming позволяет быстро развёртывать масштабируемые
сервисы для трансляции живого видео с помощью Windows Azure Web Roles.
Исходный код решения доступен для скачивания по ссылке:
http://azlivestreaming.codeplex.com
Высокоуровневая Архитектура представлена на следующей диаграмме:
3
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
Upstream Server (пример: upstream.cloudapp.net)
Единственный экземпляр Веб-роли с точкой публикации Push . URL этой точки публикации
используется программой Expression Encoder для отправки видеопотока события в режиме
реального времени.
Важно: для обеспечения резервирования (избыточности) для точки Push, можно развернуть
еще одну дополнительную Web role на разных DNS. Развёртывание Azure Staging так же
подойдет.
Upstream Server может быть использован в качестве сервера потокового вещания при
развертываниях в малых масштабах. В этом случае URL проигрывателя будет следующим:
http://upstream.cloudapp.net/push.isml/manifest.
Downstream Server (пример: downstream.cloudapp.net)
Web role с несколькими экземплярами (instance) с точкой публикации Pull. URL для этих точек
публикаций может быть, например, таким - http://downstream.cloudapp.net/pull.isml/manifest.
IIS Media Services 4
IIS Media Services 4 автоматически устанавливаются и конфигурируются с помощью Web role
startup tasks и Web Administration API.
Publishing Points
Решение содержит две предопределенных точки публикации:
Push.isml – для получения видеопотока от кодирующего устройства
4
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
Pull.isml – для извлечения видеопотока из Upstream Server
Каждый isml файл разворачивается как часть обычной процедуры развёртывания Windows
Azure через портал управления или из среды Visual Studio IDE.
Важно: Конфигурация точек публикаций Push/Pull может быть выполнена просто за счёт
редактирования файлов isml (XML) в среде Visual Studio, либо в любом другом текстовом
редакторе.
Проигрыватель Silverlight
В решении используется пример проигрывателя Silverlight , взятый с сайта iis.net/media,
ссылка: http://learn.iis.net/page.aspx/620/getting-started-with-iis-live-smooth-streaming/
5
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
Введение
Предполагаемое время выполнения лабораторной работы
60 минут – Наиболее вероятное полное время выполнения лабораторной работы.
Цели
Изучить, как можно построить и развернуть комплексное решение Live Smooth Streaming,
используя Windows Azure Web-roles, Visual Studio 2010 SP1, Expression Encoder Pro 4 SP1 и
Silverlight проигрыватель.
Обзор лабораторной работы
Во время выполнения этой лабораторной будут пройдены все этапы, необходимые для
развёртывания рабочего Live Smooth Streaming решения на Windows Azure, изучен кода
решения воспроизведена фактическая видео трансляция.
Функциональные возможности финального решения:
-
Кодирование и захват кода видео в реальном времени
-
Отправка видеопотока на Windows Azure
Воспроизведение видео в реальном времени из Windows Azure, используя
проигрыватель Silverlight
-
Веб-портал на Windows Azure, показывающий конфигурацию Media Services
В рамках этой лабораторной работы вы также узнаете, как можно развернуть пакеты msi и
сконфигурировать IIS в Windows Azure Web roles программным путём.
Подробная информация по проекту и инструкции находятся в открытом доступе по ссылке:
http://azlivestreaming.codeplex.com/
Технология виртуальной машины
Компьютеры в данной лабораторной работе представлены виртуальными машинами,
функционирующими на основе технологии Microsoft Hyper-V. Перед запуском каждой
виртуальной машины, убедитесь, что вы применили snapshot Start-Lab. После запуска
виртуальной машины, зарегистрируйтесь, используя клавиши CTRL+ALT+END и введя данные
Вашей учётной записи, указанные в инструкциях к лабораторной работе.
Компьютеры в этой лабораторной работе
В этой лабораторной работе используются виртуальные машины, как описано в таблице ниже.
Перед началом выполнения лабораторной работы вы должны сначала запустить виртуальные
машины, а затем зайти в них..
Virtual Machine
Role
<as deployed by Lab
staff>
Developer Workstation, Windows Server 2008 R2
 Все аккаунты пользователей в этой лабораторной используют пароль pass@word1
6
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
Задание 1: Изучение исходного кода решения
Основная часть решения – проект в среде Visual Studio 2010 SP1, используемый для развёртывания
необходимых компонентов Windows Azure Web roles.
 Задание – Открытие среды Visual Studio и запуск проекта
 Начните это задание, зарегистрировавшись в <lab machine> под учетной записью
Administrator используя пароль pass@word1, если потребуется
1. Откройте Windows Explorer, перейдите в директорию C:\Lab\End сделайте двойной клик
мышью по файлу MediaServices.sln в этой директории.
2. На Вашем экране должна запуститься среда Visual Studio и Вы увидите подобное окно:
7

MediaPortal должен быть установлен в качестве Стартового проекта. Если это не
так, щёлкните правой кнопкой мыши на MediaPortal и выберите Set as Startup Project в
контекстном меню

Если не отображается Solution Explorer – перейдите в раздел меню View и выберите
Solution Explorer.
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
3. Нажмите клавишу F5. В браузере должно открыться следующее окно (фактический URL
может отличаться):
Портал показывает рекомендуемую конфигурацию решения и актуальные настройки из Media
Services: URLs и иерархия объектов точек публикации Push и Pull.
4. Закройте браузер и вернитесь в Visual Studio.
 Конфигурация Publishing Points
 В этой лабораторной работе мы используем только точку публикации Push .
Решение содержит два предопределённых точки публикации, как показано ниже:
8
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
Файл Push.isml не содержит никаких внешних ссылок и может быть оставлен таким, какой есть.
Файл Pull.isml должен быть отредактирован. Необходимо включить ссылку на Upstream Server.
Выполните двойной щелчок по файлу pull.isml и отредактируйте элемент smil/body/switch/ref , как
показано ниже:
9
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
Атрибут src элемента <ref> должен включать в себя URL или точку публикации Push на Upstream
Server, такую как http://upstream.cloudapp.net/push.isml. Для этого задания лабораторной работы
можно оставить значение src в неизменном виде.
 Media Services
1. Проект содержит файл IISMedia64.msi. Щелкните по нему правой кнопкой мыши и
проверьте свойства. Этот компонент будет развернут на Windows Azure без изменений.
 Startup Tasks (Стартовые задачи)
1. Startup Task в ServiceDefinition.csdef используется для запуска startup.cmd. Щёлкните два
раза кнопкой мыши ServiceDefinition.csdef и посмотрите значение элемента <Startup>.
2. Щёлкните два раза кнопкой мыши startup.cmd и посмотрите, как файл msi будет
развёрнут на стадии инициализации Веб роли.
10
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
 Конфигурация IIS в Azure Web Role
1. Media Services требуют дополнительной конфигурации после инсталляции для работы
должным образом. Эти шаги исполняются кодом в папке Services. Щёлкните два раза
кнопкой мыши на файле Services/InitService.cs и изучите код.
2. В основном код изменяет настройки пула приложений IIS, который используется Media
Services.
 Количество экземпляров Web role
Количество копий конфигурируется посредством диалога в Visual Studio (Щёлкните два раза кнопкой
мыши на WindowsAzureProject1/Roles/MediaPortal) или в файле ServiceConfiguration.cscfg:
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="WindowsAzureProject1"
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"
osFamily="2" osVersion="*">
<Role name="MediaPortal">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
value="UseDevelopmentStorage=true" />
</ConfigurationSettings>
</Role>
</ServiceConfiguration>
Важно: Необходимо сконфигурировать только 1 экземпляр Upstream server. Сконфигурируйте
более 1 экземпляра Downstream server. В этой лабораторной не используются Downstream
servers с балансировкой нагрузки.
 ServiceDefinition.csdef
Убедитесь, что Веб роли запускаются в привилегированном (elevated) контексте безопасности
(необходимо для надлежащей конфигурации IIS Media Services):
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzureProject1"
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="MediaPortal">
<Runtime executionContext="elevated"></Runtime>
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
<Imports>
<Import moduleName="Diagnostics" />
</Imports>
11
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
</WebRole>
</ServiceDefinition>
 Проигрыватель
Веб-портал в решении включает проигрыватель Live Smooth Streaming (Views/Home/Play.cshtml),
который использует следующий тег <object>:
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
width="640" height="480">
<param name="source" value="/SmoothStreamingPlayer.xap"/>
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50401.0" />
<param name="autoUpgrade" value="true" />
<param name="InitParams"
value="selectedcaptionstream=textstream_eng,mediaurl=http://upstream.cloudapp.net
/push.isml/manifest"/>
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0"
style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get
Microsoft Silverlight" style="border-style:none"/>
</a>
</object><iframe id="_sl_historyFrame"
style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>
InitParams должен содержать параметр mediaurl, указывающий либо на push точку Upstream serverа в
случае развертывания на одном сервере либо на либо точку pull на Downstream server.


Пример Upstream: http://upstream.cloudapp.net/push.isml/manifest
Пример Downstream: http://downstream.cloudapp.net/push.isml/manifest
Фрагмент HTML кода выше может быть вставлен в тег <iframe> на любом Веб сайте.
Настоящий (реальный) проект в этой лабораторной может использовать
выраженияASP.NET MVC (@...) для подстановки действительных значений в HTML.
Задание 2: Развёртывание решения на Windows
Azure
В этом упражнение необходимо развернуть решение на Windows Azure. Это займет от 5 до 15
минут, поэтому запустим развёртывание сейчас и вернёмся к нему позднее. Для
развёртывания the package будем использовать Windows Azure Management Portal.
 Создание пакета Windows Azure
 Начните это задание из того же самого проекта в Visual Studio, который Вы открыли в
предыдущем задании.
1. Убедитесь, что будет развёрнут только 1 экземпляр размера Small size. Разверните
WindowsAzureProject1/Roles, щёлкните два раза кнопкой мыши по узлу MediaPortal и
12
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
проверьте закладку Configuration. Число экземпляров (instances) должно быть 1 и VM Size
должен быть Small.
2. Щелкните правой кнопкой мыши на WindowsAzureProject1 в Visual Studio Solution
Explorer и выберите Publish.
3. Выберите кнопку Create Service Package Only.
4. Visual Studio построит решение, создаст пакет и откроет окно браузера Windows
Explorer(Проводник) с двумя результирующими файлами.
5. Скопируйте путь к только что сгенерированным файлам в буфер обмена.
 Развёртывание пакета на Windows Azure
 Убедитесь, что Вы получили Windows Azure Live ID для доступа на портал.
1. Перейдите на https://windows.azure.com портал управления для создания New Hosted
Service.
2. Щелкните на New Hosted Service в ленточном меню. Появится следующее диалоговое
окно:
13
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
3. Введите имя и уникальный URL префикс для Вашего сервиса, вида:
http://<your_alias_azlivelab>.cloudapp.net
4. Выберите регион: Anywhere US (либо регион, рекомендованный для учётной записи
Azure, которую Вы получили для выполнения этой лабораторной работы)
5. Выберите Deploy to production environment
6. Поставьте checkbox Start after successful deployment
7. Введите любое имя для развертывания (deployment name), которое Вам нравится,
например, TR Lab
8. Для выбора расположения пакета (Package location) кликните Browse Locally… и выберите
package файл WindowsAzureProject1.cspkg, созданный Visual Studio в предыдущем
задании (Создать пакет Windows Azure)
14
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
9. Для Configuration file нажмите Browse Locally… и выберите конфигурационный файл
ServiceConfiguration.cscfg, созданный Visual Studio в предыдущем задании (Создание
пакета Windows Azure)
10. Нажмите OK и Windows Azure развернет и запустит Ваши пакеты.
15
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
Задание 3: Запуск Live Smooth Streaming, используя
локальные Media Services
Пока наши пакеты с Media Services развёртываются на Windows Azure, подготовимся, выполняя
трансляцию видео, используя локальные Media Services, установленные на лабораторных машинах.
 Кодировка Видео с помощью Expression Encoder 4 Pro SP1
1. Запустите Expression Encoder, нажимая на значок Expression Encoder на Windows Taskbar
или из меню Пуск (All Programs/Microsoft Expression/Expression Encoder 4)
2. Выберите Live Broadcasting Project
3. Нажмите Add Live Source
4. На левой панели выберите Screen Capture в качестве Видео устройства. На самом деле вы
можете выбрать любое устройство захвата видео, распознаваемое Expression Encoder. Для
целей этой лабораторной используется Screen Capture, так как он не требует
присоединения реального видео устройства к виртуальной машине.
5. На правой Presets панели выберите Standard Encoding/VC-1/VC-1 IIS Smooth Streaming Low
Bandwidth preset и нажмите кнопку Apply (или дажды нажмите на сам preset)
16
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
6. Выберите Encode панель и разверните секцию Видео .
7. Нажимайте на корзину до тех пор, пока не установите наименьший битрейт (например,
400 Kbps). В реальной сессии кодирования Вы можете установить максимальное значение
битрейта, зависящее от качества каналов связи, пропускной способности Интернета и
уровня аппаратного обеспечения Вашего ПК.
8. Нажмите на закладку Output и разверните секцию Publishing Point (если эта секция ещё не
развёрнута)
9. Проверьте выходные данные Publishing Point и используйте
http://localhost:8080/push.isml, как показано ниже (это заставит encoder отсылать
видеопоток на Media Services):
17
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
10. Нажмите Generate для заполнения поля EventID.
Важно: Перед каждым нажатием кнопок Connect или Start, вы должны
сгенерировать новый EventID
11. Нажмите Start и начните сессию кодирования
18
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
 Локальный запуск просмотра живого видео потока .
1. Откройте браузер и перейдите на http://localhost:8080. Появится следующее окошко браузера
2. Нажмите на ссылку под серой стрелкой, указывающей направо –
http://localhost:8080/push.isml
Либо введите адрес: http://localhost:8080/home/play/push
3. Откроется тестовая страница видео проигрывателя. Проигрыватель на этой странице
присоединяется к точке публикации http://localhost:8080/push.isml/manifest, на которую
Expression Encoder отсылает видео.
Задание 4: Конечный сценарий Live Smooth
Streaming и Windows Azure
К этому моменту Windows Azure должна закончить развертывание вашего проекта и теперь можно
запустить готовое (полное, завершенное) end-to-end решение.
 Отправка видео на Windows Azure.
 Перейдите на Windows Azure Management Portal и проверьте, развернулся ли уже Ваш
сервис. Статус должен быть Ready (зелёного цвета).
19
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
1. Закройте окно браузера с тестовым видео проигрывателем.
2. Переключитесь снова на Expression Encoder и остановите сессию кодирования.
3. Выберите на панели справа закладку Output, но сейчас используйте следующий URL:
http://<your_azure_service>.cloudapp.net/push.isml, где <your_azure_service>.cloudapp.net
– DNS-сервис, созданный на Windows Azure Portal.
4. Важно: Нажмите кнопку Generate в секции Publishing Point для заполнения нового
EventID перед каждой сессией кодирования, запущенной нажатием кнопки Start или
перед нажатием Connect.
5. Нажмите Start для того, чтобы запустить сессию кодирования и отправки видеопотока на
Windows Azure
 Просмотр Live Video из Windows Azure.
1. Перейдите на http://<your_azure_service>.cloudapp.net
2. Скопируйте в браузер следующий адрес:
http://<your_azure_service>.cloudapp.net/Home/Play/push
20
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.
3. Откроется тестовая страница видео проигрывателя. Проигрыватель на этой странице
связывается с точкой публикации
http://<your_azure_service>.cloudapp.net/push.isml/manifest, на которую сейчас
Expression Encoder отправляет видео.
Сейчас у Вас есть рабочее решение, которое позволяет отправлять видео в
реальном времени с помощью Expression Encoder на Windows Azure, и
транслировать его в проигрывателе Silverlight, используя технологию Smooth
Streaming.
На этом завершается выполнение лабораторной работы. Спасибо!
21
Microsoft Tech∙Ed Russia 2011. Лабораторная работа.
Использование Windows Azure для потокового вещания с поддержкой Smooth Streaming.