Описание нововведений IIS Media Services 4.1

В новом выпуске IIS Media Services были представлены новый REST API для управления точками публикаций и улучшения в производительности для всех сценариев публикации: загрузка видео по требованию и живое вещание. Функции REST API предлагают следующие возможности:

  • создание и удаление точек публикации;
  • перечисление всех точек публикации веб-сайта;
  • запрос и обновление настроек точек публикации и их состояния;
  • запрос статистики точки публикации.

Полное описание API можно найти на специальной странице MSDN.

Expression Encoder 4 SP2, который был выпущен неделей ранее IIS Media Services 4.1 уже поддерживает REST API предлагаемый IIS Media Services, так что вы можете легко управлять точками публикации напрямую из Expression Encoder.

Теперь с помощью проекта Live Broadcasting Project вы можете:

  • создать новую точку публикации
    • после указания точки публикации, Expression Encoder теперб предлагает новую кнопку “Create”, которая позволяет легко создать новую точку публикации (рисунок ниже)
  • перезапустить точки публикации как автоматически, так и вручную

    • после подсоединения к существующей точке публикации, вы можете обнаружить новую кнопку “Restart” и пункт “Restart Automaticly” для перезапуска
  • дублировать настройки публикации одной точки для другой точки

    Этот функционал Expression Encoder предлагает значительно больше возможностей, чем просто дублирование настроек от одной точки к другой. После того, как вы подсоединитесь к IIS Media Services 4.1, пункт “Copy Settings” будет содержать список с полным перечислением всех доступных точек публикации, ассоциированных с сайтом. Когда вы наведете мышью на выбранную точку, вы можете получить основные данные о точке публикации.
  • оценить статус каждой отдельной точки публикации
    • на рисунке ниже показана точка публикации со статусом “Starting”

Обратите внимание, что новые функции и возможность использования нового REST API IIS Media Services 4.1 доступны только в Pro-версии Expression Encoder 4.

Все вызовы к REST-сервисам аутентифицируются через методы аутентификации, которые поддерживает IIS. Так что для начала использования, вам необходимо включить в IIS необходимые методы аутентификации. Может быть использован любой метод аутентификации IIS, кроме анонимного доступа.

Самый простой способ тестирования возможностей нового REST API – это использовать бесплатный инструмент веб-отладки Fiddler вместе с пользовательским интерфейсом Expression Encoder. Код ниже показывает пример данных отправленных в ответ на запрос HTTP GET http://akucer-server/the first concert.isml/settings из Expression Encoder. Этот запрос возвращает настройки для первой точки публикации “concert.isml”.

<?xml version="1.0" encoding="UTF-8"?> 
<entry xmlns="http://www.w3.org/2005/Atom"> 
  <id>http://akucer-server:80/the first concert.isml/settings</id> 
  <author> 
    <name /> 
  </author> 
  <updated>2011-11-09T03:19:30Z</updated> 
  <link href="http://akucer-server/the first concert.isml/settings" rel="self" type="application/atom+xml" title="Settings" /> 
  <link href="http://akucer-server/the first concert.isml/state" rel="related" type="application/atom+xml" title="State" /> 
  <link href="http://akucer-server/the first concert.isml/statistics" rel="related" type="application/atom+xml" title="Statistics" /> 
  <content type="application/xml"> 
    <SmoothStreaming xmlns="https://schemas.microsoft.com/iis/media/2011/03/streaming/management"> 
      <Settings> 
        <Title /> 
        <SourceType>Push</SourceType> 
        <AutoStart>false</AutoStart> 
        <AutoRestartOnEncoderReconnect>false</AutoRestartOnEncoderReconnect> 
        <LookAheadChunks>2</LookAheadChunks> 
        <Archive enabled="true"> 
          <Path useEventIdOnPath="false" /> 
        </Archive> 
        <ClientConnections enabled="true"> 
          <ClientManifestVersion>2.0</ClientManifestVersion> 
        </ClientConnections> 
        <ServerConnections enabled="true"> 
          <SendEndOfStreamOnStop>true</SendEndOfStreamOnStop> 
        </ServerConnections> 
        <Modules> 
          <Module id="hls" type="sink" name="HTTP Live Streaming"> 
            <HLS> 
              <SegmentLength>PT10S</SegmentLength> 
              <MaxBitRate>1600000</MaxBitRate> 
              <AllowCaching>false</AllowCaching> 
              <BackwardCompatible>true</BackwardCompatible> 
              <IncludeCodecs>false</IncludeCodecs> 
              <Encryption enabled="false" /> 
            </HLS> 
          </Module> 
        </Modules> 
      </Settings> 
    </SmoothStreaming> 
  </content> 
</entry>

Обратите внимание на дополнительные URL, которые возвращаются в ответе на запрос. Они могут использоваться для получения состояния или получения статистики точки публикации. С помощью функции построения запросов Fiddler вы можете легко сформировать HTTP-запрос, который использует REST API. На примере ниже Fiddler используется для отправки запроса HTTP GET для перечисления всех точек публикации на сайте.

Перед выполнением этого запрос убедитесь, что в IIS включена поддержка аутентификации Windows Authentication и функция “Automatically Authenticate” включена в настройках Fiddler.

В ответ на этот запрос мы можем получить перечисление всех точек публикации на сайте:

<?xml version="1.0" encoding="UTF-8"?> 
<feed xmlns="http://www.w3.org/2005/Atom"> 
  <author> 
    <name></name> 
  </author> 
  <title>Publishing Point Collection</title> 
  <updated>2011-11-09T04:13:21.505Z</updated> 
  <entry> 
    <id>http://akucer-server:80/new publishing point.isml/settings</id> 
    <updated>2011-11-09T02:57:17Z</updated> 
    <link href="http://akucer-server/new publishing point.isml/settings" rel="related" type="application/atom+xml" title="Settings" /> 
    <link href="http://akucer-server/new publishing point.isml/state" rel="related" type="application/atom+xml" title="State" /> 
    <link href="http://akucer-server/new publishing point.isml/statistics" rel="related" type="application/atom+xml" title="Statistics" /> 
  </entry> 
  <entry> 
    <id>http://akucer-server:80/the final concert.isml/settings</id> 
    <updated>2011-11-09T02:23:03Z</updated> 
    <link href="http://akucer-server/the final concert.isml/settings" rel="related" type="application/atom+xml" title="Settings" /> 
    <link href="http://akucer-server/the final concert.isml/state" rel="related" type="application/atom+xml" title="State" /> 
    <link href="http://akucer-server/the final concert.isml/statistics" rel="related" type="application/atom+xml" title="Statistics" /> 
  </entry> 
  <entry> 
    <id>http://akucer-server:80/the first concert.isml/settings</id> 
    <updated>2011-11-09T03:19:30Z</updated> 
    <link href="http://akucer-server/the first concert.isml/settings" rel="related" type="application/atom+xml" title="Settings" /> 
    <link href="http://akucer-server/the first concert.isml/state" rel="related" type="application/atom+xml" title="State" /> 
    <link href="http://akucer-server/the first concert.isml/statistics" rel="related" type="application/atom+xml" title="Statistics" /> 
  </entry> 
  <entry> 
    <id>http://akucer-server:80/the second concert.isml/settings</id> 
    <updated>2011-11-09T02:22:44Z</updated> 
    <link href="http://akucer-server/the second concert.isml/settings" rel="related" type="application/atom+xml" title="Settings" /> 
    <link href="http://akucer-server/the second concert.isml/state" rel="related" type="application/atom+xml" title="State" /> 
    <link href="http://akucer-server/the second concert.isml/statistics" rel="related" type="application/atom+xml" title="Statistics" /> 
  </entry> 
</feed>

Это перевод оригинальной статьиIIS Media Services 4.1 released