Аудио и видео звонки в Jabber

Pidgin Logo

Собственно, предыстория здесь. Очень долгое время я искал джаббер-клиента под Linux, который бы позволял совершать голосовые и видеозвонки другим людям. Кроме древнего и уже почти мертвого проекта Jabbin, альтернатив не было. Потом появлялись полухакерские сборки Kopete с поддержкой jingle, которые были очень капризными. Но все это было не то.

Теперь же есть минимум 2 Open Source jabber клиента, которые могут совершать аудио и видеозвонки – это Empathy и Pidgin (начиная с версии 2.6.1)

Смутило вот что, когда ставишь эти клиенты через Yast, не все зависимости соблюдаются. Т.е. после установки работает только текстовый чат, но не голосовой и не видео.

Чтобы все заработало, надо установить следующие пакеты: gst-plugins-good, gst-plugins-bad, gst-ffmpeg (в OpenSuSe 11.2 они называются gstreamer-0_10-plugins-good, gstreamer-0_10-plugins-bad, gstreamer-0_10-ffmpeg). После установки перезапускаем джаббер-клиенты, вклюаем в pidgin плагин для аудио и видеозвонков и вуаля – все работает. Причем работать будет как в Empathy, так и в Pidgin

На вкус и цвет товарищей нет, но Pidgin IMHO лучше, чем Empathy – больше возможностей, плагинов и прочих фич

Как скачать видео с сайта

Есть как минимум 4 разных способа сграбить видео с дружественных сайтов. Итак:

1. Воспользоваться сторонним сервисом, вроде этого: keepvid.com.

Плюсы: удобно; дружественный сайт не увидит ваш IP адрес.

Минусы: Зависимость от стороннего сервиса; не все сайты с видео поддерживаются

2. Использовать плагин в браузере, для Firefox это могут быть Download Helper, Flash Video Resources Downloader или подобная приблуда.

Плюсы: легко настраивается; несложно скачивать

Минусы: Firefox от плагинов жрет больше памяти; работает с небольшим числом сайтов

3. Записать все, что происходит на экране, в видеофайл. Для линуксоидов это совсем не сложно, куча бесплатных програм позволяет это делать. Например, RecordMyDesktop.

Плюсы: Работает железобетонно всегда и везде; Можно отключить звук при записи, или наложить свой; Видео можно записывать не только целиком, но и частями, обрезая всяческие логотипы, бегущие строки и прочий мусор; Можно записывать не только видео, но и движения курсора мыши, например.

Минусы: Требуется мощный компьютер, чтобы одновременно проигрывать видео и записывать его, ресурсы кушаются совсем не кисло; Качество записанного изображения может быть хуже, если число кадров в секунду в записываемом видео не совпадает с тем же параметром в проигрываемом ролике (т.е. требуется дополнительная настройка).

И на закуску, мой любимый способ:
4. Вытащить видео из кэша браузера Работает оно примерно так. Открываем интересующее нас видео:

Ждем, когда видео полностью загрузится, и лезем в /tmp , т.к. там Firefox хранит свой кэш. Вот что я нашел у себя:

ed@notebook:/tmp> ls -l Flash*
-rw------- 1 ed users 14196852 Ноя 7 14:35 FlashZlG62O

Копируем его куда-нибудь, и переименовываем в “The Unforgiven cover with solo – Metallica.flv” . Все, ролик можно смотреть оффлайн.

Update: В комментариях к этому сообщению я узнал о более элегантном способе получить видеофайл из кэша. После того, как видео полностью загрузилось, надо в адресную строку Firefox вбить:
about:cache
Далее смотрим дисковый кэш (Disk cache device => List Cache Entries, и ищем файл по размеру (он совпадает байт в байт с временным файлом). И за пару кликов его легко можно сохранить в любое удобное место. По трудозатратам такой способ чуть сложнее копирования временного файла, но зато он работает под Windows и позволяет сохранять файл даже в том случае, когда копирование не получается (например, если винда ругается на то, что файл открыт).

Плюсы: Не надо ничего дополнительно ставить, все работает и так. На всех сайтах, что я проверял, этот способ работает на ура.

Минусы: Надо напрягаться, копировать и переименовывать файл. Иначе рано или поздно кэш очистится и видео придется качать заново. Но этот недостаток не такой уж и страшный.

Update 2: Если в /tmp не находятся файлы по команде

$ ls -l Flash*

это означает, что у вас используется обновленная версия Flash-плеера, и чтобы вы смогли достать файл из кэша, прочитайте статью Как скачать видео с сайта: продолжение.

OpenSuSe 11.0 Настрока раскладки клавиатуры

Эти настройки желательно делать сразу, чтобы потом не было мучительно больно за бездарно потраченное время проблем с общением на разных языках. А спохватился я тогда, когда в одном окошке Skype общался с заказчиком, а в окошке Jabber’а с одним из субподрядчиков; заказчик шпрехает только на рiдной аглицкой мове, подрядчик же в основном по-русски говорит когда трезвый. И так задолбало меня переключение языка клавы, что я решил разобраться, можно ли привязать язык клавиатуры к конкретному окну в KDE.

Теоретически все просто, идем в Настройки рабочего стола Центра управления КДЕ, где методом научного тыка попадаем в раскладки клавиатуры:

Настройка раскладки клавиатуры в OpenSuSe 11.0 KDE 3.5.9, часть 1
Настройка раскладки клавиатуры в OpenSuSe 11.0 KDE 3.5.9, часть 2
Настройка раскладки клавиатуры в OpenSuSe 11.0 KDE 3.5.9, часть 3

Картинка 1, вопрос – а нахрена зачем я добавил вторую раскладку клавиатуры, если раскладка RU поддерживает латиницу? А оказывается, если оставить в настройках только одну раскладку клавиатуры (как у меня и было сделано), то рисунок на картинке 2 никогда бы не получился. При сохранении настроек политика переключения автоматически слетала в “Глобально”, а не оставалась в состоянии “Окно”. И следовательно, каждое переключение языка отражалось на всех открытых окнах. Отсюда и все проблемы с переключением клавы.

Настройка проводного интернета от Билайн в OpenSuSe

В моей квартире разгром, строители начали долгожданный ремонт, в связи с чем мне пришлось на время сменить место жительства и подключиться к другому интернет-провайдеру. Особенно не заморачиваясь, решил подключиться к первому провайдеру, который проведет кабель в квартиру. Им и оказался Билайн.

Интернет от Билайна настраиваится легко под виндой, но вот со всяческими линуксами он дружить совершенно не хочет. На официальном сайте у них есть только настройки под винду да под Mac OS, и например настроить его под SuSe оказалось непросто.

Всем линуксоидам, на кого свалилось несчастье в виде интернета от Билайн, советую почитать вот эти топики:

  • http://homenet.corbina.net/index.php?showtopic=204977
  • http://homenet.corbina.net/index.php?showtopic=171860
  • и вообще посмотреть всю ветку:

  • http://homenet.corbina.net/index.php?showforum=629
  • Я у себя настроил интернет без использования kvpnc. Я так и не раскопал, как в нем можно отключить буферизацию pptp. А с включенной буферизацией иногда происходили непонятные тормоза в работе. И еще, MTU пришлось выставить ниже 1500, поскольку с MTU 1500 довольно большой процент пактов пропадал и довольно много сервисов переставало работать.

    В общем, интернет от Билайна мне не понравился. Геморрой с настройкой слишком большой, чтобы я и дальше пользовался услугами этого провайдера.

    P.S. Я тут из Черногории недавно вернулся, начинаю потихоньку выкладывать материалы о поездке.

    Как подружить вебкамеру Genius e Messenger 112 и OpenSUSE

    Genius e-Messenger 112, отвратительная веб-камера

    Вебкамера Genius e Messenger 112 одна из самых дешевых, и одна из самых хреновых. Родные драйвера есть только под винду, а под linux она без напильника и танцев с бубном работать не желает.

    Итак, если вы счастливый обладатель OpenSUSE версии до 11.1 (версия ядра до 2.6.27), то камеру завести относительно несложно. Надо установить пакет gspcav, наложить на него патч, собрать и установить модуль gspca — камера заведется без проблем.

    Но если вы несчастный обладатель самого глючного дистрибутива OpenSUSE, ваши беды не закончились на его установке. Дело в том, что начиная с версии ядра 2.6.27 программисты решили вымахнуться и перенесли поддержку драйверов gspca из отдельного пакета в состав ядра. И разумеется, прозевали поддержку этой злосчастной камеры. Правда, пообещали, что начиная с версии ядра 2.6.28 эта камера будет работать.

    Но на сегодняшний день последней версией ядра для OpenSUSE 11.1 является 2.6.27, поэтому или придется драйвер собрать руками, или скачать / ждать новую версию ядра. Ждать мне было лень, поэтому я скачал исходники ядра, и поправил файл gspca_pac207.c, дописав одну выделенную строчку:


    528 static const __devinitdata struct usb_device_id device_table[] = {
    529 {USB_DEVICE(0x041e, 0x4028)},
    530 {USB_DEVICE(0x093a, 0x2460)},
    531 {USB_DEVICE(0x093a, 0x2463)},
    532 {USB_DEVICE(0x093a, 0x2464)},
    533 {USB_DEVICE(0x093a, 0x2468)},
    534 {USB_DEVICE(0x093a, 0x2470)},
    535 {USB_DEVICE(0x093a, 0x2471)},
    536 {USB_DEVICE(0x093a, 0x2476)},
    537 {USB_DEVICE(0x093a, 0x2472)},
    538 {USB_DEVICE(0x2001, 0xf115)},
    539 {}
    540 };

    Модуль собрался, и заработал, но с глюками. Cheese, Skype работают нормально, а вот camorama не завелась. Яркость изображения регулируется с помощью v4lctl, а вот как регулировать контрастность или цветовой баланс — хз. В старой версии ядра таких проблем не было.

    OpenSUSE, Skype и отправка SMS

    Skype Logo

    На сегодняшний день последней версией скайпа для OpenSUSE является версия 2.0.0.72. Возможность отправлять СМСки в скайпе появилась только с версии 2.5, но как оказалось, отправить SMS можно и из OpenSUSE, и из Ubuntu с использованием Skype API on Linux.

    Для того, чтобы заработала отправка SMS, надо установить сам Skype, а также Python wrapper Skype4Py, и утилиту Skysentials.

    После запуска видим Skysentials видим вполне интуитивно понятную тулзу для отправки SMS:

    Отправка СМС из скапа под линуксом

    Отправка СМС не бесплатная, но сопоставима по стоимости с отправкой с мобильника. А с учетом того, что сейчас скайп активно рассылает ваучеры на пополнение баланса, можно и попробовать.

    Я испытал это чудо буржуйской техники, и выяснил две вещи.

  • Отправка СМС отлично работает под OpenSUSE, только вот Skype4Py пришлось чуть-чуть напильником доработать (в первой строчке заменить python2.5 на python2.6)
  • СМС в Черногорию отправить нельзя.
  • Я в восторге от Google App Engine

    Логотип Google App Engine

    Не так давно я обратился в истинную веру стал изучать Python, и как оказалось, не зря. Питон уже давно успешно используется Гуглом в качестве одного из официальных языков разработки веб-приложений, и на сегодняшний день это один из двух языков, на котором легко пишутся приложения для Google App Engine (второй язык – Java)

    Гугл предлагает хостить такие приложения совершенно бесплатно. Те, кто в этом шарит, может слепить весьма достойные приложения. Хостинг этот весьма необычный, нет привычного доступа по FTP, SSH; все делается через консоль установленного фреймворка. Статику заливать можно, использовать БД – тоже. Но это будет не привычная всем MySQL или Oracle, это какая-то своя гугловская хитрая база данных, к которой можно строить запросы с помощью GQL, в чем-то похожий на привычных нам SQL.

    Дело было вечером, и вместо скачивания фильмов из сети, исключительно интереса ради я решил написать на Python игру “Угадай число” и выложить ее на бесплатный гуглохостинг. На нем все работает также стабильно, как и дома.

    Интересно то, что к бесплатному хостингу от гугла запросто можно прикрутить свой домен и хостить свои разработки, не нагружая свой VDS. При всем уважении к хостеру, вряд ли по надежности он сравнится с бесплатным хостингом от Google.

    Экспорт баз MySQL

    При переносе баз MySQL с одного сервера на другой я с удивлением обнаружил, что хранимые процедуры и функции не перенеслись, а остальные структуры перенеслись корректно. Оказывается, mysqldump по умолчанию не экспортирует функции и процедуры, и для того, чтобы их вынести в дамп, параметры экспорта надо указывать отдельно:

    mysqldump -u username -p db_name –routines –extended-insert >dump.sql

    Как получить список дат в mysql

    Однажды мне потребовалось получить список дат на каждый день 2009 года. Как оказалось, в mysql такой список получить очень просто.

    Для этого нужна всего лишь любая таблица, в которой есть не меньше 365 строк. У меня такая таблица была, и называется она games. Скрипт выглядит так:


    SET @rownum:=0;
    select adddate('2008-12-31',interval @rownum:=@rownum+1 DAY) next_date from games limit 0,365;

    OpenSuSe 11.1: Самый глючный дистрибутив всех времен и народов

    OpenSuSe Logo

    Не так давно я обновлял систему с OpenSuSe 11.0, как обычно, запустив обновление. После него отказались работать X, mplayer не показывал фильмы в fullscreen mode и творилось много неприятного. В связи с чем было принято решение снести все нафиг и поставить OpenSuSe 11.1, ведь в прошлый раз все произошло безболезненно.

    Однако, проблемы начались сразу после установки. KDE4 оказался зело глючный, по крайней мере в без напильника многое работать не стало. Например, kget отказывался скачивать поставленные в очередь файлы, akregator рушился при добавлении RSS лент в ридер.

    В связи с чем я и переставил систему на SuSe 11.1 с KDE 3.5. Но на этом мои злоключения не закончились. Хроническая болезнь всех видеокарт ATI продолжается вместе с любым дистрибутивом линукса. Каждая инсталляция превращается в головную боль, поскольку система с упорством маньяка ставит глюкавый драйвер radeonhd, вместо родного ATI-шного fglrx.

    Эта проблема непобедима, поскольку драйвера видеокарт ATI содержат какой-то мегасекретный код, который они и прячут как могут. Т.е. никогда мы не увидим исходников дров, и они не будут включены в дистрибутивы линуксов из-за различий в лицензионном соглашении.

    Но это все лирика. Установка драйверов старым добрым способом, описанным для SuSe 10.3, не дала желаемый результат. Драйвер встал, но 3D ускорение работало из рук вон плохо.
    Симптомы были такие:

    > glxinfo | grep direct
    direct rendering: Yes

    glxgears показывал порядка 300 кадров в секунду (что для карты с ускорителем и для маленького окошка слишком мало).

    fgl_glxgears не запускался, рушился с вот такой ошибкой:
    X Error of failed request: GLXUnsupportedPrivateRequest

    Лечится просто, надо в .bashrc дописать вот такую строчку:
    export LD_LIBRARY_PATH=/usr/X11R6/lib:$LD_LIBRARY_PATH
    и перелогиниться после этого.

    Сразу заработал fgl_glxgears и Quake3, и жизнь снова стала прекрасна и замечательна… казалось бы.

    Второй серьезный баг был с настройкой параметров клавиатуры. После запуска Sax2 слетели нафиг настройки, оставался или только русский язык, или только латиница. Лечится следующим образом:

    В файле /etc/X11/xinit/xinitrc.common надо закомментировать строчки 103 и 104:

    xdpyinfo | grep -q “X.Org version: 6.9.0″ || \
    setxkbmap -print | xkbcomp – $DISPLAY

    Это сильно облегчит жизнь при настройке клавиатуры через Sax2, официально зарегистрированный баг SuSe 11.1: https://bugzilla.novell.com/show_bug.cgi?id=432627

    Ну и еще одна серьезная пакость была в этом дистрибутиве, после установки SuSe 11.1 перестал работать звук. Эти товарищи включили кривой набор пакетов ALSA, в результате чего и звук пропал. Лечится обновлением драйверов до последней версии:

    zypper ar http://download.opensuse.org/repositories/multimedia:/audio/openSUSE_11.1/ multimedia

    zypper install alsa alsa-utils alsa-tools alsa-firmware libasound2

    zypper rr multimedia

    далее в зависимости от ядра, выполняются следующие команды:

    zypper ar http://download.opensuse.org/repositories/multimedia:/audio:/KMP/openSUSE_11.1/ multimedia

    zypper install alsa-driver-kmp-default

    zypper rr multimedia

    (для ядра kernel 2.6.27.7_9.1-1.1-default i386 or x86_64 GNU/Linux (openSUSE-11.1)

    или

    zypper ar http://download.opensuse.org/repositories/multimedia:/audio:/KMP/openSUSE_11.1/ multimedia

    zypper install alsa-driver-kmp-pae

    zypper rr multimedia

    (для ядра с kernel 2.6.27.7_9.1-1.1-pae i386 GNU/Linux (openSUSE-11.1)

    В общем, дистрибутив получился просто отвратительным, без напильника, гугления и танцов с бубном ее не настроить. Новичкам такой дистрибутив не рекомендую.