Подскажите пожалуйста, существует ли в природе готовый набор программ для *nix, который бы без бубнов завелся и смог быстренько создать простейшую интернет-радиостанцию из папки с mp3 файлами? Хочется: указать папку с mp3, подправить конфиг и запустить сервис, который будет рандомно играть эти файлы и желательно не сильно грузить систему (могу чтоб не конвертировать на лету, приводить библиотеку к одному битрейту по крону). В идеале имел бы вебморду, чтоб можно было сделать next/skip. Не хочется: конвертировать в AAC/OGG и пр., искать кодеки, собирать из исходников, патчить ядро, не обнаружить каких-то зависимостей в стандартном репозитории и пр. Не хотелось бы Java.
Не интересуют hosted solution (проект в интранете, да и всякие лицензии и пр.)
Конкретной ОС нет, на выбор Centos (5/6), Debian.
Мои умения (скорей усилия) ограничиваются «yum search/install» / «apt-get». В крайнем случае могу configure > make > make install. Английский на уровне.
Желательно с инструкцией, если набор ставится неоднозначно.
Знаю про icecast, ezstream, Liquidsoap, airtime, J Radio, ARAS, R.O.S.S., VLC. Читал статьи на Хабре.
Все это в какой-то степени не отвечает требованиям или не заводится с моими знаниями (например, инструкция в инете устаревшая).
Собственно вот мой скрипт: sbin.ru/radio.zip
Он был даже двух версий, внутри обе с примером запуска (бесконечный while т.к. иногда под нагрузкой мой старый сервак не справлялся с процессом и коннект рвался).
Для запуска нужен icecast, perl-модуль Shout, а также вот это sbin.ru/mp3tools-27-11-05.tgz (на x86_64 могут прилично глючить, потому что писалось это в 2003-2005 годах, а первый amd64 у меня появился в 2006 году).
Рандом по списку был сделан так: выбирался случайный элемент, выкидывался из списка, а следующий выбирался на расстоянии между cur_list_length/2 и cur_list_length от текущего. Это понижало шансы на выбор двух песен одного исполнителя подряд, ведь предполагалось, что исполнители в файле сгруппированы (у меня они были разложены по каталогам, а список генерировался с помощью find). Реализовать какой-нибудь более умный алгоритм я так и не собрался.
Спасибо. Такой скриптец (даже примерно такого же возраста) и у меня есть. Правда там еще круче было — с базой, рейтингом и пр. Но, если мне не изменяет память, он сильно грузил сервер. Хотя скорей всего это был lame. Т.е. получается, что лучше всего поднять icecast2 и своим великом туда гнать (предварительно сконвертированный lame с nice) поток?
Скорее всего именно lame. У меня против этого файлы уже правильного битрейта выкатывались с помощью mp3dump, утилиты, которая вырезает из файла чистый поток без тэгов. Для радио у меня была отдельная помойка файлов, которые я постепенно приводил к нужному битрейту, аккуратным тэгам итд.
Может своим костылём и проще. Я на самом деле в былые времена соорудил скрипт не только потому что сходу не нашёл подходящего решения, но прежде всего в расчёте на перспективу, потому что надеялся реализовать свои плюшки, в том числе заказ следующей песни онлайн.
Хотя наверное совет ниже про mpd разумнее. В своё время ничего такого в нём не было (плюс у него были проблемы с русскими тэгами и ещё какие-то глюки).
В своё время решил эту задачу написанным на коленке perl-скриптом, использующим модуль Shout для доступа к icecast-серверу. Работало не один год, могу поискать.
ices2 (version 2.0) source client for broadcasting in Ogg Vorbis format to an icecast2 server
ices0 (deprecated) source client for broadcasting in MP3 format to an icecast2 server
Даже здесь я писал 2 статьи про стриминг, а мануалов вообще хоть попой кушай. Страшно и непонятно — добро пожаловать на фриланс, вроде бы очевидно, к примеру я за такое беру от 300 американских рублей. Решения вроде «денвера» наглость, ибо радиостанция — это не «папка с музыкой», это в первую очередь идея и представление как оно будет. Если вы музыкальный редактор, то должны это понимать, а сисадмин не должен пугаться сборки из сорцов, да уж тем более не говорить про сборку ядра. Да и вообще непонятны требования, вопрос с преобразованием битрейта выглядит так, словно стриминг будет идти на пентиуме166. Мне, как автору своих решений для стриминга, крайне непонятны такие вопросы.
Спасибо за Ваши статьи. Если и когда я захочу сделать радиостанцию, обязательно прочитаю статьи, найму администратора, диджея, маркетолога, редактора и всех кого надо. Пока же стоит задача именно стримить папку с музыкой. Убивать на это дни, собирая из сурсов желания нет. Бюджета тоже нет, а то я бы с радостью отдал Вам сколькотам какихугодно рублей.
Ну вот есть же сборки Linux с предустановленным софтом, типа Jomba, WP, куча всяких сборок на любые вкусы. Все собрано, слинковано, запустил и работает.
Может Вы меня последни раз ткнете носом в тучу мануалов стримминга именно mp3 и именно последних версий софта? А то мне кажется, что везде этот mp3 выпиливают (может какие лицензии, хз) и «кучи мануалов» уже сильно устарели.
Странно, а выше говорили, что хотите радиостанцию. И хотели-хотели радиостанцию, а в итоге захотели «папку с музыкой». Звучит как «гроб с музыкой» — выражение, которое я слышал у местных гопников, уж не знаю что они имели в виду, но оно очень хорошо отражает ваше желание.
Если вы считаете что сборка из сорцов занимает дни, то рекомендую обновить ваш пентиум166, с которого вы ранее собирались стримить.
Если денег на чужое время нет — придется тратить свое, вроде бы очевидно.
Что же касается MP3 — его действительно выпиливают, ибо:
1. несвободное говно не нужно
2. устаревшее говно не нужно
но народ наш тянется к говну, желая видеть mp3 где только можно. Помирать оно будет долго.
В своих статьях я упоминал и об отношении к mp3 авторов айскаста, и о стриминге таких файлов.