Алексей Владыкин


Google Talk & Pidgin

31 января 2011

За последние полгода видеозвонки по Skype прочно вошли в нашу жизнь: Маришка с удовольствием общается с бабушкой и дедушкой, которые живут в Мурманске. Но удовольствие от общения портится разрывами связи. То с одной, то с другой стороны пропадает видео, и остается одна голосовая связь. Раньше этого не было, а теперь случается с завидной регулярностью.

Достоверно не известно, что является причиной указанных проблем, но это повод попробовать конкурирующие технологии видеосвязи, например, Google Talk. В основе GTalk лежит открытый стандартный протокол XMPP, а значит для связи можно использовать любую из поддерживающих его клиентских программ. Это существенный плюс по сравнению со Skype с его закрытым проприетарным протоколом и клиентом под Linux, не обновлявшимся с 2009-го года (ходят слухи, что разработка клиента под Linux прекращена).

Итак, пробуем Google Talk. Как и следовало ожидать, сеанс видеосвязи между двумя GTalk’ами (на обоих концах Firefox + GTalk-плагин под Windows) прошел нормально. В принципе этот сценарий покрывает 80% наших потребностей. Однако остаются еще 20%: это видеозвонки с моего ноутбука, т.е. из-под Gentoo Linux. Тут-то, как обычно, и начинается самое интересное.

Задача-максимум — подключиться к GTalk из Pidgin. Последним я пользуюсь давно и с удовольствием. А радостная новость о том, что в Pidgin 2.6 добавлена поддержка аудио- и видеозвонков в GTalk, дала надежду на лучшее. Действительно, мой Pidgin 2.7.9 легко подключился к учетной записи и получил список контактов GTalk. Однако любая попытка начать видеочат намертво вешала Pidgin.

Да, это было бы слишком легко…​ Достаточно быстро нагуглились необходимые па с бубном:

  • обновить farsight2 (по совету отсюда; последняя доступная в Gentoo версия — 0.0.20);

  • установить media-plugins/gst-plugins-x264 (спасибо Empathy FAQ).

Стало лучше, и даже видео пошло…​ но…​ только в одну сторону. Pidgin видит видео от GTalk, но GTalk не видит видео от Pidgin. По логике, проблема должна быть с кодером x264, однако gst-inspect показывает, что x264enc присутствует:

$ gst-inspect-0.10 | grep 264
x264:  x264enc: x264enc
h264parse:  h264parse: H264Parse
rtp:  rtph264pay: RTP H264 payloader
rtp:  rtph264depay: RTP H264 depayloader
typefindfunctions: video/x-h264: h264, x264, 264
ffmpeg:  ffmux_ipod: FFmpeg iPod H.264 MP4 format muxer
ffmpeg:  ffdec_h264: FFmpeg H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 decoder

К сожалению, проблему победить пока не удалось. Буду экспериментировать дальше.

К оглавлению блога