Linux E X P R E S

Facebook

Rozhovor: Sjoerd Simons, Empathy

gnome.png

Empathy je komunikační program kombinující instant messaging, videokonference a telefonování přes internet (VoIP). Sjoerd patří mezi hlavní vývojáře této aplikace, a tak kvalifikovaně zodpovídá položené dotazy. Jedná se o překlad rozhovoru z webu gnomedesktop.org.


Můžeš se nám představit? Říci, kdo jsi a na jakých projektech jsi během těch let pracoval?

Jsem Holanďan pracující pro Collabora Ltd. v Cambridge, Spojené království. Angažovat jsem se začal v open source/free softwaru jako správce Debianu. Jsem jeden z těch, kteří spravují GNOME pro Debian, ale většina mé práce jsou věci pod desktopem (Avahi, D-Bus, Hal atd.), jak pro Debian, tak v menší míře pro upstream. Posledních několik let pracuji pro Collaboru na různých kouscích ekosystému Telepathy. Největším projektem, na kterém pracuji, je telepathy-salut (správce připojení místní XMPP), jehož jsem hlavním autorem..

Pro ty, kteří neznají Empathy: jaký typ aplikace to je a jaké jsou její vlastnosti?

Empathy je klient pro výměnu zpráv postavený na Telepathy. Momentálně podporuje zobrazení stavu, chatování (jak P2P, tak místnosti), hlasové a videohovory pro různé protokoly, včetně, ale nejen XMPP, místní XMPP, MSN, SIP, Yahoo, ICQ atd...

Kdo jsou kromě tebe přispěvatelé do Empathy?

Xavier Claessens je hlavním správcem. Guillaume Desmottes nedávno ladil podporu přenosu souborů a nyní pracuje čas od času na podpoře konferencí. Jonny Lamb pracuje na různých věcech, jedna z jeho současných prací byl import účtů z Pidginu a úvodní podpora přenosu souborů. Cosimo Cecchi se k nám nedávno připojil tady v Collaboře a povětšinou pracuje na věcech kolem uživatelského rozhraní, momentálně pracuje integraci libcanberra pro zvukové události a podporu oznamování.

Empathy používá GStreamer, Farsight a Telepathy pro podporu VoIP a videohovorů. Mohl bys prosím tě vysvětlit, co každá z uvedených komponent Empathy nabízí?

Empathy používá věci zvané Telepathy connection managers (nebo zkráceně CM) jako technologii na pozadí pro různé protokoly, kterými se dorozumí. CM je zodpovědný za skutečné připojení k serveru (je-li použitelný) a posílání zpráv chatu po síti. Takže Empathy samo o sobě neumí ani jeden z protokolů, pouze CM říká, co chce udělat.

Nyní, abys vytvořil VoIP a videohovory, potřebuješ dvě věci. První částí je signalizace, např. řekneš druhé straně, že jí chceš zavolat, které audio/videokodeky podporuje atd. Tato část je specifikována protokolem a stará se o ni Telepathy CM. Druhou částí je samotné streamování audio/video dat po síti a jejich nahrávání/zobrazování. Většina z té práce je v podstatě stejná pro všechny protokoly a to je to, co pro nás dělá Farsight. Farsight samotný je postavený na GStreameru a používá jej pro veškeré zacházení s multimédii.

Jaký máš - jakožto člověk, který vyvíjí aplikaci využívající GStreamer, jenž v ní neslouží k přehrávání - názor na využití GStreameru pro tento typ aplikací?

S verzemi 0.10.x GStreamer konečně pro tento typ aplikací dospěl. Jak už to tak bývá, když používáte nějaký software úplně novým způsobem, narážíte na chyby, ale základní design je velmi schopný. Jedinou věcí, kterou bych rád vylepšil, jsou dynamické změny rour během přehrávání. Momentálně to je proveditelné (my to ve skutečnosti děláme), ale tak trochu trikem a musíte znát docela dost o tom, jak to v GStreameru funguje, abyste to udělali správně.

Nativním protokolem Empathy je XMPP, což je protokol, který používají Jabber a Google Talk. Mohl bys prosím vysvětlit, co XMPP je a jaké výhody přináší?

Já bych neřekl, že je XMPP náš nativní protokol, ale je to určitě ten, který je nejlépe podporovaný a nejvíce testovaný. XMPP je kompletně otevřený standard, což je velká výhoda oproti, řekněme, MSN, kde musí svobodný software vždy, když se v síti něco změní, dohánět rozjetý vlak. Také tvorba standardů pro XMPP je velmi otevřená, což nám umožňuje podílet se na ní a pomoci při psaní nových rozšíření pro věci, jako je podpora videa.

Další velkou výhodou je, že je decentralizovaný, kdokoliv může mít svůj vlastní XMPP server, pokud chce. Všechny tyto servery komunikují mezi sebou. To mi dovoluje komunikovat s lidmi s Google Talk, dokonce když používám svůj vlastní XMPP server.

Google nedávno přidal do své e-mailové služby videohovory, bude s ní Empathy schopné spolupracovat?

S touto novou službou se Google rozhodl nepoužít XMPP rozšíření pro hlas/video v podobě Jingle, ale místo toho rozšířil svůj vlastní protokol, protokol, který je také použit v klientovi Google Talk. Naštěstí již podporujeme starší verzi tohoto protokolu a s malými úpravami v telepathy-gabble (naše technologie na pozadí pro XMPP) jsme byli schopní podporovat i novější verzi. Nicméně někteří uživatelé hlásili problémy, když to s Empathy zkoušeli, takže to mám docela vysoko v seznamu věcí, které musím vyřešit.

Bohužel Google se rozhodl jako videokodek použít H264-SVC, pro který momentálně neexistuje žádná open-source implementace. Proto jsme nyní schopní podporovat pouze audio hovory. Naštěstí se zdá, že Google plánuje přidat podporu pro obvyklejší kodeky, jako je H264-AVC. Až k tomu dojde, měli bychom být schopní podporovat videohovory bez větších problémů.

Největším problémem videohovorů v Linuxu je v současnosti to, že kromě Theora a Dirac jsou všechny moderní videokodeky intenzivně patentovány. Takže žádná distribuce pro ně nemůže dodávat enkodéry. To se nezmění do té doby, dokud Google neuvede podporu pro Theora. Dokud se tak nestane, budou uživatelé i nadále nuceni získat tyto kodeky sami, aby věci rozchodili :(

Takže na základě tvých komentářů ohledně kodeků a free softwaru mám za to, že nejlepší volbou minimálně pro videohovory z Linuxu na Linux jsou kodeky Speex a Theora. Jak vhodné jsou tyto dva kodeky pro videokonference a jak dobře jsou podporovány v Empathy?

Speex je jeden z nejlepších kodeků pro hlasové přenosy. Je dobře podporován nejen v Empathy, ale i dalších klientech. Theora je také pěkný kodek, ale bohužel ne na stejné úrovni jako současné vedoucí kodeky. Podle lidí stojících za Theorou je to především kvůli omezením enkodéru, ne kodekem samotným. Pracuje se na tom, aby se situace zlepšila.

K tomu ale musím říct, že současný výkon (myšlena rychlost i kvalita) Theory je na současných počítačích více než dostačující. A mít videokonference fungující bez dodatečných kroků je rozhodně velké vítězství. Podpora Theory v Empathy není momentálně dokonalá, ale bude kompletní v momentě, kdy začneme používat Farsight2, k čemuž dojde během několika týdnů.

Většina uživatelů Linuxu pravděpodobně používá celou paletu aplikací, které potřebují pro komunikaci jako Pidgin, X-Chat a Ekiga. Jak vidíš Empathy v porovnání s nimi nyní a jaké jsou tvé dlouhodobé plány?

V posledním vydání GNOME bylo Empathy přijato jako součást desktopu. Nicméně distribuce se rozhodly nechat jako výchozí program Pidgin vzhledem k tomu, že Empathy postrádá nebo postrádalo různé funkce. Doufáme, že do vydání GNOME 2.26 většinu těchto problémů vyřešíme. V dlouhodobém horizontu plánujeme do Telepathy zapojovat více a více součástí GNOME. Jako příklad uvedu posílání souborů z Nautilu, sdílení odkazů z Epiphany, změna stavu na Pryč, když se díváte na film v Totemu, zveřejnění aktuálně hrané skladby z Rhythmboxu atd.

Jak X-Chat, tak Ekiga jsou více specializované pro specifické úlohy (IRC a SIP volání). Zatímco Empathy je možná bude schopné nahradit v případě běžného uživatele, předpokládám, že uživatelé se specifickými požadavky u nich zůstanou.

Empathy podporuje širokou kolekci protokolů, kromě XMPP/Jabber také například MSN, Yahoo a ICQ. Hádám, že hodně času je věnováno udržení interoperability s těmito proprietárními službami a probíhá častá spolupráce mezi různými open-source projekty tak, že se zjišťuje, kde je problém, když se vydá nová verze těchto služeb a někdo musí přijít na to, kde je problém?

V případě podpory proprietárních protokolů většinou závisíme na práci, která byla provedena jinými open-source projekty. Pro MSN máme Telepathy Butterfly, které používá knihovnu pymsn. Většina ostatních proprietárních protokolů je podporována Telepathy Haze, který interně používá libpurple (knihovnu, kterou používá Pidgin).

Empathy podporuje tu věc zvanou Salut. Jsem si jistý, že většina lidí o ní nikdy neslyšela, takže mohl bys prosím vysvětlit, co to je a co to dělá?

Salut je implementace rozšíření XMPP pro bezserverovou komunikaci. V podstatě to je protokol, kterému iChat říká Bonjour a je pod tímto názvem dostupný i v jiných klientech. Salut používá Avahi pro detekci lidi v místní síti, abyste s nimi mohli snadno komunikovat a v současných verzích i sdílet soubory.

Co podpora VoIP a videokonferencí v Salutu?

Dlouhodobý plán je sloučit Gabble a Salut do jednoho kódu, což znamená, že budeme schopní sdílet kód videokonference (mimo jiné) mezi oběma projekty.

Nedávno byl vydán Farsight2. Jaké jsou plány pro jeho použití v Empathy a které nové funkce tato knihovna pro Empathy zpřístupňuje?

Zrovna pracuji na portování Empathy z telepathy-stream-engine na telepathy-farsight. Telepathy-farsight je knihovna, která poskytuje základní lepidlo mezi Telepathy a Farsight2. Takže bychom měli vidět podporu Farsight2 v Empathy v jednom z dalších vydání.

Farsight2 podporuje celou lip-sync ve videohovorech, což je věc, kterou je samozřejmě dobré mít. Navíc nám dovoluje pořádně podporovat Theoru jako videokodek, což nyní ve skutečnosti neděláme. To znamená, že budeme v Empathy - díky použití kompletně svobodných kodeků a bez dalších nutných kroků - konečně schopní podporovat na linuxových systémech videokonference.

Dalším velkým benefitem je, že dává Empathy přímou kontrolu nad rourou médií, což mu umožňuje být mnohem flexibilnější a přizpůsobivější s ohledem na vstupní a výstupní zařízení. Například by mělo být možné, že si uživatel kdykoliv během VoIP hovoru připojí kameru a začne ji používat. Nebo během hovoru přepojí zvukový výstup z reproduktorů do sluchátek. Dalším nápadem, který je nasnadě, je použití Clutteru pro videowidget pro přidání nějakých pěkných blyštivých efektů.

Telepathy-farsight není velký krok jenom pro Empathy. Nedávno jsme do něj přidali vazby na Python, což zpřístupňuje všechny jeho výhody také programům používajícím Python. Konkrétně víme, že lidé vyvíjející Elisu již před nějakou dobou plánovali přidat videohovory prostřednictvím Telepathy. Problémem pro ně bylo, že kvůli řádné integraci potřebují kontrolovat výstupy, což prostě před tím možné nebylo.

Jaká je cestovní mapa, kterou by se měl vývoj Empathy dále ubírat?

V krátkodobém horizontu plánujeme trochu naleštit uživatelské prostředí a přidat některé funkce, které oproti jiným klientům stále postrádáme. Přenos souborů byl vlastností, kterou si mnoho lidí žádalo a která byla do Empathy přidána nedávno. Nyní je podporována pouze v Salutu, ale intenzivně pracujeme také na podpoře v jiných protokolech.

V dlouhodobém horizontu, jak už jsem řekl dříve, bychom rádi viděli větší integraci s desktopem GNOME. Také bych rád viděl více aplikací využívajících Telepathy pro spolupráci. Měli jsme několik příležitostí ukázat, jak mohou aplikace díky Telepathy spolupracovat, ale bohužel některé ze základních frameworků, které jsou pro to potřeba, jsou stále nezralé. V posledních několika měsících jsme přidali do specifikace Telepathy mnoho věcí, abychom tuto situaci zlepšili. Tato vylepšení momentálně čekají na zařazení.

Vrabci si cvrlikají o něčem zvaném Mingle. Co bys o této nové technologii a jejím využití v Empathy mohl poodhalit?

Před tím, než vysvětlím Mingle, musím začít s Jingle. Jingle je rozšíření XMPP, který se momentálně zařazuje do standardu, což umožní klientům vytvářet audio/videohovory (kromě dalších věcí). Mingle je postavené na Jingle, aby umožňovalo audio/videokonference s více než dvěma lidmi. Nedávno jsme ohlásili první návrh protokolu a malého klienta v Pythonu, který to demonstruje. Jednou z velkých výhod Mingle je, že nebude potřebovat žádné speciální servery nebo podporu infrastruktury, aby mohla být vytvořena malá konference (řekněme čtyři až pět lidí). Pro větší konference je pravděpodobně nějaká mixující infrastruktura potřebná vzhledem k tomu, že byste mohli narazit na limity CPU a přenosu dat, ale máme nápady, jak to vyřešit co nejtransparentnější cestou. Více informací o Mingle se dozvíte na našich stránkách. :)

Za několik měsíců začneme přidávat podporu Mingle do Telepathy a Empathy, čímž lidem umožníme jednoduše vytvořit malé konference s přáteli. :)

Které jiné multimediální aplikace používáš?

Používám Totem pro přehrávání videa a Rhythmbox pro přehrávání hudby. Doma máme také krabičku, která funguje jako mediální centrum využívající Elisu.

Které věci ohledně multimédií v GNOME a Linuxu bys rád viděl uskutečněné?

Obecně bych chtěl, aby věci prostě fungovaly, i když pracují s různými vstupy a výstupy. V tomto ohledu je GNOME momentálně poněkud statické. Nastavíte si webkameru, reproduktory a mikrofon a tím to hasne. Ale ve skutečnosti chtějí mít lidé možnost zapojovat USB sluchátka, webkamery, používat bluetooth sluchátka atd. a prostě je jen používat, ať dělají cokoliv. PulseAudio je velkým krokem správným směrem, aby tohle bylo možné pro zvuk, potřebujeme ale lepší integraci s desktopem.

Rozhovor vedl Christian F.K. Schaller, originál: Interview with Sjoerd Simons of Empathy.

Diskuze (4) Nahoru