Как создать мультимедиа файл

Обновлено: 02.07.2024

Еще несколько лет назад для создания привлекательной презентации или любого другого вида мультимедийного контента требовались опытные дизайнеры. Сначала вы должны были объяснить свою идею дизайнеру, который затем провел бы часы в изоляции, используя сложные инструменты и программное обеспечение, чтобы превратить их в реальность. Однако в большинстве случаев вы все равно останетесь недовольны конечным продуктом.

Тем не менее, это больше не так благодаря различным онлайн-инструментам, свободно доступным в Интернете. Используя эти инструменты, вы можете создавать мультимедийный контент за считанные минуты. Вам больше не нужно объяснять свои мысли дизайнеру, который все еще предпочитает следовать его собственным идеям. Также нет необходимости в каких-либо сложных приложениях и предварительных знаниях по проектированию.

В каждой нише и области вы всегда можете найти инструменты, которые упростят вашу работу; так же, как у нас есть CMS, такие как WordPress и Drupal чтобы было легко создавать и управлять блогами, такими инструментами, как IMCreator и Простой веб-контент для создания HTML-сайтов и инструментов, таких как Photoshop Для разработки практически всего, есть также авторитетные инструменты для создания мультимедийного контента.

Все, что вам нужно, это подключение к интернету и творческий подход. Эти простые инструменты перетаскивания помогут вам создавать удивительный мультимедийный контент с минимальными трудностями.

Вот список таких инструментов 9, которые вы можете мгновенно воплотить в жизнь.

1. EWC Ведущий

EWC Ведущий

Без тени сомнения, EWC Presenter является одним из лучших инструментов для создания богатого мультимедийного контента. Это бесплатный онлайн-инструмент с удивительной функциональностью и буквально бесконечным списком функций. Вы можете создавать интерактивные мультимедийные презентации, инфографику, анимацию и веб-страницы, используя этот комплексный инструмент проектирования.

Там нет необходимости для какого-либо кодирования или проектирования знаний либо. EWC Presenter предоставляет вам удобный интерфейс, который требует только перетаскивания объектов, форм и эффектов в нужное вам место.

Он предлагает пользователям широкий спектр шаблонов дизайна, которые охватывают все основные категории пользователей, такие как бизнес, образование, технологии и творческие работы. Поскольку EWC Presenter - это бесплатный онлайн-мультимедийный инструмент, вам не нужно загружать его на свой компьютер. Он просто загружается в ваш веб-браузер и работает так же гладко, как и любое программное обеспечение для настольного компьютера.

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

2. Piktochart

Piktochart

Pitochart - одно из лучших онлайн-приложений для создания мультимедийного контента. Он предлагает своим пользователям все необходимые функции, опции и инструменты, необходимые для создания привлекательных и привлекательных мультимедийных презентаций и инфографики. Вы можете выбирать из множества тем и шаблонов и можете перетаскивать длинный список объектов, чтобы обогатить свой мультимедийный контент. Добавьте изображения и видео в рецепт, и к вашим услугам полное мультимедийное решение.

3. Easel.ly

Easelly

Создавайте красивые презентации с Easel.ly и поднимайте рассказы на новый уровень. Разработанный специально для детей и учителей, Easel.ly предоставляет вам множество привлекательных тем и шаблонов на выбор, для создания увлекательных и интерактивных мультимедийных презентаций и инфографики. Он имеет довольно простой пользовательский интерфейс, который позволяет даже обычным пользователям создавать свой контент без сбоев.

4. Звуковые слайды

Звуковые слайды

Sound Slides поможет вам рассказать истории по-другому. Вы можете использовать комбинацию привлекательных изображений и фоновых звуков, чтобы создавать удивительные истории. Презентации, созданные с помощью этого инструмента, можно просматривать также на всех основных мобильных платформах. У вас также есть возможность сохранять свои презентации в виде видео и публиковать их непосредственно на таких сайтах, как Youtube и Vimeo. Дружественный пользовательский интерфейс Sound Slides гарантирует, что вы не столкнетесь с какими-либо проблемами при создании мультимедийных слайдов. Все, что вам нужно сделать, это объединить ваши изображения со звуковыми файлами и позволить Sound Slides сделать все остальное за вас.

5. Prezi

Prezi

Prezi легко можно назвать одним из пионеров современных мультимедийных презентаций. Этот захватывающий инструмент создает очень привлекательные презентации, которые привлекают внимание аудитории. Это очень простое и удобное для пользователя приложение, которое не требует от своих пользователей каких-либо предварительных навыков проектирования или программирования. Вы можете интегрировать видео, изображения и всевозможный мультимедийный контент в свои презентации с помощью Prezi. Это также дает вам возможность импортировать ваши презентации PowerPoint, но настоящее удовольствие от использования этого инструмента заключается в создании презентаций с нуля.

6. Empressr

Empressr

Загрузите свои изображения и видео для создания мультимедийных презентаций с помощью Empressr. Он не только предлагает широкий спектр функций редактирования, но также позволяет импортировать контент с веб-сайтов, таких как Flickr, для дальнейшего улучшения ваших презентаций. Вы также можете поделиться готовыми презентациями по электронной почте или добавить их на свой сайт или в блоги. Это очень хороший инструмент для корпоративных презентаций.

7. AmCharts

amCharts

Этот великолепный онлайн-инструмент создает высоко интерактивные диаграммы данных и рисунки, которые можно встраивать в веб-страницы как в виде статических диаграмм, так и в режиме реального времени. Он предлагает широкий спектр диаграмм, графиков, рисунков и методов представления данных, включая последовательные диаграммы, круговые / кольцевые, радиолокационные / полярные и xy / точечные / пузырьковые диаграммы, которые можно использовать при разработке привлекательных презентаций или привлекательной инфографики. Это бесплатный онлайн-инструмент с очень удобным интерфейсом, который идеально подходит для любителей.

8. Я представляю

Я представляю

iPresent - это еще один инструмент для разработки мультимедийных презентаций, который позволяет добавлять изображения или видео в презентации, чтобы сделать их привлекательными для аудитории. Вы также можете импортировать существующие презентации PowerPoint и изменять их, используя широкий спектр параметров редактирования. Презентации могут быть опубликованы в виде HTML-страниц и могут быть встроены в ваш сайт и блог.

9. Cacoo

Cacoo

Cacoo помогает создавать привлекательные диаграммы, используя очень удобный пользовательский интерфейс и простые в использовании инструменты для рисования. Вы можете использовать этот онлайн-инструмент для создания нескольких диаграмм, таких как карты сайта, каркасы и сетевые диаграммы. Все основные функции и услуги этого инструмента бесплатны и предоставляют пользователю мощный пакет творческих возможностей. Однако платная версия отличается еще большим разнообразием инструментов и опций. Приложение также дает вам возможность поделиться своей работой с несколькими пользователями, чтобы улучшить командную работу и совместную работу. Вы можете контролировать права доступа пользователей вdiviдвойных пользователей и предоставьте различные уровни доступа к вашей работе в вашей команде.

Этот пост написан Джозефом, который пишет для HindSite Interactive, топ компания веб-дизайна и веб-разработки.

В данной статье описывается, как использовать API-интерфейсы в пространстве имен Windows.Media.Editing для быстрой разработки приложений, которые дают пользователям возможность создавать композиции мультимедиа из исходных аудио- и видеофайлов. Компоненты платформы включают возможность программного соединения нескольких видеоклипов, добавление фото- и видеоналожений, добавление фоновых аудиодорожек и применение звуковых и видеоэффектов. Созданные композиции мультимедиа можно преобразовать в неструктурируемый файл мультимедиа для воспроизведения или совместного использования. Кроме того, их можно сериализовать на диск или десериализовать с него, что позволяет пользователю загружать и изменять ранее созданные композиции. Все эти функции предоставляются в интерфейсе среды выполнения Windows, который прост в использовании, а также снижает объем и сложность кода, требуемого для выполнения этих задач, по сравнению с низкоуровневым API-интерфейсом Microsoft Media Foundation .

Создание композиции мультимедиа

Класс MediaComposition — это контейнер для всех клипов мультимедиа, входящих в композицию, который отвечает за окончательную композицию, загрузку с диска и сохранение на диск и предоставляет возможность выполнения предварительной потоковой передачи композиции для ее просмотра в пользовательском интерфейсе. Чтобы использовать MediaComposition в своем приложении, добавьте пространство имен Windows.Media.Editing, а также Windows.Media.Core, предоставляющее связанные API-интерфейсы, которые могут вам понадобиться.

Получить доступ к объекту MediaComposition можно из нескольких точек вашего кода, поэтому вы будете объявлять переменную-член, где он хранится.

Конструктор для MediaComposition не принимает никаких аргументов.

Добавление в композицию клипов мультимедиа

Обычно композиции мультимедиа содержат один или несколько видеоклипов. Вы можете использовать FileOpenPicker, чтобы позволить пользователям выбирать видеофайл. После выбора файла создайте новый объект MediaClip, в котором будет содержаться видеоклип, вызвав MediaClip.CreateFromFileAsync. Затем добавьте клип в список Clips объекта MediaComposition.

Клипы мультимедиа появятся в MediaComposition в том же порядке, в каком они представлены в списке Clips.

MediaClip можно включить в композицию только один раз. При попытке добавить MediaClip, который уже используется в композиции, произойдет ошибка. Для того чтобы использовать видеоклип в композиции несколько раз, вызовите метод Clone, позволяющий создать объект MediaClip, который затем можно добавить в композицию.

Универсальные приложения для Windows не имеют прав доступ ко всей файловой системе. Чтобы сохранить разрешения на доступ к файлу, свойство FutureAccessList класса StorageApplicationPermissions позволяет вашему приложению хранить запись файла, который был выбран пользователем. Максимальное число записей в FutureAccessList равно 1000, поэтому вашему приложению необходимо управлять этим списком, чтобы убедиться, что он не переполнен. Это особенно важно, если вы планируете поддерживать загрузку и изменение ранее созданных композиций.

MediaComposition поддерживает видеоклипы в формате MP4.

Если видеофайл содержит несколько внедренных аудиодорожек, вы можете выбрать, какая из них должна использоваться в композиции, настроив свойство SelectedEmbeddedAudioTrackIndex.

Создайте MediaClip с одноцветным заполнением всего кадра, вызвав метод CreateFromColor и указав цвет и длительность клипа.

Создайте MediaClip на основе файла изображения, вызвав метод CreateFromImageFileAsync и указав файл изображения и длительность клипа.

Создайте MediaClip на основе IDirect3DSurface, вызвав CreateFromSurface и указав поверхность и длительность клипа.

Предварительный просмотр композиции в MediaElement

Чтобы пользователь мог просматривать композицию мультимедиа, добавьте класс MediaPlayerElement в XAML-файл, определяющий ваш пользовательский интерфейс.

Вызовите метод GeneratePreviewMediaStreamSource объекта MediaComposition для создания MediaStreamSource для композиции. Создайте объект MediaSource, вызвав фабричный метод CreateFromMediaStreamSource, и назначьте его свойству Source элемента MediaPlayerElement. Теперь композицию можно просматривать в пользовательском интерфейсе.

Перед вызовом GeneratePreviewMediaStreamSource член MediaComposition должен содержать по крайней мере один клип мультимедиа, иначе возвращенный объект будет пустым.

Временная шкала MediaElement, отражающая изменения в композиции, автоматически не обновляется. Рекомендуется вызывать оба женератепревиевмедиастреамсаурце и устанавливать свойство источника медиаплайерелемент каждый раз при внесении набора изменений в композицию и необходимости обновлять пользовательский интерфейс.

Когда пользователь покидает страницу, рекомендуется присвоить объекту MediaStreamSource и свойству Source элемента MediaPlayerElement значение NULL, чтобы освободить связанные ресурсы.

Преобразование композиции в видеофайл

Чтобы преобразовать композицию мультимедиа в неструктурированный видеофайл, которым можно поделиться и который можно просматривать на других устройствах, необходимо использовать API-интерфейсы из пространства имен Windows.Media.Transcoding. Чтобы обновить интерфейс пользователя в ходе выполнения асинхронной операции, вам понадобятся API-интерфейсы из пространства имен Windows.UI.Core.

После того как пользователь выбрал выходной файл с помощью FileSavePicker, преобразуйте композицию в этот файл, вызвав для объекта MediaComposition метод RenderToFileAsync. Остальная часть кода в следующем примере просто следует шаблону обработки AsyncOperationWithProgress.

    позволяет указать приоритет скорости перекодировки в зависимости от точности обрезки соседних клипов мультимедиа. Fast приводит к более быстрой перекодировке с меньшей точностью обрезки, Precise — к более медленной перекодировке с более точной обрезкой.

Обрезка видеоклипа

Обрезать длительность видеоклипа в композиции можно за счет настройки объекта MediaClip для свойства TrimTimeFromStart или TrimTimeFromEnd, либо для обоих.

  • Пользователь может указать значения точек начала и конца обрезки в любом пользовательском интерфейсе. В примере, приведенном выше, используется свойство Position члена MediaPlaybackSession, связанного с MediaPlayerElement для определения объекта MediaClip, воспроизводимого в композиции в текущей позиции с помощью проверки StartTimeInComposition и EndTimeInComposition. Затем свойства Position и StartTimeInComposition используются повторно для вычисления времени обрезки с начала клипа. FirstOrDefault — это расширенный метод из пространства имен System.Linq, который упрощает код для операции выбора элементов из списка.
  • Свойство OriginalDuration объекта MediaClip позволяет узнать длительность клипа мультимедиа без применения обрезки.
  • Свойство TrimmedDuration позволяет узнать длительность клипа мультимедиа после применения обрезки.
  • Указание значения обрезки, которое превышает исходную длительность клипа, не приводит к возникновению ошибки. Однако если композиция содержит только один клип, который обрезается до нулевой длины вследствие того, что указано большое значение обрезки, последующий вызов GeneratePreviewMediaStreamSource вернет значение NULL, как если бы композиция не содержала ни одного клипа.

Добавление фоновой аудиодорожки в композицию

Чтобы добавить в композицию фоновую дорожку, загрузите аудиофайл, а затем создайте объект BackgroundAudioTrack, вызвав фабричный метод BackgroundAudioTrack.CreateFromFileAsync. Далее добавьте BackgroundAudioTrack в свойство BackgroundAudioTracks композиции.

MediaComposition поддерживает фоновые аудиодорожки в формате MP3, WAV и FLAC.

Как и в случае с видеофайлом, для сохранения доступа к файлам в композиции следует использовать класс StorageApplicationPermissions.

Как и в MediaClip, BackgroundAudioTrack можно включить в композицию только один раз. При попытке добавить объект BackgroundAudioTrack, который уже используется в композиции, произойдет ошибка. Для того чтобы использовать аудиодорожку в композиции несколько раз, вызовите метод Clone, позволяющий создать объекты MediaClip, которые затем можно добавить в композицию.

По умолчанию фоновые аудиодорожки начинают воспроизведение в начале композиции. Если присутствует несколько фоновых дорожек, все они будут воспроизводиться в начале композиции. Чтобы воспроизведение фоновой аудиодорожки начиналось в другое время, установите желаемое смещение времени в свойстве Delay.

Добавление наложения в композицию

Наложения позволяют размещать в композиции несколько слоев видео поверх друг друга. Композиция может содержать несколько слоев наложения, каждый из которых может включать несколько наложений. Создайте объект MediaOverlay, передав MediaClip в его конструктор. Установите положение и прозрачность наложения, а затем создайте новый объект MediaOverlayLayer и добавьте MediaOverlay в список Overlays. Наконец, добавьте MediaOverlayLayer в список OverlayLayers композиции.

Наложения внутри слоя упорядочены согласно их порядку в списке Overlays, в котором они содержатся. Более высокие индексы внутри списка отображаются поверх более низких индексов. Это справедливо и для уровней наложения внутри композиции. Слой с более высоким индексом в списке OverlayLayers композиции будет отображаться поверх слоев с более низким индексом.

Так как наложения размещаются поверх друг друга, а не воспроизводятся последовательно, по умолчанию все наложения начинают воспроизведение в начале композиции. Чтобы воспроизведение наложений начиналось в другое время, задайте желаемое смещение времени в свойстве Delay.

Добавление эффектов в клип мультимедиа

У каждого объекта MediaClip в композиции есть список аудио- и видеоэффектов, в который можно добавить несколько эффектов. Эффекты должны реализовывать IAudioEffectDefinition и IVideoEffectDefinition, соответственно. Следующий пример использует текущее положение MediaPlayerElement для выбора просматриваемого в настоящее время объекта MediaClip, а затем создает новый экземпляр VideoStabilizationEffectDefinition и добавляет его в список VideoEffectDefinitions клипа мультимедиа.

Сохранение композиции в файл

Композиции мультимедиа можно сериализовать в файл, который позднее можно изменить. Выберите выходной файл, а затем вызовите метод SaveAsync объекта MediaComposition, чтобы сохранить композицию.

Загрузка композиции из файла

Композицию мультимедиа можно десериализовать из файла, чтобы позволить пользователю просмотреть или изменить ее. Выберите файл композиции, а затем вызовите метод LoadAsync объекта MediaComposition, чтобы загрузить композицию.

У вас есть набор фотографий, и вы хотите из них сделать видео? Тогда вам нужны программы для монтажа. Качать или покупать их необязательно. В операционной системе Windows есть встроенный редактор мультимедиа. Также функция преобразования презентации в формат .wmv (Windows Media Video) есть в утилите PowerPoint. Узнайте, как создать видеоролик из фотографий и музыки, а также нарезать из медиафайлы, добавить к ним эффекты, титры или надписи.

Как быстро создать видеоролик

Microsoft PowerPoint

Этот продукт входит в пакет программ Microsoft Office. Обычно используется для оформления слайд-шоу. В приложении есть встроенный инструментарий для работы с диаграммами, графиками, автофигурами, объектами WordArt (надписи с оригинальным дизайном) и SmartArt (красивые схемы). Также можно вставить фото, различные графические элементы, титры, сформировать альбом.

Интерфейс в определённом смысле похож на Word. Для добавления в PowerPoint фотографий, надо сделать следующее:

  1. Запустите утилиту.
  2. Во вкладке «Меню» перейдите в Файл — Создать.
  3. Выберите шаблон для новой презентации. Можно задать пустой документ.
  4. Откройте Вставка — Фотоальбом.
  5. В области «Добавить рисунок из источника» выберите «Файл или диск».
  6. Укажите путь к нужной картинке. Для выбора нескольких фотографий выделите их мышью или кликайте по ним с зажатой клавишей Ctrl. Лучше заранее поместить их в одну папку.
  7. Нажмите на кнопку «Вставить». Потом подтвердите действие, щёлкнув на «Создать». Все изображения окажутся в презентации. Слева будут отображаться страницы, справа — выбранный в данный момент фрагмент. На первом слайде поместится титульный лист с названием альбома и именем пользователя (их надо вписать самостоятельно)
  8. Чтобы поменять местами фото, просто перетащите их мышкой в левом блоке.
  9. Чтобы удалить рисунок, в этом же блоке выделите его и нажмите клавишу «Delete».
  10. Чтобы добавить новый слайд, перейдите в меню «Вставка». Там есть соответствующий пункт и несколько шаблонов на выбор. Чистый лист обозначен, как «Blank».
  11. Для оценки того, как будет выглядеть ролик, нажмите на маленькую кнопку «Показ слайдов» справа внизу. Она находится рядом с масштабом. Там можно включить разные режимы просмотра.
  12. Чтобы изменить интервал между сменой кадров в презентации, откройте меню Показ слайдов — Настройка времени. Появятся картинки и таймер. Просто нажимайте на нём «Далее», когда нужно будет переходить к следующему фото. После окончания смените режим просмотра на тот, который удобен вам.
  13. Чтобы сделать подпись, используйте таблицы. Достаточно вставить одну строчку или колонку и задать ей эффект прозрачности.
  14. В презентации можно добавлять объекты и вручную по одному. Для этого перейдите в «Вставка — Иллюстрации — Картинка» и выберите файл.
  15. В меню Переходы — Схема перехода задайте анимацию для смены фотографий (например, растворение, плавный сдвиг, разворот, шашки). Иначе они будут просто идти друг за другом. Нажмите «Применить ко всем», если нужен одинаковый эффект для всех слайдов.
  16. Чтобы задать музыкальное сопровождение, откройте Вставка ­— Звук. Аудиодорожка будет привязана к выделенной странице.

После окончания работы сохраните документ. По умолчанию он будет иметь формат PowerPoint. Поэтому надо изменить некоторые параметры. Вот как из презентации сделать видеоролик:

  1. Во вкладке «Меню» перейдите в «Файл» и наведите курсор на «Сохранить как».
  2. Кликните на «Файл другого типа».
  3. В выпадающем списке «Тип файла» выберите Windows Media Video. Это популярный формат для медиа. Воспроизводится многими популярными плеерами. Такой ролик можно загрузить на YouTube, скинуть на телефон, перевести на экран телевизора или просто пополнить семейный архив.

Выбор типа файла

Windows Movie Maker

В ОС Windows есть встроенный видеоредактор ­­— Movie Maker (WMM). Он ещё называется «Киностудия». Если в вашей системе он не установлен, его можно скачать с официального сайта Microsoft (студия входит набор «Основные компоненты Windows»).

В отличие от PowerPoint, в котором доступны лишь презентации из фотографий, WMM — это приложение для монтажа. У него достаточно обширный функционал, позволяющий работать не только с изображениями, но и с аудио и видео. Для запуска некоторых форматов может потребоваться дополнительный пакет кодеков. К примеру, K-Lite Codec Pack — эту программу лучше поставить перед тем, как сделать видеоролик. Без неё не получится открыть многие форматы файлов.

В WMM имеется внутренняя библиотека тем и шаблонов. Выберите одну из них, и все переходы, эффекты установятся автоматически. Вам достаточно будет добавить фото и немного музыки. И не понадобится ничего настраивать. Доступна быстрая публикация фильмов в следующие социальные сети и хранилища: YouTube, Facebook, Vimeo, Flickr, OneDrive.

Вот как сделать видеоролик в WMM:

  1. Для вставки в проект файлов просто перетащите их в рабочую область программы. Или на панели инструментов нажмите соответствующую кнопку для добавления медиа и фотографий.
  2. Изображения наглядно отобразятся в утилите. Можете менять их местами, удалять, переворачивать.
  3. Чтобы отредактировать отдельный фрагмент, кликните на него. В строке меню появится раздел «Правка». Там задайте длительность, скорость, громкость (если это видео со своей звуковой дорожкой).
  4. Во вкладке «Анимация» доступны переходы. В меню «Визуальные эффекты» — эффекты (размытие, контуры, фильтры, отражения, чёрно-белые тона и тому подобное). Это хороший инструмент для коллажей из фото.
  5. В разделе «Главная» есть кнопка для добавления музыки. Дорожка также отобразится в рабочей области. В звуке можно настроить громкость, нарастание и угасание, синхронизировать его с видео.
  6. Чтобы добавить текст, используйте кнопки «Название» (помещается в начале проекта), «Титры» (в конце) и «Заголовок» (для надписей на самих фото).

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

Другие программы для монтажа

Если вы заинтересовались тем, как делать видеоролики, и решили заняться этим вплотную, встроенных средств ОС будет недостаточно. Попробуйте специализированные утилиты для монтажа.

VirtualDub

Предназначена для редактирования и нарезки файлов AVI и MPEG-1. Есть набор фильтров, функция масштабирования и смены частоты кадров. Программу не нужно устанавливать. Она не требует много ресурсов — будет работать даже на «слабом» компьютере. На ней не получится собрать коллажи из фотографий. Но для поверхностного монтажа она подходит.

Pinnacle Studio

Приложение, в котором можно сделать полноценный фильм. Есть собственная библиотека эффектов, титров, переходов. Доступно создание DVD-меню. Можно загрузить и добавить к утилите дополнительный контент, который расширит её функционал и добавит новые возможности. Она подходит для работы с видео и фото.

Sony Vegas

Популярная программа для монтажа. Её используют как профессионалы, так и любители. В ней можно добавить одновременно несколько видео- и звуковых дорожек. Есть огромный инструментарий для редактирования и обширная библиотека эффектов. Однако многие функции приложения неочевидны. Для его использования надо изучать инструкцию.

Перед тем как сделать видеоролик из фото, аудио, медиа или презентации, решите, какой результат вам в итоге нужен. Если простое слайд-шоу «для своих», без сложных эффектов, дизайнерских титров или меню, вам подойдут встроенные средства Windows. Если вы хотите получить полноценный фильм, лучше воспользоваться профессиональными программами для монтажа.

Программно граф фильтра строится с помощью интерфеса IGraphBuilder. Для этого нужно получить интерфейс самомого IGraphBuilder'а, интерфейсы всех составлящих его фильтров и интерфейсы контактов каждого фильтра. После этого нужно соединить фильтры посредством их контактов, и можно запускать граф. Как это сделать, мы посмотрим в следующих пунктах, сейчас только замечу, что стандартные DirectShow фильтры, поставляемые в составе DirectShow, описаны в соответствующем разделе справки.

Проигрывание видеофайла и Intelligent connect

Сейчас мы построим программным путем граф фильтров, описанный в Проигрывании видеофайла.

Для простого проигрывания нет необходимости вручную строить весь граф фильтров. Графу фильтров нужно подсунуть фильтр источника, а все остальное сделает IntelligentConnect.

Давайте проведем две лабораторных работы. В первой добьемся проигрывания какого-нибудь avi-файла "как-нибудь", а во второй попытаемся добиться большего контроля.

1. Создаем новый проект, в секцию "uses" добавляем модули ActiveX и DirectShow, бросаем на форму TMainMenu, в котором создаем пункт "Open. ", который отвечает за выбор видеофайла через диалог выбора файлов, и TOpenDialog. Поскольку мы будем работать с КОМ-объектами, то давайте сразу, при создании формы, добавим инициализацию: CoInitialize(nil), а при разрушении - CoUnitialize. Далее, для приложения нам понадобятся три интерфейса: IGraphBuilder, IMediaControl и IMediaEvent.

IGraphBuilder - это интерфейс графа фильтров. IMediaControl используется для управления запуском графом. IMediaEvent - для контроля и управлением поведения графа.

Я буду приводить упрощенный, схематический код, без проверок успешности выполнения тех или иных операций, но он обязательно должен быть полным в реальных приложениях.

Полный проект находится здесь.

Теперь попробуем отобразить видео не где-попало, а в указанном нами месте. Предварительные шаги - добавление в "uses", инициализация и деинициализация - те же. Только добавим еще к форме панельку (TPanel), на которой и будем отображать видео. Но нам понадобятся дополнительные интерфейсы: ICaptureGraphBuilder2 - используется для построения графа захвата, но нам он нужен будет для рендеринга файла так, как нам нужно; pSourceFile - фильтр файла-источника; и IVideoWindow - интерфейс окна для отображения в нем видео.

Все, с этой задачей мы справились. Полный код проекта можно взять здесь.

Конвертирование WAV<->MP3

Следующие наши эксперименты будем проводить без использования Intelligent Connect, поскольку одна из наших целей - понимание системы работы DirectShow, поэтому будем пытаться побольше работы выполнять руками. Поскольку, как мы помним, у меня были проблемы с конвертированием MP3 в WAV, будем заниматься только конвертацией WAV-MP3.

Дальше, давайте подумаем о том, как мы будем получать входящие и исходящие контакты фильтров. Для интерфейса IBaseFilter существует метод EnumPins, который заполняет соответствующую структуру, и позволянт перебрать все контакты и узнать кое-какую информацию о них. Нам нужно будет получать для каждого фильтра входящие и исходящие контакты, поэтому неплохо бы написать функцию, которая по переданному интерфейсу и типу контакта (входящий или исходящий) будет выдавать контакт. Я вовсе не такой умный, чтобы писать такие функции, я просто посмотрел в MSDN, и нашел там приблизительно следующий варинт:

Я настолько свыкся с этим кодом, что уже даже не помню, вызывал он у меня какие-то вопросы или нет. Думаю, он более-менее ясен. Поэтому, если они у вас возникнут, рекомендую обращаться с DirectShow - справке. Нужно только заметить, что код будет правильео работать только в том случае, если у фильтров, попадающих на вход этой функции, будет не больше одного контакта соответствующего типа - иначе ничего не гарантировано. В нашем случае это именно так, поскольку мы используем конкретные фильтры, о которых все известно.

Что же, создаем КОМ-объекты и добавляем их к графу фильтров:

Теперь нужно соединить фильтры между собой, а для этого нужно получить интерфейсы исходящего контакта для одного фильтра и входящего для другого, а затем соединить их с помощью соответствующего метода графа фильтров. Будем полагать, что у нас уже объявлены и проинициализированы (= nil) следующий переменные:

Все, мы полностью собрали вручную граф фильтров. Это, все-таки, довольно утомительная и однообразная работа, но ничего, зато мы теперь знаем, как это происходит. Остается установить имя mp3-файла, в который будет произведена конвертация. Для этого используем наш Dump, который, как и положено наследнику IFileSinkFilter, поддерживает метод установки имени файла:

Читайте также: