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

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

 

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

  1. sub ices_shutdown {
  2. print "Perl subsystem shutting down:\n";
  3. }
  4. sub ices_get_next {
  5. print "Perl subsystem quering for new track:\n";
  6. if($jingle < 5){
  7. $jingle ++;
  8. @music=`/bin/ls -1 /var/music/*.mp3`;
  9. }else{
  10. $jingle = 0;
  11. @music=`/bin/ls -1 /var/jingles/*.mp3`;
  12. }
  13. $num = scalar (@music);
  14. $play=int(rand($num));
  15. chomp $music[$play];
  16. return $music[$play];
  17. }
  18. return 1;

Отредактировано pusik - 18.03.2011
0
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}";
}

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

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

0
86
pusik @pusik
tarasian666 пишет:

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

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

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

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

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

  1. sub ices_init {
  2. print "Perl subsystem Initializing:\n";
  3. $jingle = 0;
  4. return 1;
  5. }
  6. sub ices_shutdown {
  7. print "Perl subsystem shutting down:\n";
  8. }
  9. sub ices_get_next {
  10. print "Perl subsystem quering for new track:\n";
  11. if($jingle < 5){
  12. $jingle ++;
  13. @music=`/bin/ls -1 /var/my_sound/*.mp3`;
  14. }else{
  15. $jingle = 0;
  16. @music=`/bin/ls -1 /var/jingles/*.mp3`;
  17. }
  18. $num = scalar (@music);
  19. $play=int(rand($num));
  20. chomp $music[$play];
  21. return $music[$play];
  22. }
  23. sub ices_get_metadata {
  24. use MP3::Info;
  25. $tag = get_mp3tag($music[$play]) or die "No TAG info";
  26. return "$tag->{ARTIST} - $tag->{TITLE}";
  27. }
  28. return 1;

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

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

  1. <Playlist>
  2. <File>/var/my_sound/playlist.txt</File>
  3. <Randomize>1</Randomize>
  4. <Type>perl</Type>
  5. <Module>my_sound</Module>
  6. <Crossfade>3</Crossfade>
  7. </Playlist>

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

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

0
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 секунд:
может перезагрузка айскаста нужна?

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

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

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

0
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...

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

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

Отредактировано tarasian666 - 25.11.2012
0
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.

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

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

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

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

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

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

еще как может

0





Согласие на обработку данных на нашем сайте

Продолжая просматривать страницу, вы соглашаетесь с использованием файлов «Cookie» и с Политикой конфиденциальности «Privacy».
Наверху или внизу страницы вы можете изменить валюту и язык по умолчанию. Английская версия сайта ещё находится в доработке и доступна не полностью.