1

Тема: запись интернет радиостанции

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

Необходимо производить запись часовыми участками, но так чтобы файл был ровно час, даже когда вещания не было, или не было соединения хотелось бы писать тишину. Естественно при восстановлении связи, снова возобновлялась и запись в тот же файл. Т.е. бы хотелось архив часовых файлов, пусть даже некоторые будут с пустотой внутри, главное чтобы у нас была вся история вещания.

Какие решения попробованы.

1. wget - умеет писать потоки в mp3, но при обрыве связи сам "падает" и больше не поднимается. Пишет в один файл
2. streamripper - при обрыве также падает и не поднимается. Даже не умеет писать в один файл, пишет кусками по метатегам.
3. mplayer - ведет себя как wget

Если кто то знает как решить проблему, помогите.

Re: запись интернет радиостанции

пишет anester:

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

Для винды есть бесплатное решение полностью отвечающее вашим требованиям. (пишет с аудиокарты, включая и тишину, бьет на отрезки)
SoundEmpireLogger

Windows 2003 Server --> Digispot Djin --> CDDXP(TuneInSender) --> Edcast --> IceCast

3

Re: запись интернет радиостанции

А для линукса? Да еще и из командной строки?

Дело в том, мы пишем поток и доступа к аудиокарте у нас нет. Да и более того, самой аудиокарты тоже. Дигиспот у нас работает напрямую с icecast.

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

А так культурно пишешь поток на vps.

4

Re: запись интернет радиостанции

man ffmpeg

Отредактировано features (22-11-2013 13:08:39)

Re: запись интернет радиостанции

пишет anester:

А для линукса? Да еще и из командной строки?

Я предложил, что первое пришло на ум.
Но, вы должны понимать, что даже если вы найдете решение под линукс, то если будет обрыв - запись тоже оборвется. smile

Желаю удачи в поисках, но если решение будет найдено, напиши его сюда. Думаю, будет многим интересно

Windows 2003 Server --> Digispot Djin --> CDDXP(TuneInSender) --> Edcast --> IceCast

6

Re: запись интернет радиостанции

пишет features:

man ffmpeg

Отправлять в гугл или читать маны - очень в стиле русских форумов.

Я думаю даже на этом форуме найдутся (если найдутся) единицы людей которые хорошо знают ffmpeg и как из этого винигрета сконструировать строку для выполнения этих задач.

7

Re: запись интернет радиостанции

Я могу ошибаться, но стоит посмотреть в сторону liquidsoap. Вроде бы даже сам icecast может писать копию потока. Что-то подобное видел в доках у них.

http://radioheart.ru/banners/radioheart_400x40_banner.jpg
RadioHeart.ru: Функциональный радио хостинг с автодиджеем и нонстопом, а так же быстрый виртуальный хостинг. Возможность создать радио за 5 минут, подключить автодиджей и нонстоп.
Отзывы о хостинге

8

Re: запись интернет радиостанции

http://icecast.imux.net/viewtopic.php?p … e4ca261c36

9

Re: запись интернет радиостанции

пишет anester:

пишет features:

man ffmpeg

Отправлять в гугл или читать маны - очень в стиле русских форумов.

Я думаю даже на этом форуме найдутся (если найдутся) единицы людей которые хорошо знают ffmpeg и как из этого винигрета сконструировать строку для выполнения этих задач.

Ну так и шагали бы на не русские форумы, в чём проблема то? Я вам подсказал утилиту которая могла бы справиться с задачей, но так, как я сам не решал такую задачу, то и не знаю конкретного решения.

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

10

Re: запись интернет радиостанции

Сам начал, сам и закончу. Попробовано с десяток утилит, основное требование это linux и командная строка.
Если уже совсем ничего не ставить, то поток отлично пишет wget, но у этого способа есть один недостаток, который вряд ли кто заметит.
Чем дольше время записи, тем больше идет временной  сдвиг. Например час эфира, занимает 58 минут, хотя весь эфир записан.

Сейчас остановились на mplayer , работает отлично и очень стабильно.

11

Re: запись интернет радиостанции

Если используете Liquidsoap то перед передачей потока на icecast добавить:

output.file(%mp3(bitrate=64),
"/home/radio/liquidsoap/archive/%Y-%m-%d/%Y-%m-%d-%H_%M_%S.mp3",
reopen_when={0m0s},radio)

/home/radio/liquidsoap/archive/ - путь к архиву
radio заменить на Ваш source
Создается папка на каждый день, по файлу в час.
Как по мне - проще некуда!

Отредактировано gyurgin_1 (27-01-2014 18:19:59)

12

Re: запись интернет радиостанции

Сделал конфиг

#!/usr/local/bin/liquidsoap

set("log.file.path","/home/radio/logs/radio.log");
set("tag.encodings",["UTF-8"]);

radio = out(input.http("http://kashernoradio.ru/radio.mp3"));

output.file(%mp3(bitrate=64),
"/home/radio/archive/%Y-%m-%d/%Y-%m-%d-%H_%M_%S.mp3",
reopen_when={0m0s},radio);

Запускаю liquidsoap. В результате в логах:

2015/08/24 04:32:51 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2015/08/24 04:32:51 [threads:3] Created thread "generic queue #1".
2015/08/24 04:32:51 [threads:3] Created thread "generic queue #2".
2015/08/24 04:32:51 [threads:3] Created thread "non-blocking queue #1".
2015/08/24 04:32:51 [threads:3] Created thread "non-blocking queue #2".
2015/08/24 04:32:51 [threads:3] Created thread "http polling" (1 total).
2015/08/24 04:32:51 [clock.wallclock_OSS:2] Error when starting output oss_out(/dev/dsp): No such file or directory in open(/dev/dsp)!

Как я понимаю это из-за декодирования? Поток прогняется через ALSA'у при декодировании. Или я не прав?

Если так то как через lame тогда пустить декодинг?

Отредактировано matrun (24-08-2015 06:12:01)

13

Re: запись интернет радиостанции

Поток прогняется через ALSA'у при декодировании. Или я не прав?

Ничего не надо прогонять через звуковую карту. Делаете

radio = mksafe(input.http("http://kashernoradio.ru/radio.mp3"))

и пишете.

14

Re: запись интернет радиостанции

пишет gyurgin_1:

Поток прогняется через ALSA'у при декодировании. Или я не прав?

Ничего не надо прогонять через звуковую карту. Делаете

radio = mksafe(input.http("http://kashernoradio.ru/radio.mp3"))

и пишете.

Спасибо. Работает.

15

Re: запись интернет радиостанции

Да не за что, если надо будет писать выборками чаще часа читаем тут (Time intervals), так же можно инициировать запись по событиям, смена метаданных например или писать когда лайв играет...