Рубрика:
Администрирование /
Конкурс
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
НИКИТА ПАНОВ, работает в корпорации Microsoft техническим инженером, модерирует русскоязычный сектор портала TechNet, является лидером MCP-клуба в Воронеже. Любит преподавать и взаимодействовать с аудиторией
Умное видео от Microsoft
Рассмотрим технологию адаптивной передачи видео от Microsoft – Smooth Streaming, плюсы данной технологии в сравнении с устаревающими технологиями передачи видео, а также как можно быстро и легко развернуть точку публикации видео в формате Smooth Streaming на базе сервера Internet Information Services 7.0
Как часто мы сталкиваемся с технологиями, которые стали для нас такими привычными, но вместе с тем мы знаем о них очень мало. Многие из нас редко задумываются, например, о том, что такое HTML, когда открывают очередную веб-страницу, или о природе микроволнового излучения, когда разогревают очередной бутерброд в микроволновой печи. Как поет всем известный БГ в одной из своих песен:
«…Я не знаю, как идет сигнал,
Я не знаю принципа связи,
Я не знаю, кто клал кабель,
Едва ли я когда-нибудь услышу тебя…»
Многие из нас не задумываются о технологии передачи видеопотока со ставших уже такими привычными сервисов, как Youtube, Rutube и т.п. Хотя многие знают, что «есть какой-то флэш-плеер», который показывает нам видео, более продвинутые знакомы с такими понятиями, как MMS (Microsoft Media Stream) и RTSP (Realtime Streaming Protocol), и смотрят телевидение онлайн, и совсем небольшая часть, я думаю, знакома с Windows Media Services и занималась разворачиванием данной службы публикации потокового видео и видео по запросу (video-on-demand).
Точно знаю, что у нас в Воронеже есть интернет-провайдер, который предоставляет услугу video-on-demand, и думаю, что целевой аудиторией данной статьи как раз являются провайдеры, компании, предоставляющие хостинг на основе Internet Information Services (IIS) и, кстати, гостиничный бизнес! Недавно я посетил открытие MCP-клуба в городе Сочи, где данной технологией очень заинтересовались отели!
В этом нет ничего удивительного, потому что в крупных отелях сервис video-on-demand уже сейчас очень востребован и является очень привлекательной дополнительной услугой для гостей, а применяя данную технологию, можно серьезно сократить затраты по времени на развертывание сервера потокового видео.
Итак, что же такое Smooth Streaming, причем здесь видео и почему эта технология в последнее время обращает на себя так много внимания? Отвечать буду по порядку.
Smooth Streaming – это новая бесплатная технология адаптивного потокового видео от Microsoft, которая плотно интегрирована с Silverlight, с одной стороны, и IIS – с другой. Знаменита она тем, что отняла лучшее от морально устаревающих технологий передачи видео:
- традиционного потока (traditional streaming) – удобный пользовательский интерфейс, оптимизированное использование интернет-канала и возможность применения интерактивного контента (реклама);
- прогрессивной загрузки (progressive download) – работу с веб-серверами и возможность кэширования данных, поскольку используется протокол HTTP.
Опять же, если обратить внимание на безопасность, то для использования Smooth Streaming необходим только 80-й порт и более ничего, тогда как для MMS и RTSP необходимо открывать на файрволе отдельные порты, что может быть небезопасно. В целом получился практически идеальный инструмент для публикации и передачи потокового видео.
Велика тяга русского народа к «халяве», но и тут все хорошо, ибо данный инструмент абсолютно бесплатен и может быть скачан как дополнение к IIS 7.0 с сайта Microsoft.
А в чем же заключается адаптивность такого видеопотока? – спросите вы, и я отвечу: в том, что на основе текущего качества связи и уровня аппаратного обеспечения вашего ПК или его загруженности другими процессами Smooth Streaming выбирает наиболее оптимальное качество передаваемого видео. Как это происходит?
Сервер Smooth Streaming посылает клиенту так называемые «ломти» (chunk) видеопотока длительностью 2-4 секунды и производит измерение времени получения отзыва от клиента после их отправки. Получается эдакий своеобразный «пинг».
Если интервал времени больше ожидаемого, то сервер делает вывод о загруженности клиента и начинает отдавать ему видео с более низким битрейтом. Если же клиент вернул отзыв раньше ожидаемого времени, то сервер переключается на более высокий битрейт при передаче. Здорово, правда? Фактически теперь клиент сможет смотреть видео без перебоев даже при наличии «узкого» интернет-канала или при частых изменениях качества связи (3G-модемы и другие подобные подключения).
Конечно, без ложки дегтя не обошлось и здесь:
- Во-первых, Smooth Streaming вы можете использовать только на IIS 7.0 и выше.
- Во-вторых, для кодирования видео в формате, понятном Smooth Streaming, необходимо купить специальную версию Microsoft Expression Encoder, где данная поддержка реализована. Express-версия, распространяемая бесплатно, подобного функционала не поддерживает.
- В-третьих, многим не нравится необходимость обязательной установки на стороне клиента Silverlight-плеера, и можно записать это в минусы. Но, с другой стороны, для просмотра видео нам также приходится устанавливать плееры других производителей, например, от Adobe, так что это не столь существенно.
Предлагаю вам подробное описание установки и развертывания технологии Smooth Streaming с созданием Publishing point в реальной рабочей среде – на веб-сервере нашего воронежского MCP-клуба.
Для того чтобы данная технология начала работать, необязательно иметь сервер из разряда Hi-Level. Например, у нас Smooth Streaming разворачивался на довольно скромной рабочей станции Fujitsu-Siemens Celcius с процессором Intel Core2 Duo E8400 с тактовой частотой 3 ГГц, 16 Гб DDR2 128-bit ОЗУ, системная логика на базе Intel Eaglelake Q45. Никаких RAID-массивов, обычный SATAII-жесткий диск. Кто-то может сказать, что 16 Гб ОЗУ – это объем памяти выше среднего, но на этой же машине у нас одновременно работают несколько виртуальных машин, которые «отъедают» порядка 10 Гб ОЗУ, а также поднято несколько ролей сервера. Так что можете быть уверены, что центральный процессор достаточно серьезно нагружен, впрочем, как и ОЗУ.
Поскольку на нашей рабочей станции установлен Windows Server 2008 R2, то мы являлись счастливыми обладателями IIS 7.0, для которой просто был скачан пакет IIS Media Services 3.0 с сайта downloads.microsoft.com. Кстати, он представлен как в 32-разрядной, так и в 64-разрядной версиях.
После установки в панели управления IIS появляются четыре новых значка (см. рис. 1).
Рисунок 1. Панель управления IIS
Пока что они нам не нужны. Нужно определиться с сайтом, на котором будет развернута точка публикации Smooth Streaming. Можно сделать это и на «сайте по умолчанию» (default site), но мне было удобнее создать отдельный сайт для этого, указав для него отдельную новую папку на жестком диске. Эта папка будет предназначаться для файлов вывода Expression Encoder, к установке которого мы теперь и переходим.
Как я уже писал выше, для полноценной поддержки Smooth Streaming вам необходимо иметь Microsoft Expression Encoder 2.0 SP1 и выше, который является платным. Либо можете установить пакет веб-разработчика Expression Studio 3.0, куда также включен и Expression Encoder уже с поддержкой Smooth Streaming. После установки и запуска открывается главное окно программы (см. рис. 2).
Рисунок 2. Microsoft Expression Encoder 3
Возможно, оно покажется громоздким, но на самом деле все очень просто и понятно интуитивно.
Рассмотрим сейчас создание и публикацию видеоконтента по принципу video-on-demand. «Живое» видео мы делать не стали, поскольку в нем мы не нуждались, да и лишней камеры для этого не нашлось.
Нажимаем в главном окне внизу кнопку Import и выбираем видеофайл, который необходимо преобразовать в формат, понятный Smooth Streaming. Expression Encoder 3.0 поддерживает очень много форматов видео, включая даже DVD- и флэш-форматы, поэтому проблем здесь быть не должно.
После импорта справа во фрейме Presets выбираем Encoding for Silverlight > IIS Smooth Streaming и выбираем из списка тот шаблон, который нас устраивает в большей степени по качеству выводимого видео.
Чуть ниже во фрейме Job Output выбираем Template – шаблон видеоплеера, который будет открываться на странице вашего сайта для воспроизведения видео. Здесь все зависит только от вашей фантазии. Есть шаблоны для воспроизведения только одного потока, а есть для нескольких видеофайлов на выбор. Например, шаблон Reflection (см. рис. 3). В поле Directory вносим имя папки, в которой физически располагается наш сайт в IIS.
Рисунок 3. Шаблон Reflection
Следующий фрейм ниже – это Publish. Нас интересует вариант публикации с использованием WebDAV, поэтому его и выбираем.
И финал всех настроек – фрейм Settings, где необходимо ввести URL вашего сервера IIS (можно использовать и доменное имя сервера в формате FQDN), указать имя подпапки, куда будет производиться публикация данного конкретного видео (к примеру, у меня сайт расположен в папке c:smooth_streaming, в которой я хочу создать несколько разных папок с разными видео файлами. Для публикации в папку example я ввожу здесь имя папки example одним словом без кавычек и указания пути), и выбрать тип аутентификации самого Expression Encoder на сервере IIS. В данном случае я использовал Windows-аутентификацию. Не забываем нажать кнопочку Authenticate и дождаться появления зеленого цвета, что будет означать удачную аутентификацию на сервере. Только после этого Expression Encoder сможет выполнять публикацию на сайте IIS (см. рис. 4).
Рисунок 4. Не забывайте нажимать кнопку Authentificate
Теперь все готово для кодирования и публикации готового видео. Жмем кнопку Encode и уходим наливать себе чай или кофе, ибо процесс этот достаточно долгий и зависит от качества исходного видео, аппаратных ресурсов вашего сервера и от выбранного шаблона качества итогового видео. Готовое, но еще не опубликованное видео после окончания процесса будет лежать в папке самого сайта. В нашем случае это c:smooth_streaming. Чтобы Expression Encoder произвел его публикацию в указанную нами папку, нажимаем справа кнопку Publish. Вот теперь наше видео лежит именно в папке c:smooth_streamingexample и фактически уже опубликовано на нашем сайте. В папке публикации вы найдете множество файлов с расширением *.ismv, которые отличаются только разным числом в конце имени файла. Это и есть готовое видео в формате Smooth Streaming с различным битрейтом. Кроме этого есть еще файлы *.ismc и *.ism, которые содержат XML-код и предназначены для конфигурирования плеера на стороне клиента.
Теперь настроим IIS для того, чтобы при обращении к сайту у клиента открывалась страница с плеером. Для этого нужно сделать одну простую манипуляцию. Шаблон плеера, который мы выбрали ранее, привязан к файлу default.html, который мы так же можем видеть в папке публикации. Но в настройке IIS «документ по умолчанию» (default document) указан файл default.htm, поэтому добавляем эту запись сами вручную.
Важно: запись добавляется в настройках конкретной папки сайта IIS. В нашем примере это будет папка example.
Все! Теперь при подключении к адресу http://my.test.site/example у клиента загрузится Silverlight-плеер, в котором начнется воспроизведение вашего видеоконтента. Как видите, все это делается достаточно просто. Единственные «танцы с бубном» у меня были при публикации потокового видео. Оказалось, что Microsoft Expression Encoder не со всеми камерами работает корректно, поэтому рекомендую пробовать модели камер от Microsoft, которые наверняка поддерживаются без проблем.
Напоследок хочу дать вам несколько полезных ссылок:
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|