Иванов Сергей, ННГУ ВМК ФОТ БС Разработка мультимедийных приложений для MeeGo
Библиотеки для разработки Gstreamer – фреймворк написанный с использованием библиотеки Glib FFmpeg – фреймворк на основе библиотек libavcodec и libavformat Media Application FrameWork(MAFW) – фреймворк основанный на gstreamer для работы с мультимедийными сервисами в Maemo/MeeGo Phonon – модуль к библиотеке QT для работы с мультимедиа
Gstreamer Gstreamer - мультимедийный фреймворк написанный на языке программирования С с использованием библиотеки Glib. Он установлен в MeeGo по умолчанию. Эта библиотека является основой для большинства мультимедийных приложений, таких как видео- редакторы, медиа-плееры, программы записи и т.д.
Архитектура Gstreamer
Основа GStreamer - наборы плагинов, которые позволяют использовать различные компоненты в составе программы, расширяя функциональность. Принцип работы GStreamer - конвеер, состоящий из различных плагинов. В конвейере происходит преобразование потоков данных. Простейший конвеер укладывается в формулу «Входящий поток - Обработка - Исходящий поток». Усложнение и, как следствие, расширение функционала происходит во втором звене. Отдельные плагины различаются по выполняемым ими функциям. Для выполнения поставленной задачи плагины отбираются в определенной последовательности, которая и составляет конвейер. Существует более 150 плагинов и постоянно пишутся новые
protocols handling sources: аудио и видео потоки formats: микшеры, демикшеры, субтитры и т.д codecs: кодеки и декодеры filtres: конверторы, микшеры, эффекты и т.д. sinks: аудио и видео потоки Классификация плагинов Gstreamer:
1.Gst-Inspect – выводит информацию об установленных плагинах 2.Gst-Launch – запускает конвеер(pipeline) 3.Gst-Editor – позволяет под графикой создавать конвееры из блоков 4.Gst-Xmllaunch – запускает созданные конвееры с помощью gst-editor 5.Gst-Visualise – визуализация при воспроизведении аудио потока Программы для работы с Gstreamer
Gst-Editor Графический редактор конвееров
Gst-Visualise Эффекты при воспроизведении аудио
Использование в своих программах Вызов существующих приложений с необходимыми параметрами Вставка в свой код на C/C++, Python и др.
FFmpeg FFmpeg - кросс-платформенное решение для записи, конвертации и воспроизведения аудио и видео. Принцип работы FFmpeg отличается от GStreamer, этот фрэймворк также является весьма популярным инструментом разработки.
FFmpeg – очень быстрый видео и аудио конвертер с возможностью захвата видео и аудио потоков с различных устройств FFplay – простой медиа проигрыватель FFprobe – показывает информацию о мультимедиа потоках FFserver – потоковый сервер для аудио и видео Программы для работы с Ffmpeg:
Конвертация аудио. ffmpeg -i birds_song.wav birds_song.mp3 Запись видео с вебкамеры. Захватим видео с вебкамеры и сохраним в MPEG-файле: ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 out.mpg А теперь то же самое, но еще и со звуком: ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg Простота использования FFmpeg:
О днако существует несколько задач, которые не затронуты в предыдущих фрэймворках. Это связано со сложностью новых приложений, в которых пользователям предоставляются все виды возможных на данный момент мультимедийных служб, таких как: UPnP, Last.Fm, Youtube, и т. д. Для удобства написания приложений для этих сервисов в MeeGo существует The Multimedia Applications FrameWork(MAFW). MAFW предоставляет программистам простой и удобный способ создания современных мультимедиа приложений отвечающих сегодняшним запросам пользователей. MAFW по сути есть надстройка более высокого уровня над Gstreamer. В описании к MAFW написано, что она позволяет более "просто" работать с мультимедиа сервисами с которыми "не умеет" работать GStreamer. Media Application FrameWork
Модуль Qt Phonon Phonon мультимедийный фреймворк для KDE4, который предоставляет API для разработки мультимедиа-приложений. Входит в состав Qt начиная с версии 4.4.
Для включения определений классов этого модуля используйте следующую директиву: #include Для линковки приложения с этим модулем, добавьте в ваш qmake файл проекта.pro: QT += multimedia Использование в своем приложении
Gstreamer – FFmpeg – MAFW – Phonon – Qt – Описание классов Qt – Описание на русском – Интересные ссылки:
У вас есть ко мне вопросы?