В этой статье мы поговорим про использование сертифицированного аудио-кодека Dolby Digital Plus для кодирования медиа-данных по запросу в облаке Windows Azure Media Services.
Windows Azure Media Encoder
Windows Azure Media Encoder (WAME) — это движок, который содержит набор предустановленных, сертифицированных и готовых к работе кодеков для кодирования видео и аудио контента в облачном сервисе Windows Azure Media Services. Недавно этот движок получил большое обновление, основной новинкой которого стала поддержка сертифицированного кодека Dolby Digital Plus. Кроме того, третья версия движка научилась генерировать сразу несколько выходных файлов с разными аудио-форматами в рамках одной задачи кодирования. Были добавлены и некоторые другие функции.
Dolby Digital Plus
Dolby Digital Plus (Enhanced AC-3, E-AC-3) — это подвинутый аудио-кодек для кодирования многоканального объемного звука разработанный компанией Dolby Laboratories, Inc. Отличительной особенностью кодека является большое число поддерживаемых аудио-каналов, оптимизация и низкие требования к ширине каналов связи.
Поддержка в Media Services
Платформа Windows Azure Media Services предлагает встроенный сертифицированный кодек Dolby Digital Plus для кодирования стерео и шестиканального звука. Пользователи могут использовать облачную платформу для построения решений работающих с этим кодеком.
Поддержка кодирования в формат Dolby Digital Plus осуществляется через новый профиль конфигурирования <DolbyDigitalPlusAudioProfile>. Давайте подробнее рассмотрим работу с кодеками в Windows Azure Media Services.
Работа с кодеками
Для создания в облаке задачи кодирования медиа-контента пользователь должен подготовить XML-файл конфигурации, указав требуемые параметры кодирования и перечислив необходимые профили кодеков.
<AudioProfile Condition="SourceContainsAudio">
<DolbyDigitalPlusAudioProfile
Codec="DolbyDigitalPlus"
EncoderMode="DolbyDigitalPlus"
AudioCodingMode="Mode20"
LFEOn="False"
SamplesPerSecond="48000"
DialogNormalization="-31">
<Bitrate>
<ConstantBitrate
Bitrate="128"
IsTwoPass="False"
BufferWindow="00:00:00" />
</Bitrate>
</DolbyDigitalPlusAudioProfile>
</AudioProfile>
На картинке вы можете видеть полностью сконфигурированные настройки для профиля <DolbyDigitalPlusAudioProfile>, который позволяет перекодировать контент с новым кодеком.
По указанным ссылкам вы можете найти готовые XML-файлы настроек для кодирования в стерео- и мультиканальных режимах Dolby Digital Plus.
Давайте рассмотрим их применение в коде демонстрационного проекта.
Работа с кодеками — код
IJob job = context.Jobs.Create("Encode with Dolby");
IMediaProcessor mediaProcessor = context.MediaProcessors
.Where(x => x.Name == "Windows Azure Media Encoder")
.ToList().OrderBy(x => new Version(x.Version)).LastOrDefault();
На первом шаге мы создаем экземпляры задания для конвертирования контента и медиа-процессора для выполнения этого задания.
var SSConfig = File.ReadAllText(@"C:tempdolby.xml");
Затем мы получаем текст файла конфигурации.
ITask encodeTask = job.Tasks.AddNew("Encoding to Dolby", mediaProcessor, SSConfig, TaskOptions.None);
encodeTask.InputAssets.Add(inputAsset);
encodeTask.OutputAssets.AddNew("Video with Dolby", AssetCreationOptions.None);
Следующим шагом мы создаем для задания конвертирования новый экземпляр задачи кодирования, указывая процессор и конфигурацию кодирования. В задачу кодирования добавляем входной и задаем выходной файлы.
job.StateChanged += Job_StateChanged;
job.Submit();
job.GetExecutionProgressTask(CancellationToken.None).Wait();
Последним шагом мы добавляем обработчик задания для получения уведомлений о прогрессе обработки контента в облаке и отправляем задание на выполнение.
Это все. Как вы можете убедиться, работать с медиа-платформой Windows Azure Media Services очень просто. Напомню, что набор инструментов SDK для работы с платформой есть как для платформы .NET так и для Java.
Доступ к результатам
Доступ к результатам задания кодирования контента может быть произведен как из кода, так и из портала управления. Все данные сохраняются в хранилище блобов Windows Azure Storage.
Поддержка кодирования нескольких аудио-форматов в одной задаче
Еще одной новинкой в Windows Azure Media Services стала возможность кодировать контент в одной задачи сразу в несколько отдельных форматов аудио.
<Preset Version="5.0">
<Job />
<MediaFile
DeinterlaceMode="AutoPixelAdaptive"
ResizeQuality="Super"
NormalizeAudio="True"
AudioGainLevel="1"
VideoResizeMode="Stretch">
<OutputFormat>
<MP4OutputFormat
StreamCompatibility="Standard">
<AudioProfile Condition="SourceContainsAudio">
<DolbyDigitalPlusAudioProfile>
<!-- attributes not shown for brevity -->
</DolbyDigitalPlusAudioProfile>
</AudioProfile>
</MP4OutputFormat>
</OutputFormat>
</MediaFile>
</Preset>
Для этой цели в файле конфигурации добавлены новые разделы <presets> и <preset>, которые позволяют задать перечисление требуемых форматов.
Вы можете найти пример подобной конфигурации по указанной ссылке.
Другие обновления WAME 3.0
Кроме основных нововведений в новый движок WAME 3.0, были представлены и некоторые другие менее существенные функции. Среди них:
- Автоматическая генерация дополнительного файла метаинформации после кодирования;
- Новый формат и соглашение о именовании выходных файлов;
- Улучшения отчета об ошибках с более понятными сообщениями;
- Кроме того, было объявлено о том, что предыдущая версия WAME 2.3 будет признана устаревшей через несколько месяцев. При этом сохраняется обратная совместимость между версиями.
Windows Azure Media Services
Стоит напомнить о том, что такое Windows Azure Media Services.
Windows Azure Media Services — это медиа-платформа с готовой инфраструктурой для решения задач потребления, хранения, защиты, обработки и конвертации, распространения контента на все устройства и платформы.
Media Services — это платформа, которая содержит все необходимое для построения своих собственных медиа-решений без каких-либо затрат на собственную инфраструктуру, ее настройку и сопровождение.
Media Services позволяет организовать как решения для доступа к видео по требованию (Video on Demand) так и решения с живыми трансляциями. Живые трансляции были опробованы в ряде крупнейших мероприятий, в том числе в ходе Олимпиады в Лондоне, когда трансляция для миллионов зрителей в десятках стран велась через платформу Windows Azure Media Services.
Подробности о платформе можно найти по указанной ссылке.
Не пропустите
Не пропустите предыдущие анонсы обновлений платформы Windows Azure, которые выходят практически каждую неделю:
- Анонс сервиса мониторинга и оповещений Windows Azure Alerts
- Анонс функции автоматического масштабирования в Windows Azure
- Анонсы и коммерческая доступность сервиса Windows Azure Web Sites;
- Доступность Windows Server 2012 R2, SQL Server 2014 и Visual Studio 2013 Ultimate в галерее образов виртуальных машин Windows Azure
- Облачный бэкенд как сервис для Windows, iOS, Windows Phone, Android и мобильных HTML5-приложений
- и другие в блоге…
Полезные ссылки
Ниже вы найдете ссылки на ресурсы, которые помогут вам в использовании облачной платформы Microsoft:
- Бесплатный 30-дневный триал Windows Azure;
- Бесплатный доступ к ресурсам Windows Azure для стартапов, партнеров, преподавателей, подписчиков MSDN;
- Центр разработки Windows Azure (azurehub.ru) – сценарии, руководства, примеры, рекомендации по выбору сервисов и разработке на Windows Azure;
- Новостной канал Windows Azure TV на русском языке на YouTube;
- Последние новости Windows Azure — Twitter.com/windowsazure_ru;
- http://wazurr.ru – агрегатор контента по Windows Azure на русском и английских языках.
А если вы уже разрабатываете на Windows Azure или хотите найти разработчиков своего сервиса, посетите сервис appprofessionals.ru.
Мы будем рады ответить на ваши вопросы по адресу azurerus@microsoft.com. И ждем вас в Сообществе Windows Azure на Facebook. Здесь вы найдете экспертов (не забудьте задать им вопросы), фотографии и много-много новостей.
Видео-записи докладов Windows Azure Summit и видео-интервью, которые были проведены во время большой облачной конференции. Доклады конференции DevCon 2013 на тему Windows Azure вы можете найти тут.
Автор: XaocCPS