Вещаем музыку в сеть: Icecast

В давние-давние времена, когда пользователей в нашей сети было не так много и сервера большую часть времени простаивали, руки страшно чесались их чем-нибудь нагрузить. Время от времени на них пережималось видео, время от времени я md5 хэши на них подбирал (хорошо, начальство не знает, наверное).

Основная цель была, тем не менее, не обеспечение непрерывной нагрузки серверов, а обеспечение пользователей дополнительными сервисами в рамках сети. Одним из первых сервисов стало он-лайн радио, которое постепенно выросло из папки с музыкой на внутреннем FTP-сервере.

Так как сервера работают под Debian Linux, то проблема с радио не сулила быстрого решения — привычного софта с кнопочками и галочками там не много, тем более, что возможность их настройки я имел только по ночам и удаленно, через ssh.

Простые опыты по трансляции музыки в сеть начались в домашней сети и были намечены два программных продукта, на мой взгляд 100% удовлетворявшим всем моим требованиям. Это сервер потокового вещания аудио Icecast и утилита для отсылки аудиопотока на сервер для вещания Ices. Эти две программы позволяют создать 100% функциональный сервер потокового аудио.

Установка этих приложений из приложений предельна проста (но может быть различие в названии пакета в зависимости от дистрибутива):

sudo apt-get install icecast

sudo apt-get install ices

После установки пакетов создаются необходимые конфиги и аудио сервер, в целом, готов к использованию.  Я устанавливал эти приложения из исходников, поэтому конфиги создавал и правил в ручную, Вам, я надеюсь, этого не потребуется. Хотя, хочу отметить некоторые их инетерсные места (конфигов, ествественно):

ices.conf.xml

<?xml version=»1.0″?>
<ices:Configuration xmlns:ices=»http://www.icecast.org/projects/ices»>
<Playlist>
<Randomize>1</Randomize>
<File>/var/radio/playlist.txt</File>
<Type>builtin</Type>
<Module>ices</Module>
</Playlist>
<Execution>
<Background>1</Background>
<Verbose>0</Verbose>
<BaseDirectory>/tmp</BaseDirectory>
</Execution>
<Stream>
<Server>
<Hostname>127.0.0.1</Hostname>
<Port>8000</Port>
<Password>hackme</Password>
<Protocol>http</Protocol>
</Server>
<Mountpoint>/radio</Mountpoint>
<Dumpfile>ices.dump</Dumpfile>
<Name>Default stream</Name>
<Genre>Default genre</Genre>
<Description>Default description</Description>
<URL>http://localhost/</URL>
<Public>0</Public>
<Bitrate>128</Bitrate>
<Reencode>0</Reencode>
<Samplerate>44100</Samplerate>
<Channels>2</Channels>
</Stream>
</ices:Configuration>

Все поля конфигурационного файла, в целом, очевидны.  Остановиться хочу только на поле File — это путь к файлу плейлиста.

Так как ни Ices, ни Icecast сами не создают файл плейлиста, скрипт генерации пришлось написать в ручную и именно им я и хочу поделиться.

Создаем файл /etc/init.d/radio, например, даем ему права на исполнение sudo chmod +x /etc/init.d/radio

Содержимое файла следующее:#! /bin/bash

# Убиваем все старые на всякий случай
killall ices
killall icecast

/usr/local/bin/icecast -b -c /etc/icecast.xml

# Пишем запись в лог

date >> /var/log/radio/service.log
echo ‘Убита предыдущая версия процессов’ >> /var/log/radio/service.log;

# Удаляем предыдущий файл плейлиста

rm /var/log/radio/playlist.txt
rm /var/log/radio/playlist_trance.txt

# Создаем новый

#ls /var/ftp_radio/ | grep .mp3 | sed ‘s/^(.*)/../1/’ > /var/log/radio/playlist.txt

find /var/ftp/pub/Media/Audio/Unsorted | grep .mp3 > /var/log/radio/playlist.txt
find /var/ftp/pub/Media/Audio/Trance | grep .mp3 > /var/log/radio/playlist_trance.txt
find /var/ftp/pub/Media/Audio/Rock | grep .mp3 > /var/log/radio/playlist_rock.txt

# Запускаем вещалку в фоновом режиме

/var/log/radio/ices -B -c /etc/ices.conf
/var/log/radio/ices -B -c /etc/ices_rock.conf
/var/log/radio/ices -B -c /etc/ices_trance.conf

# Пишем в лог

date >> /var/log/radio/service.log
echo ‘Радио запущено’ >> /var/log/radio/service.log

Здесь я запускаю на одном сервере вещания три потока. При необходимости вы можете изменить скрипт под свои нужды.

Чтобы вещание радио запусукалось каждый раз при старте системы нужно сделать

sudo rc-update add radio default

Из недостатков следует отметить тот факт, что три потока радио грузят среднюю машину (с селероном 2 ГГц и 1 Гб ОЗУ) почти на 80%.

Lazarus: Паскаль без границ

Паскаль — один из самых распространенных языков программирования.  Всем известно, что большинство приложений для Linux разрабатываются на С++, тем не менее, и на Паскале можно творить изумительные вещи. Особенно, если его возможности не ограничены псевдографикой и консолью.

В свое время и Делфи тоже вырос и такого же паскаля, оброс библиотекой VCL и стал всем известным Delphi, для которого разработано множество великое расширений. Естественно, что Borland — фирма не маленькая и стремится завоевать как можно большую часть рынка и для UNIX платформ тоже выпустила нечто вроде Delphi — Cylix. Все бы ничего, но среда для разработки платная. Попадался мне диск с ней как-то, но воспользоваться кряком я так и не смог, видимо, что-то не так делал, или версия не совпала.

Тем не менее, на сегодняшний момент существует достойная альтернатива Borland Delphi — Lazarus. Среда разработки с графическим интерфейсом. В качестве языка программирования используется знакомый многим Паскаль, синтаксис полностью соответствует Делфям, жаль, только библиотека визуальных компонентов меньше.

Для работы под со средой, ее надо сначала установить. В Ubuntu для этого достаточно установить пакеты:

fpc

fps-source

lazarus

ну, и ествественно, кучу зависимостей, в основном -dev библиотек.

Смотрим через Призму на веб-приложения

Продолжу рассказывать о сервисах Гугла и веб-приложениях. Почему именно о Гугле? Да все просто: на мой взгляд, именно эта компания планомерно развивается в направлении интеграции обычных пользовательских приложений в Интернет, старается сгладить разницу между ними. Я уже рассказывал про интеграцию Гугл.Документов с OpenOffice и немного останавливался на работе этих служб в режиме офф-лайн. Именно эта возможность дает очень широкие возможности для работы приложений Гугл на компьютере с непостоянным или медленным соединением с Сетью.

Тем не менее, все эти приложения запускаются в браузере, а лезти в закладки, искать из сотен нужную, чтобы посмотреть почту — уже не интересно, раз говорим о веб-приложениях. Гораздо удобнее было бы запускать их как обычные программы типа калькулятора двойным щелчком по значку. Многие скажут, что есть решение: вынести ссылку на страницу на рабочий стол и горя не знать и окажутся правы, но только отчасти. Проблема останется в том, что будет загружаться браузер, вместе со всеми темами, плагинами, надстройками, которые наверняка не нужны для простого просмотра почты, для этого избыточны многие возможности даже стандартного браузера.

Здесь на помощь приходит не совсем стандартный браузер, а заточенный для работы с одной единственной странией - Mozilla Prism. В большинстве дистрибутивов Linux уже есть этот браузер и надстройки для него специально для работы со стандартными сервисами Google, достаточно установить следующие пакеты:

prism-google-analytics

prism-google-calendar

prism-google-docs

prism-google-gorups

prism-google-reader

prism-google-talk

prism-google-mail

для работы с соответствующими сервисами. Это легко делается, например, через Synaptic в Ubuntu

Интеграция OpenOffice и Google Документы

По настоящему оцениваешь достоинства соверменных средств связи только тогда, когда они выручают тебя в сложой ситуации. Сейчас сложно найти пользователей Интернета, кто не пользовался поиском от Google. Среди них наверняка найдутся те, кто использует Google не только как поисковую систему, но и как почтовую службу. Служба GMail, особенно в сочетании с Google Gears и режимом работы без подключения к Интернету с легкостью заменяет почтовый клиент, будь то Mozilla Thunderbird или M$ Outlook или подобное. Да, и Outlook тоже, только не надо говорить, что это не только почтовый клиент, но и планировщик времени и адресная книга. Такие службы Google (далее Гугла), как Гугл.Календарь и Гугл.Reader тоже доступны в режиме офф-лайн и позволяют планировать свое время и читать новости из RSS без подключения к сети.

У меня в Linux эти службы заработали в режиме нестабильного соединения или вообще без соединения с Интернетом с пол-пинка, а вот одна из самых полезных — Гугл.Документы почему-то не хочет синхронизироваться с моей Лисой и стабильно выдает ошибку, проблему не удается решить даже через Гугл.Группы.

Гугл.Документы — чрезвычайно полезная служба, так как позволяет работать с документами прямо в браузере: создавать текстовые документы, электронные таблицы, презентации. Прямо в браузере их можно печатать на виртуальном принтере в формат PDF, предоставлять друзьям доступ на чтение или редактирование, публиковать документы как простые веб-страницы.

Все в этой службе хорошо, но, как всегда, конечный пользовател чем-то недоволен. А недоволен, например, тем, что не работают тут пользовательские макросы и старательно настроенные комбинации клавиш, которые настроены,  например, в OpenOffice Writer`е.

Тем не менее, проблема эта даже очень легко решаема. Для этого качаем отсюда плагин к ОткрытомуОфису и устанавливаем его через меню Сервис-Управление-Расширениям-Добавить. Указываем путь к скачанному файлу и, собственно, все. Перезапускаем офис и замечаем новую панельку инструментов с пятью кнопками.

Для использования совместно со службой Google.Docs нужны первые две кнопки: Экспортировать в Гугл.Документы (закачать на сервер) и Импортировать из Гугл.Документов (скачать и редактировать). При нажатии на любую из них появляется окно авторизации, где нужно указать свой логин и пароль для доступа к сервисам Гугла.

При экспорте документа в Гугл.Документы слева от имен файлов в скобках написано (new) и (update). Это означает, что если выбрать (new), то документ будет сохранен как новый, а (update) означает обновление документа, то есть просто будет внесены изменения.

Нельзя не упомянуть один очень важный момент. Для работы с плагинами в OpenOffice необходимо наличие пакета openoffice.org-java-common, без него плагины не устанавливаются.

Mozilla Songbird: Первый взгляд

Попался мне на глаза свежий номер журнальчика LinuxFormat, журнальчик за апрель, за май еще не пришел. Журнал в последнее время стал совершенно неинтесеным. Так, одна-две статьи стоят того, чтобы прочитать, остальные — чистая вода или переводы иностранных текстов. Ну почти переводные ман-ы))

Одна из интересных статей (потому что с картинками!) была о сравнении двух аудио плееров: Amarok и Mozilla Songbird. Мне эта статья не особо полезна, как сама по себе, так как кеды я в своей Убунте и не ставил, а музыку до этого слушал Rhytmbox`ом. К продуктам Mozilla я отношусь с особым теплом и любовью, так что не попробовать их плеер просто нельзя.

Технология установки проста, как и у всех продуктов Мозиллы. К сожалению, в пакетах для Убунты ПевчегоПтица (назовем так, по аналогии с ОгнеЛисом для Firefox и ГромоПтицем для ThunderBird) нету, качаем сырца с офф. сайта. Пользователи M$ Windows могут не отчаиваться, новинку они тоже смогут попробовать, так как версия для Windows как раз слева от версии для Linux.

Итак, сырцы скачали, смотрим в архив, а там куча файлов. В целом, архив можно распаковать куда удобно и запустить из консольки ./songbird и уже слушать музыку, но мы пойдем другим путем =)

Идем в консольку и делаем:

sudo cp /путь/к/архиву/с/sunbird /opt

У меня это выглядело вот так:

cp /home/neo/Рабочий стол/Songbird_1.1.2-1042_linux-i686.tar.gz /opt

Дальше переходим в /opt и распаковываем

cd /opt

sudo tar -zxvf  Songbird_1.1.2-1042_linux-i686.tar.gz

В результате у нас  в /opt должна появиться папочка Songbird.

Ставим себе права на нее

sudo chown -R ваш_логин:ваш_логин Songbird

Вроде бы все, установили =) Теперь можем запускать. А запускать мы можем как из консоли командой

/opt/Songbird/songbird

А еще мы можем создать ссылку в главном меню. У меня Гном, поэтому ссылку будем создавать для него. Не думаю, что в кедах что-то сильно по-другому.

Щелкаем правой кнопкой по бубну (ну логотип Убунты рядом с надписью Приложения), выбираем Изменить меню. Появилось менюшка в котором перечислены подменю вместе с программами, которые в них находятся. Выбираем нужный пункт меню и нажимаем кнопку Новый элемент. Появляется окошко для создания нового пункта меню. Вводим: тип — приложение, имя — Songbird, команда — /opt/Songbird/songbird, примечанием нам не нужно, мы и так знаем зачем нужна эта программа =)

Теперь щелкам.. Не-а, не на ОК, а на кнопку на пружинке слева. Появляется еще одно окошко для выбора кнопки для плеера. Мы можем выбрать что-то из стандартных значков, а можем перейти в папку /opt/Songbird (кнопку Обзор, я надеюсь, не потеряли) и нажать ОК. Выбираем значек с желтенькой птичкой, сохраняемся и жмем ОК. Все, можно слушать музыку и скроббиться в Last.fm

Songbird в действии

Songbird в действии

Страница 3 из 41234
РЕКЛАМА
СЧЕТЧИКИ
 
ДРУЗЬЯ САЙТА
МОИ ПРОЕКТЫ
  • theLesenok.ru
  • 7genkov.ru