Кодируем контент в Dolby Digital Plus сертифицированным кодеком в облаке по запросу

В этой статье мы поговорим про использование сертифицированного аудио-кодека Dolby Digital Plus для кодирования медиа-данных по запросу в облаке Microsoft Azure Media Services.

Microsoft Azure Media Encoder

Microsoft Azure Media Encoder (WAME) — это движок, который содержит набор предустановленных, сертифицированных и готовых к работе кодеков для кодирования видео и аудио контента в облачном сервисе Microsoft Azure Media Services. Недавно этот движок получил большое обновление, основной новинкой которого стала поддержка сертифицированного кодека Dolby Digital Plus. Кроме того, третья версия движка научилась генерировать сразу несколько выходных файлов с разными аудио-форматами в рамках одной задачи кодирования. Были добавлены и некоторые другие функции.

Dolby Digital Plus




Dolby Digital Plus (Enhanced AC-3, E-AC-3) — это подвинутый аудио-кодек для кодирования многоканального объемного звука разработанный компанией Dolby Laboratories, Inc. Отличительной особенностью кодека является большое число поддерживаемых аудио-каналов, оптимизация и низкие требования к ширине каналов связи.

Поддержка в Media Services

Платформа Microsoft Azure Media Services предлагает встроенный сертифицированный кодек Dolby Digital Plus для кодирования стерео и шестиканального звука. Пользователи могут использовать облачную платформу для построения решений работающих с этим кодеком.

Поддержка кодирования в формат Dolby Digital Plus осуществляется через новый профиль конфигурирования <DolbyDigitalPlusAudioProfile>. Давайте подробнее рассмотрим работу с кодеками в Microsoft 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>

На картинке вы можете видеть полностью сконфигурированные настройки для профиля, который позволяет перекодировать контент с новым кодеком.

По указанным ссылкам вы можете найти готовые XML-файлы настроек для кодирования встерео- и мультиканальных режимах Dolby Digital Plus.

Давайте рассмотрим их применение в коде демонстрационного проекта.

Работа с кодеками — код

IJob job = context.Jobs.Create("Encode with Dolby"); IMediaProcessor mediaProcessor = context.MediaProcessors .Where(x => x.Name == "Microsoft Azure Media Encoder") .ToList().OrderBy(x => new Version(x.Version)).LastOrDefault();

На первом шаге мы создаем экземпляры задания для конвертирования контента и медиа-процессора для выполнения этого задания.

var SSConfig = File.ReadAllText(@"C:\temp\dolby.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();

Последним шагом мы добавляем обработчик задания для получения уведомлений о прогрессе обработки контента в облаке и отправляем задание на выполнение.

Это все. Как вы можете убедиться, работать с медиа-платформой Microsoft Azure Media Services очень просто. Напомню, что набор инструментов SDK для работы с платформой есть как для платформы .NET так и для Java.

Доступ к результатам




Доступ к результатам задания кодирования контента может быть произведен как из кода, так и из портала управления. Все данные сохраняются в хранилище блобов Microsoft Azure Storage.

Поддержка кодирования нескольких аудио-форматов в одной задаче

Еще одной новинкой в Microsoft 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>

Для этой цели в файле конфигурации добавлены новые разделы и , которые позволяют задать перечисление требуемых форматов.

Вы можете найти пример подобной конфигурации по указанной ссылке.

Другие обновления WAME 3.0

Кроме основных нововведений в новый движок WAME 3.0, были представлены и некоторые другие менее существенные функции. Среди них:

  • Автоматическая генерация дополнительного файла метаинформации после кодирования;
  • Новый формат и соглашение о именовании выходных файлов;
  • Улучшения отчета об ошибках с более понятными сообщениями;
  • Кроме того, было объявлено о том, что предыдущая версия WAME 2.3 будет признана устаревшей через несколько месяцев. При этом сохраняется обратная совместимость между версиями.


Microsoft Azure Media Services

Стоит напомнить о том, что такое Microsoft Azure Media Services.

Microsoft Azure Media Services — это медиа-платформа с готовой инфраструктурой для решения задач потребления, хранения, защиты, обработки и конвертации, распространения контента на все устройства и платформы. 

Media Services — это платформа, которая содержит все необходимое для построения своих собственных медиа-решений без каких-либо затрат на собственную инфраструктуру, ее настройку и сопровождение. 

Media Services позволяет организовать как решения для доступа к видео по требованию (Video on Demand) так и решения с живыми трансляциями. Живые трансляции были опробованы в ряде крупнейших мероприятий, в том числе в ходе Олимпиады в Лондоне, когда трансляция для миллионов зрителей в десятках стран велась через платформу Microsoft Azure Media Services.

Подробности о платформе можно найти по указанной ссылке.

Не пропустите

Не пропустите предыдущие анонсы обновлений платформы Microsoft Azure, которые выходят практически каждую неделю: 

  • Анонс сервиса мониторинга и оповещений Microsoft Azure Alerts
  • Анонс функции автоматического масштабирования в Microsoft Azure
  • Анонсы и коммерческая доступность сервиса Microsoft Azure Web Sites;
  • Доступность Windows Server 2012 R2, SQL Server 2014 и Visual Studio 2013 Ultimate в галерее образов виртуальных машин Microsoft Azure
  • Облачный бэкенд как сервис для Windows, iOS, Windows Phone, Android и мобильных HTML5-приложений
  • и другие в блоге


Полезные ссылки

Ниже вы найдете ссылки на ресурсы, которые помогут вам в использовании облачной платформы Microsoft: 


А если вы уже разрабатываете на Microsoft Azure  или хотите найти разработчиков своего сервиса, посетите сервис appprofessionals.ru

Мы будем рады ответить на ваши  вопросы по адресу azurerus@microsoft.com. И ждем вас вСообществе Microsoft Azure на Facebook. Здесь вы найдете экспертов (не забудьте задать им вопросы), фотографии и много-много новостей. 

Видео-записи докладов Microsoft Azure Summit и видео-интервью, которые были проведены во время большой облачной конференции. Доклады конференции DevCon 2013 на тему Microsoft Azure вы можете найти тут.

Автор статьи: Владимир Юнев.