SDev.Pro - разработка на заказ

http://sdev.pro - это:

1) Разработка программного обеспечения

Мы используем платформы ASP.NET MVC, LAMP, Atmel, Android, iOS, DirectShow и базы данных MS SQL, Oracle, PostgreSQL, а также облака на MS Azure и Amazon AWS для реализации любых Ваших идей.

2)Внедрение программного обеспечения

Мы предлагаем настройку и доработку решений на базе систем электронного документооборота MS SharePoint Server, геоинформационных систем на GeoServer, систем отчетности на MS SQL Reporting Services, а также облачных решений на MS Office 365.

http://sdev.pro

Jul 29, 2009

Expression Encoder 3.0 SDK: Склеивание медиафайлов

Добрались наконец-то руки до Microsoft Expression Encoder 3.0. Подробнее о продукте можете узнать по ссылке http://blogs.msdn.com/kichinsky/archive/2009/07/23/9846410.aspx .

Советую обратить внимание на .NET API. Он прост и удобен. Приведу небольшой локализованный примерчик из SDK для наглядности:

using System;
using Microsoft.Expression.Encoder;
using Microsoft.Expression.Encoder.Profiles;

namespace MergeMedia
{
/// <summary>
/// Пример последовательного склеивания нескольких медиафайов в один
/// </summary>
class Program
{
/// <summary>
/// Точка входа
/// </summary>
/// <param name="args">аргументы командной строки</param>
static void Main(string[] args)
{
if (args.Length < 2)
{
// Используйте командную строку для задания имен входных медиафайлов
Console.WriteLine("Использование: MergeMedia <MediaFile> <MediaFile> ...");
return;
}

// Создание job и MediaItem для выходного медиафайла
Job job = new Job();
MediaItem mediaItem = new MediaItem(args[0])
{
OutputFormat = new WindowsMediaOutputFormat()
};

// Задание профилей

// Использование видеопрофиля источника, если это возможно
mediaItem.OutputFormat.VideoProfile =
mediaItem.SourceVideoProfile ??
new AdvancedVC1VideoProfile
{
Size = mediaItem.MainMediaFile.VideoStreams[0].VideoSize,
Bitrate = new ConstantBitrate(1000)
};

// Использование аудиопрофиля источника, если это возможно
mediaItem.OutputFormat.AudioProfile =
mediaItem.SourceAudioProfile ?? new WmaAudioProfile();

// Добавление источников
job.MediaItems.Add(mediaItem);
for (int i=1; i<args.Length; i++)
{
mediaItem.Sources.Add(new Source(args[i]));
}

// Установка callback-функции отображения прогресса
job.EncodeProgress
+= OnProgress;

// Задание выходной директории.
job.OutputDirectory = @"C:\output";

// Кодировка
job.Encode();
}

/// <summary>
/// Сallback-функция прогресса
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
static void OnProgress(object sender, EncodeProgressEventArgs e)
{
Console.WriteLine(e.Progress);
}
}
}



No comments:

Post a Comment