ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

Русская кодировка в Icecast

 

86
pusik @pusik
Вот с Perl-ом у меня не лады, я уже использую модуль (подставка джинглов через определенное кол. треков) который кстати и подключил по ващей подсказке, а вот как в него прикрутить считывание тегом не имею понятия, буду благодаренн вам если ткнете пальцем
вот мой модуль

sub ices_shutdown {
print "Perl subsystem shutting down:\n";
}

sub ices_get_next {
print "Perl subsystem quering for new track:\n";
if($jingle < 5){
$jingle ++;
@music=`/bin/ls -1 /var/music/*.mp3`;
}else{
$jingle = 0;
@music=`/bin/ls -1 /var/jingles/*.mp3`;

}
$num = scalar (@music);
$play=int(rand($num));
chomp $music[$play];
return $music[$play];
}

return 1;

Отредактировано pusik - 18.03.2011
6245
Тарас @tarasian666
добавить перед return 1;
sub ices_get_metadata {
use MP3::Info;
$tag = get_mp3tag($music[$play]) or die "No TAG info";
return "$tag->{ARTIST} - $tag->{TITLE}";
}

86
pusik @pusik
ага, щяс попробую, еще вопросик если не затруднит, сюда же прикрутить автообновление плейлиста можно? и как?

6245
Тарас @tarasian666
зачем? здесь и так обновление постоянно, ведь не из плейлиста читает, а из папки

86
pusik @pusik
tarasian666 пишет:

зачем? здесь и так обновление постоянно, ведь не из плейлиста читает, а из папки

тоесть? таким образом он обновляет список треклиста через каждый трек?

6245
Тарас @tarasian666
каждый раз выполняя функцию @music=`/bin/ls -1 /var/music/*.mp3`; массив @music заполняеться содержимым папки /var/music и тогда из массива береться "рандумная" часть и воиспроизводиться

86
pusik @pusik
Сделал как все описали, запустил маунт и он вообще не выводится в статистике

вот мой модуль

sub ices_init {
print "Perl subsystem Initializing:\n";
$jingle = 0;
return 1;
}

sub ices_shutdown {
print "Perl subsystem shutting down:\n";
}

sub ices_get_next {
print "Perl subsystem quering for new track:\n";
if($jingle < 5){
$jingle ++;
@music=`/bin/ls -1 /var/my_sound/*.mp3`;
}else{
$jingle = 0;
@music=`/bin/ls -1 /var/jingles/*.mp3`;

}
$num = scalar (@music);
$play=int(rand($num));
chomp $music[$play];
return $music[$play];
}

sub ices_get_metadata {
use MP3::Info;
$tag = get_mp3tag($music[$play]) or die "No TAG info";
return "$tag->{ARTIST} - $tag->{TITLE}";
}

return 1;

в логах все чисто, в процессах его вообще не вижу

Добавлено спустя 4 минуты 31 секунду:
в конфиге маунта так же прописал

<Playlist>
<File>/var/my_sound/playlist.txt</File>
<Randomize>1</Randomize>
<Type>perl</Type>
<Module>my_sound</Module>
<Crossfade>3</Crossfade>
</Playlist>

my_sound.pm закинул в папку модулей перла

Отредактировано pusik - 18.03.2011
6245
Тарас @tarasian666
если в логе совсем чисто и в процессах его нету - он не запустился
если запускали и он отрубился - в логе все ровно должно что-то писать

86
pusik @pusik
# ices -c /etc/my_sound.conf
Into the land of the dreaded daemons we go... (pid: 32100)
# ps axfu | grep ices
root 32386 0.0 0.0 4004 668 pts/0 S+ 15:40 0:00 \_ grep ices
root 7066 6.5 0.1 11520 4708 ? Ss Mar17 143:36 ices -c /etc/ices.conf
root 7105 6.4 0.1 10448 4036 ? Ss Mar17 143:13 ices -c /etc/ices1.conf
root 7128 6.6 0.1 10356 3708 ? Ss Mar17 146:13 ices -c /etc/ices2.conf

Добавлено спустя 2 минуты 28 секунд:
может перезагрузка айскаста нужна?

6245
Тарас @tarasian666
нет
смотрите в лог ices а не в процессы

86
pusik @pusik
разобрался, спасибо огромное, но способ этот подозрительный, когда вручную генерируеш плейлист то видиш какие треки попали в список, а тут на абум как-то

6245
Тарас @tarasian666
тут попадает все что в папке, и плейлиста как такого нет

6
Eclipse @Eclipse
после добавления фрагмента:

sub ices_get_metadata {
use MP3::Info;
$tag = get_mp3tag($music[$play]) or die "No TAG info";
$a=`wget url/play.php?a=$tag->{ARTIST}&t=$tag->{TITLE}`;
return "$tag->{ARTIST} - $tag->{TITLE}";
}

Ices перестал запускаться, в логе: Logfile opened
Initialization of playlist handler failed. []
Ices Exiting...

6245
Тарас @tarasian666
значит есть ошибка в скрипте, запустите его отдельно от ices и смотрите что скажет

вот это $a=`wget url/play.php?a=$tag->{ARTIST}&t=$tag->{TITLE}`; кстате глупо )

Отредактировано tarasian666 - 25.11.2012
6
Eclipse @Eclipse
Can't locate MP3/Info.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.12.4 /usr/local/share/perl/5.12.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.12 /usr/share/perl/5.12 /usr/local/lib/site_perl .) at ices.pm line 29.
BEGIN failed--compilation aborted at ices.pm line 29.

6245
Тарас @tarasian666
Вопросы?)))

5
kashej @kashej
Вообщем, когда то я боролся с этим и пришёл к одному интересному заключению - это кстати и на карманных mp3 плеерах работает...
Удалить ID3 Tag и назвать файл по человечески. (при чём удалять их следует наверняка. Например в Winampe Alt+3 и убрать галочки на version 1 и 2. ещё заюзать ********** - там это можно делать массово).
По крайней мере, у тебя все кодировка названий будет одинаковая.

40
soulfood @soulfood
У кого в айскачте возникает проблема с ркс. кодировкой -решается добавлением в конфиг строк:

<mount>
<mount-name>/name</mount-name>
<charset>CP1251</charset>
</mount>

Отредактировано soulfood - 02.12.2012
349
Юрий @Всё-просто
это что прям на самом icecast сервере такие кравозябры? такого быть не может вы наверное через скрипт смотрите. вот в скрипте и меняйте.

6245
Тарас @tarasian666
такого быть не может

еще как может