2009-01-02

Интервью с разработчиком Empathy

На ресурсе gnomedesktop.org разместили серию интервью с разработчиками мультимедийных приложений. На данный момент высказались авторы проектов Jokosher, Totem и Empathy. Последняя беседа Empathy Logoпоказалась мне интересной, посему было решено перевести диалог на великий и могучий. Тем более, что темы затрагиваются очень даже увлекательные: от видеоконференций, до последних изменений в Google Talk. Персональная благодарность ShutteR'у за исправления «багов» в переводе.


Расскажите пару слов о себе и проектах, над которыми работаете на протяжении многих лет?
Я голландский парень, сейчас работаю в Collabora Ltd. (Кембридж, Великобритания). Первые шаги в open source я сделал в качестве maintainer'а Debian. Большая часть моей работы была связана с desktop'ом (Avahi, D-Bus, Hal и т.д.), как для Debian, так и для upstream, правда, в меньшей степени. Последние несколько лет работаю в Collabora над различными аспектами экосистемы Telepathy. Наибольший вклад я внес в проект telepathy-salut (link-local XMMP менеджер связи), где являюсь главным автором.

Кто помогает вам в разработке Empathy?
Xavier Claessens — главный мейнтейнер. Guillaume Desmottes недавно занялся доработкой функции передачи файлов, а также трудится над поддержкой MUC время от времени. Jonny Lamb работает над различными вещами, последние его работы: импорт учетных записей из Pidgin и первоначальная поддержка передачи файлов. Cosimo Cecchi из Collabora присоединился к нам недавно и в основном занимается пользовательским интерфейсом, сейчас он работает над интеграцией libcanberra для звуковых событий и поддержки уведомлений.

Empathy использует GStreamer, Farsight и Telepathy для поддержки VoIP и видеозвонков. Не могли бы вы объяснить, как эти компоненты работают в Empathy?
Empathy использует менеджер связи Telepathy (МС для краткости), как бэкэнд для различных протоколов, на которых он говорит. МС отвечает за фактическое подключении к серверу и отправку сообщений. Поэтому сам Empathy не обращается к протоколам напрямую, он просто «рассказывает» МС то, что он хочет делать.
Для того, чтобы позвонить или сделать видео вызов на самом деле нужны две вещи. Сперва вы должны рассказать другой стороне, что хотите позвонить, а именно сообщить информацию о поддерживаемых аудио/видео кодеках и т.д. Это часть спецификации протокола, за которую отвечает менеджер связи. Второй шаг: передача потокового аудио/видео по сети, а также его отображение и запись. БОльшая часть этой работы идентична для всех протоколов и это то, что Farsight делает для нас.
Farsight сам построен на Gstreamer и использует его для обработки мультимедиа.

Вы используете фреймворк Gstreamer. Как по-вашему, подходит ли GStreamer для программ подобного рода?
0.10 серия стала достаточно зрелой для такого рода программ. Как всегда, когда часть кода используется совершенно иным способом, вы обязательно нарветесь на ошибки, но основная конструкция фреймворка очень удачная. Единственное, что, на мой взгляд, следует улучшить, так это динамическую смену канала во время проигрывания. Это реализуется уже сейчас (и нам это удалось), но способ довольно хитрый и требует знания внутренней архитектуры Gstreamer.

Нативным (то бишь родным) протоколом для Empathy является XMPP, который используется в Jabber и Google Talk. Не могли бы вы объяснить, что такое XMPP и каковы его преимущества?
Я бы не сказал, что XMPP наш нативный протокол, но, определенно, у него лучшая поддержка и он больше всех оттестирован. XMPP — это полностью открытый стандарт, а это большое преимущество по сравнению, скажем, с MSN или ICQ, где свободному ПО всегда нужно играть в «догонялки», если те изменят что-либо в своей сети. Кроме того, процесс стандартизации XMPP открытый, что позволило нам принять в нем участие и помочь написанием новых расширений для такой немаловажно детали как видеосвязь.
Другим большим преимуществом является то, что он децентрализован: каждый может запустить свой собственный XMPP-сервер, если захочет. Все эти серверы общаются между собой. Это позволяет мне говорить с людьми из Google Talk, даже если я использую свой собственный XMPP сервер.

Компания Google недавно добавила голосовой и видеочат в GMail, будет ли Empathy взаимодействовать с этой службой?
В новой службе Google решила не использовать Jingle для аудио/видео, а вместо этого расширить свой собственный протокол, который, к слову, также используются в клиенте Google Talk. К счастью, у нас уже есть поддержка старой версию этого протокола, и с некоторыми небольшими корректировками в telepathy-gabble (наш XMPP бэкэнд), мы смогли поддержать новый вариант. Некоторые пользователи сообщили о проблемах при попытке использовать его с Empathy. Эта проблема имеет высокий приоритет в моем списке todo.
К сожалению, Google использует H264-SVC в качестве видео кодека, для которого пока нет свободных реализаций. Поэтому сейчас работает только голосовая связь. Google, похоже, планирует обновление с поддержкой более традиционных кодеков, как H264-AVC. Как только это произойдет мы должны быть в состоянии поддерживать видео-звонки без многих проблем.
Самая большая проблема видео в Linux, на данный момент заключается в том, что, помимо Theora и Dirac, все современные видеокодеки запатентованы. Выходит, распространять декодировщик нельзя. Так будет до тех пор, пока Google не включит поддержку Theora. Если же это не произойдет, пользователи будут вынуждены устанавливать необходимые кодеки самостоятельно :(

Исходя из ваших рассуждений в отношении кодеков и свободного ПО, я полагаю, наилучшим вариантом для нативных клиентов — использование Speex и Theora. Насколько хорошо подходят для видеоконференции эти два кодека, и как они «дружат» с Empathy?
Speex является одним из лучших кодеков для голосовых вызовов. Он хорошо поддерживается в Empathy и в различных других клиентах.
Theora — очень хороший кодек, но он не принадлежит к лидирующему классу, к сожалению. По словам разработчиков Theora, это связано с ограничениями кодировщика, а не самого кодека. Ведется работа по улучшению ситуации.
Что касается нынешних показателей (учитывается скорость и качество), Theora вполне адекватен для последних конфигураций. И возможность поддержки видеоконференции просто «из коробки», несомненно, огромный плюс. Поддержка Theora в Empathy пока довольно посредственная, но он будет полностью рабочим, когда мы переключимся на использование Farsight2 в ближайшие пару недель.

Большинство пользователей Linux, вероятно, использует широкий набор приложений для общения: Pidgin, X-Chat и Ekiga. Каким вы видите Empathy по сравнению с ними сегодня и каковы ваши долгосрочные планы?
В последнем выпуске GNOME Empathy был принят в качестве части рабочего стола. Различные дистрибутивы решили сохранить Pidgin по умолчанию, так как в Empathy до сих пор отсутствуют некоторые функции. К выходу GNOME 2,26 мы надеемся, что большинство этих пробелов будет восполнено. В долгосрочной перспективе мы планируем более тесную интеграцию Empathy с GNOME. Некоторые примеры: передача файлов из Nautilus, обмен ссылками с Epiphany, изменение статуса, когда вы смотрите фильм в Тотеме, отображение текущей песни из Rhythmbox и т.д.
Х-Chat и Ekiga — специализированные программы для конкретных задач (IRC и SIP), хотя Empathy, возможно, сможет заменить их неискушенным пользователям. Я думаю, остальные предпочтут прежний набор софта.

Empathy поддерживают широкий спектр протоколов. Кроме XMPP/Jabber, это MSN, Yahoo и ICQ. Много времени уходит на сохранение интероперабельности (способности взаимодействовать) с этими проприетарными сервисами. С какими проблемами приходится сталкиваться?
Поддержка закрытых протоколов зависит от других open source проектов. Для MSN есть Telepathy Butterfly, который использует библиотеку pymsn. Большинство других протоколов, с которыми работает Telepathy, «держится» на libpurple (Pidgin использует эту же библиотеку).

Empathy поддерживает так называемый Salut. Я уверен, что большинство людей не слышало об этом раньше, могли бы вы объяснить нам, что это такое?
Salut — реализация XMPP's Serverless Messaging extension, это протокол, который требует Bonjour iChat и доступен в некоторых клиентах под аналогичным названием. Salut использует Avahi для обнаружения людей в локальной сети, так что вы можете легко чатится, а в последних версиях обмениваться файлами с ними.

А что насчет поддержки VoIP и видеоконференций в Salut?
Долгосрочный план заключается в том, чтобы объединить Gabble и Salut в единую кодовую базу. Это значит, мы сможем поделиться кодом, отвечающим за видеоконференции между этими двумя проектами.

Недавно вышел Farsight2. Каковы планы по его использованию в Empathy? Какие новые возможности подарит вашему проекту этот framework?
Сейчас я работаю над портированием Empathy из telepathy-stream-engine в telepathy-farsight. telepathy-farsight это библиотека, которая играет роль связующего звена между telepathy и Farsight2. Таким образом, мы ожидаем поддержку Farsight2 в одном из следующих релизов Empathy.
Farsight2 поддерживает полную синхронизацию речи во время видеоконференции, что является, безусловно, плюсом. Кроме того, он позволяет нам должным образом работать с Theora, поддержки которого до сих пор не было. В итоге, у нас, наконец, появились видеоконференции в Linux «из коробки». И все благодаря абсолютно бесплатному кодеку.
Еще одно положительное качество связано с тем, что Empathy получает прямой доступ к каналу. Это позволяет ему быть более гибким. Например, пользователь подключает USB-камеру и начинает использовать ее для VoIP. Или на лету переключает вывод звука из динамиков на наушники. Еще одна идея, использовать Clutter для видео виджета.
Telepathy-farsight это не только большой шаг для Empathy. Недавно мы добавили Python binding'и к нему, а это значит, что все эти преимущества доступны для программ, написанных на Python. Мы точно знаем, что разработчики Elisa планируют добавить возможность совершать видеозвонки с помощью telepathy. Проблема для них заключается в том, что они должны контролировать выходной поток для правильной интеграции, что было невозможно раньше.

Как выглядит план развития Empathy?
Для начала мы планируем навести лоск в интерфейсе и добавить некоторые функции, которые до сих пор отсутствуют. Передача файлов — то, о чем нас спрашивали люди, недавно появилась в Empathy. Сейчас эта функция работает только в Salut, но мы активно работаем ее реализацией для других протоколов.
Потом, как я уже говорил ранее, мы хотели бы добиться бОльшей интеграцией с GNOME. Мы были бы рады увидеть больше программ, использующих telepathy. В некоторых ситуациях, возможностей фреймворка не хватает. В течение последних нескольких месяцев мы добавили множество патчей в спецификацию Telepathy для улучшения этой ситуации. Эти усовершенствования в уже интегрированы в стек.

Не хотите ли вы раскрыть секрет Mingle?
Прежде, чем я расскажу о Mingle, следует вспомнить Jingle. Jingle — это стандартизированное расширение XMPP, позволяющее клиентам осуществить аудио/видео связь. Mingle построен на Jingle и предоставляет возможность создавать аудио/видео конференции для нескольких человек. Недавно мы анонсировали первый черновик протокола и небольшой клиент на Python для его демонстрации. Одно из главных преимуществ Mingle в том, что вам не нужны специальные серверы для запуска небольших конференций (скажем, от 4 до 5 человек). Для «серьезных» конференций нужна инфраструктура, иначе вы столкнетесь с высокой нагрузкой процессора и/или ограничениями пропускной способности, но у нас есть некоторые идеи, как сделать этот прозрачным. За более подробной информацией о Mingle обращайтесь на сайт :)
В ближайшее время мы начнем добавлять поддержку Mingle в Telepathy и Empathy. Это позволит людям с легкостью создать небольшую конференцию со своими друзьями:)

Какие другие мультимедийные приложения вы используете?
Я пользуюсь Totem для воспроизведения видео и слушаю музыку в Rhythmbox. У нас также есть дома приставка, которая выступает в качестве медиа-центра под управлением Elisa.

Глядя на общую картину, что, по-вашему, должно произойти с мультимедиа в Linux и GNOME?
Я люблю вещи, которые просто работают, когда речь заходит о мультимедиа. GNOME сейчас довольно статический в данном вопросе. Вы настраиваете веб-камеру, колонки и микрофон единожды. Но, на самом деле, люди хотят иметь возможность подключить USB наушники, веб-камеры, Bluetooth-гарнитуры и т.д. и просто использовать везде, где необходимо. Pulseaudio — большой шаг в правильном направлении, чтобы это произошло для аудио. Но он нуждается в бОльшей интеграции с desktop'ом.

Официальный сайт проекта: live.gnome.org/Empathy. Википедия.
Интервью подготовил Christian F.K. Schaller.

Ссылки по теме:

6 комментариев: ответить

04.01.2009, 20:22   dikiy.com комментирует...

Спасибо, очень интересное интервью. Как раз месяца три назад стал использовать Empathy.

04.01.2009, 23:21   drakulavich комментирует...

Проект подает большие надежды. С помощью Empathy мне, наконец-то, удалось поболтать с приятелем из Gtalk. Если они грамотно отшлифуют интерфейс, получится небывалая «конфетка» :-)

Спасибо за комментарий. Я уж подумал, что никому неинтересно :-)

05.01.2009, 21:38   Анонимный комментирует...

Поигрался с Empathy в новой ubuntu, да так и не прижилась она. Все так же работаю с Pidgin, в нем для меня важна интеграция со Skype (хоть какая-то), если в Empathy будет подобное, то можно посмотреть.

За перевод, спасибо!

06.01.2009, 09:29   drakulavich комментирует...

Я тоже пока не собираюсь менять Pidgin. Сила привычки, раз, и большой арсенал плагинов, два. Empathy у меня играет роль виндового gtalk'а, т.к. минималистичен и поддерживает voip :)

25.06.2009, 13:27   Анонимный комментирует...

И я не стал совсем переходить на Empathy. Главный его недостаток для меня был в том, что он не запоминает разположение на экране. Но, как сообщается в https://wiki.ubuntu.com/UbuntuWeeklyNewsletter/Issue147, в Коале Эмпатия будет по умолчанию, может к тому времени доработают

07.06.2011, 11:18   Анонимный комментирует...

Интервью интересное, спасибо.

Отправить комментарий