Интегрирани мултимедийни обработка с помощта на GStreamer

Решението на този проблем е да се използва GStreamer. Чрез комбиниране на различни инструменти и библиотеки, както и за прилагане на идеята за общо медии тръбопровод (multimediakonveyer), GStreamer ви позволява да работите с различни видове медии, като се използва общ подход. Това ви позволява да се съсредоточи директно върху медиите, вместо да хвърли всичките си сили, за да се провери и да се гарантира съвместимостта на файлови формати.

GStreamer може да реши много проблеми, като например транскодиране файлове с различни аудио формати, в общ формат. Тъй като всички формати се обработват по същия начин, е необходимо само едно средство за това. Това спестява време и прави решението по-интегрирана и поддържа. В допълнение, след като научат основните принципи на GStreamer да откриете нови възможности за неговото прилагане. За мрежа аудио стрийминг трябва да се грижи за почти мрежа, тъй като API-интерфейсите ще останат непроменени за възпроизвеждане на аудио и основни задачи.

основни принципи

От GStreamer функционалност е над нормалното библиотеката, е важно да се разбере точно какво може да направи, че е извън обхвата на неговите способности, и как се изпълняват тези функции.

GStreamer - библиотека за обработване на мултимедийни данни. Това означава, че е необходимо да се работи с абстрактно превръщане модел (трансформация), състоящ се от въвеждане на данни / изход и различни междинни етапи. Това решение позволява да се развие специфично изпълнение преобразуването с типа данни вход и изход желания формат. Примери за такива трансформации:

За да се постигне такова разнообразие води GStreamer работи на абстрактно понятие тръбопровод (тръбопровод). Тръбопровод - насочен графика, в която потокът на носители на данни в дадена посока - от входа към изхода. Тръбопровод се състои от element'ov (елементи), а това е друг ключов концепция. Елемент - е обект, който се намира в процес на подготовка, и ви позволява да изпълняват специфична трансформация на медии. Възможно е да се направи връзка между елементите заедно, те са заедно така, че да процес, който преобразува входните данни в желания формат на изхода. За по-голяма яснота, като се смята, че потокът от данни чрез тръбопровода преминава в ляво (надолу) надясно (отпадъчните води). Същият подход се използва за описанието на конвейера с помощта на GST старта инструмент. Както ще бъде показано по-долу.

се GStreamer не съдържа елементи, основна цел - създаването на конвейера от предвидените елементи. Специфични проблеми са решени с помощта на плъгини. Всяка щепсел циркулира в компилиран файл (Така че за UNIX® или .dll за Microsoft® Windows®), съдържа един или повече елементи. Когато започнете GStreamer заявки всички инсталирани плъгини за да събере списък с наличните предмети. Обикновено, плъгина не се изпълняват мултимедия обработка и си взаимодейства с други библиотеки за тези задачи: например, MPEG2 декодер е съществуваща библиотека за работа с MPEG-формат. Въпреки това, тази делегация се извършва по прозрачен за приложението, и то взаимодейства само с елементите с общ интерфейс.

Някои приставки за разширяване на основните пакети и представляват една единствена библиотека, състояща се от различни елементи. Други основни добавки са разпределени в GST-приставки база пакет. Те са на разположение най-много възможности GStreamer инсталиране. Има и GST-плъгини-добро, -ресторант и -ugly пакети, където избрани различни приставки в зависимост от нивото на подкрепа и разпространение на принципа. И накрая, има плъгини, разпространявани от трети страни и предназначени за ограничена употреба само едно заявление.

Пример за GStreamer

Сега, след като обяснява основните понятия на GStreamer, дойде ред да се проучи тяхното изпълнение. За да направите това, трябва да въведете редица нови концепции.

Объркване в имената - мивка (Engl изход.) - е вход и източник (източник инж.) - добив?!

В действителност, няма да настъпи объркване. След мивка подложка (входна точка) в позиция от списъка с данни, а източник подложка (точка добив) на на другата elementa те започват. Ето защо елементът само изходните точки, наречени източник (източник) и елемент само с входни точки, наречени мивка (мивка). Толкова е просто, въпреки очевидната логическа заблуда.

Както бе споменато, основната концепция е обработка на елемент, представен от клас GstElement. GStreamer е написан на C, но използва GObject библиотеката GTK + за допълнителни функции, обектно-ориентирани (вж. Ресурси). Това GstElement има две подложки (докинг точка) с други елементи от GStreamer. Има два вида тампони:

  • мивка подложка. входната точка за медии.
  • източник подложка. данни изходна точка преработени елемент.

I подложка има параметри, наречени капачки (дюзи), определяне на формата на данните може да премине през подложката. Например, код 1 е в списъка на vorbisdec елемент. която декодира безплатно Vorbis формат. Долара на знака за долар в началото на линията показва, че това е често срещана команда UNIX черупка.

Списъка 1. Подробности елемент описание vorbisdec

Както можем да видим, до фрагмент обяви два подложка шаблони: един за изход на данни (SRC), другия вход (мивка). Pad за изход е винаги на разположение (винаги) и поддържа следния модел възпроизвежда данни: необработено звукова честота 8-50 кХц от шест канала, за да едноканален, къс и 32-битови проби. Други възможни видове достъп: понякога (понякога) и винаги (заявка). вход подложка шаблон също така предоставя незабавен достъп и да получите аудио в Vorbis формат.

Тези шаблони са от съществено значение за правилното функциониране на конвейера. Когато се опитате да свържете два елемента заедно, за да образуват тръбопровода, GStreamer проверява дали pad'ov свързват помежду си елементи, съвместими шаблони. Този процес се нарича преговори (договаряне). По време на преговорите, елементите се опитват да изберете най-добрия формат за тези, които те могат да извлекат подкрепа. Ако това не стане, свързващият елемент не се извършва. Ако изберат общ формат, а след това този формат не е един от най-добрите шаблони, и фиксирани капачки - недвусмислено одобрени обмен на данни формат. Сега данните могат да се прехвърлят от един елемент към друг.

Представената информация е достатъчна, за да започнете с GStreamer. Това ще изисква универсален инструмент за GStreamer - GST старта.

Работа с GST старта

Други приложения на GStreamer

В допълнение към GST-старта GStreamer предлага и други много полезни инструменти, като например GST-инспектира и GST-typefind.

Когато не знаете как да използвате който и да е елемент, използвайте GST-инспектира. От името на исканата elementa или приставка GST-инспектира ще покаже цялата информация, която може да осигури GStreamer за него.

Използването на GST-typefind. GStreamer-аналог на файла (1) -utility на UNIX, можете да откриете типа на файла, по-точно, какъв тип самата GStreamer файла.

GST старта - е универсална програма с много функции. GStreamer инструмент за GST старта - е същото като черупка черупка за UNIX. С него можете да създадете сложни тръбопроводи с помощта на специален синтаксис GST старта. както е показано на Обявата 2.

Обява 2. Използване на помощната програма GST-старта

Кодът на Обява 2 е прост аудио плейър използва за игра concept.mp3 на файла. Таблица 1 дава подробен анализ на кода.

Таблица 1. Анализ на кода в списъка за 2 фрагменти

Element създава клас filesink (файлове приемник) и задайте разположението му имущество (населено място) към файл concept.mp3. Тази позиция може да чете файлове, посочени в местоположението. и стартира програма concept.mp3 при четенето на файла в текущата директория.

Точката на удивителен се свързва с (връзката с). Подобна на | облицовъчни обвивка, беше избран поради сходство, и така може да се използва без лечение с черупки, ако заобиколен от празно пространство.

Това е най-важният елемент в състава на Gstreamer - autoplugger (линкер). Използване на типове данни, да го настроите на входа и на изхода, то търси всички налични елементи да се организира под-газопровода, който ще осигури на желания резултат. Входно / изходни формати на всички елементи на GStreamer трябва да бъдат ясно посочени, така удивителен знак (.) Безусловно предоставя информация за формата на елементи, които са свързани с тях. От filesrc има тип капачка НЯКОЙ. първата задача е да се определи формата на поток действителната decodebin (typefind). За да направите това, се чете на параметрите, които определят типа на данните. Всички тези действия се извършват прозрачно за потребителя.

Този елемент се използва за извеждане на звука, за да Linux®. Тя си взаимодейства с звукова карта и я показва на изготвените аудио материали. Той също така контролира качеството на конвейера, както и звукова карта може да получава данни само с определена скорост.

След като натиснете Enter дисплеи някои информационни съобщения, докато тръбата достига състояние за игра (игра). В този момент, данните започват да се движат през тръбопровода, както и звук започва възпроизвеждане на звук през високоговорителите.

Както можем да видим, GStreamer позволява се значително опростяване на медиите преработка. Има дори не е необходимо да се знае точният формат на материалите трябва да се преобразува. Въпреки това, както якето на обвивката не е в състояние да замени C програми и GST-старт не може да замести пълноправен заявление GStreamer. Така например, се дават старта не може да контролира работата на конвейера след старта си, което не позволява да пропуснете ненужни части в потока от данни. Въпреки тези ограничения, се дават старта е изключително удобен инструмент за бързо решаване на прости задачи като транскодиране на файлове от един формат в друг.

Продължава познаване GStreamer

Пълно ръководство за GST стартиране може да се намери в съответния раздел на човека. Синтаксисът ви позволява да създавате по-сложни и интересни транспортьори, включително тези, които могат да мислят за себе си. Можете също така да създаде своя собствена версия gst_launch. Повече подробности за тази възможност, разбира раздела за документиране на gst_parse_launch (функция).

В допълнение, можете да се присъедините към пощенския списък или IRC-канал (#[email protected]). общността на GStreamer може да намери човек, който ще ви помогне или които могат да ви помогнат.

  • Многофункционална мултимедийна обработка с GStreamer (EN). оригиналната статия
  • Ръчно GStreamer за разработка на приложения. Допълнителна информация за GStreamer и неговите възможности в разработване на приложения.
  • Ръководство GStreamer Plugin писателите. напътства да създадете свои собствени плъгини.
  • GStreamer 0.10 Ядро наръчник. Справочник GStreamer.
  • GObject наръчник. това ръководство ще ви позволи да знам повече за обектно-ориентиран библиотека, използвана от GStreamer.
  • AIX® и UNIX. AIX и UNIX developerWorks зона предоставя много различна информация, свързана с всички аспекти на AIX и техники за работа с UNIX системна администрация.
  • Семинари и обучения developerWorks България
  • Подкасти. рекордни презентации IBM експерти.

Вземете продукти и технологии

  • Homepage GStreamer. Този сайт съдържа най-новите актуализации и разпределения на GStreamer.
  • Истанбул. GStreamer-базирано приложение за запис сесии за настолен компютър.
  • IBM пробен софтуер. пробни версии на софтуерните разработчици, които могат да бъдат изтеглени от developerWorks.