Разработка мультимедийных приложений для MeeGo
Библиотеки для разработки Gstreamer – фреймворк написанный с использованием библиотеки GlibFFmpeg – фреймворк на основе библиотек libavcodec и libavformat Media Application FrameWork(MAFW) – фреймворк основанный на gstreamer для работы с мультимедийными сервисами в Maemo/MeeGoPhonon – модуль к библиотеке QT для работы с мультимедиа
Gstreamer Gstreamer - мультимедийный фреймворк написанный на языке программирования С с использованием библиотеки Glib. Он установлен в MeeGo по умолчанию. Эта библиотека является основой для большинства мультимедийных приложений, таких как видео-редакторы, медиа-плееры, программы записи и т.д.
Основа GStreamer - наборы плагинов, которые позволяют использовать различные компоненты в составе программы, расширяя функциональность. Принцип работы GStreamer - конвеер, состоящий из различных плагинов. В конвейере происходит преобразование потоков данных.Простейший конвеер укладывается в формулу «Входящий поток - Обработка - Исходящий поток». Усложнение и, как следствие, расширение функционала происходит во втором звене. Отдельные плагины различаются по выполняемым ими функциям. Для выполнения поставленной задачи плагины отбираются в определенной последовательности, которая и составляет конвейер.
Классификация плагинов Gstreamer: protocols handling sources: аудио и видео потоки formats: микшеры, демикшеры, субтитры и т.д codecs: кодеки и декодеры filtres: конверторы, микшеры, эффекты и т.д. sinks: аудио и видео потоки
Программы для работы с Gstreamer Gst-Inspect – выводит информацию об установленных плагинахGst-Launch – запускает конвеер(pipeline)Gst-Editor – позволяет под “графикой” создавать конвееры из блоковGst-Xmllaunch – запускает созданные конвееры с помощью gst-editorGst-Visualise – визуализация при воспроизведении аудио потока
Gst-EditorГрафический редактор конвееров
Gst-Visualise Эффекты при воспроизведении аудио
Использование в своих программах Вызов существующих приложений с необходимыми параметрамиВставка в свой код на C/C++, Python и др.
FFmpeg FFmpeg - кросс-платформенное решение для записи, конвертации и воспроизведения аудио и видео. Принцип работы FFmpeg отличается от GStreamer, этот фрэймворк также является весьма популярным инструментом разработки.
Программы для работы с Ffmpeg: 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
Media Application FrameWork Однако существует несколько задач, которые не затронуты в предыдущих фрэймворках. Это связано со сложностью новых приложений, в которых пользователям предоставляются все виды возможных на данный момент мультимедийных служб, таких как: UPnP, Last.Fm, Youtube, и т. д. Для удобства написания приложений для этих сервисов в MeeGo существует The Multimedia Applications FrameWork(MAFW). MAFW предоставляет программистам простой и удобный способ создания современных мультимедиа приложений отвечающих сегодняшним запросам пользователей.MAFW по сути есть надстройка более высокого уровня над Gstreamer. В описании к MAFW написано, что она позволяет более "просто" работать с мультимедиа сервисами с которыми "не умеет" работать GStreamer.
Модуль Qt Phonon Phonon —мультимедийный фреймворк для KDE4, который предоставляет API для разработки мультимедиа-приложений. Входит в состав Qt начиная с версии 4.4.
Использование в своем приложении Для включения определений классов этого модуля используйте следующую директиву: #include <QtMultimedia>Для линковки приложения с этим модулем, добавьте в ваш qmake файл проекта .pro: QT += multimedia
Интересные ссылки: Gstreamer – http://www.gstreamer.orgFFmpeg –http://www.ffmpeg.orgMAFW – http://www.garage.maemo.org/projects/mafw/Phonon – http://phonon.kde.org/Qt – http://www.qt.nokia.comОписание классов Qt – http://doc.qt.nokia.com/Описание на русском – http://doc.crossplatform.ru/
У вас есть ко мне вопросы?