RadioBOSS + icecast2 = непонятные ошибки...

Всем привет.
Есть одна проблема, но я не уверен что с первого раза меня поймут, так что сильно не бейте :)

Во общем ситуация:
RadioBOSS = 192.168.0.102
icecast2 = 192.168.0.101
В РадиоБОСЕ настроено 4 точки (48|64|128|160 OGG).

Запускаем прогу и запускаем трек, первое это метаданных нету в потоке, но как я понимаю это особенность потока ОГГ, и они появляются только после повторного запуска трека, или при запуске следующего. Второе и более существенное это отсутствие потока на некоторых точках. Если подробнее то например: на 48 и 64 есть поток и клиенты коннектятся и слушают, а на 128 и 160 поток так-же идёт (судя по статистике icecast2), но если клиент подключается на него, сервер не отправляет не единого байта, НО если в RadioBOSS выкл\вкл кнопку вещания, то всё восстанавливаться.
Всё никак не могу понять в чём дело, то ли в сервере то ли в программе.
 
Дело скорее всего в icecast , какая версия у вас стоит? есть много нюансов настройки сервера и версий много тоже мы на данный момент используем kh сборки
 
Алексей сказал(а):
Дело скорее всего в icecast , какая версия у вас стоит? есть много нюансов настройки сервера и версий много тоже мы на данный момент используем kh сборки
Использую icecast 2.3.2, оригинальная. OS: Ubuntu Server. До этого на других программах сервер держал несколько десятков точек месяцами. Железо сервера думаю смысла говорить нету, т.к. требования у icecast чуть ли не p-133 16mb RAM на 100 клиентов.
 
icecast 2.3.2 лопает оперативную память сильно при увеличении слушателя что приводит к зависанию, уже вышла 2.3.3 но её мы не пробовали. Вы выдаете все потоки RadioBOSS? не пробовали использовать что-то типа liquidsoap очень облегчает жизнь. На уUbuntu 12.04 устанавливается в два клика liquidsoap. Выдаст вам сколько вам необходимо потоков а с RadioBOSS будет идти всего один.
 
liquidsoap, как-же, слышал я про этот ужос технической мысли. Он жрёт память как и процессор что просто вешайся. (2 хиона 3,4Ggz с 16гб RAMа сьедал при 50 слушателей.
Про 2.3.3 не слышал. Щас проверю.
 
Да, похоже, есть какая-то непонятка с OGG/FLAC + Icecast, но непонятно, где, и непонятно, что крутить. Независимо от скорости, Foobar постоянно икает. Метаданных не то, чтобы совсем нет, но они отрезаны по первому пробелу. Winamp не икает, но постоянно переподключается к серверу. Метаданные аналогично. Сам Icecast отвалов не показывает. Метаданных тоже. Но к удивлению, AIMP работает как часы, метаданные на месте...
 
Как выставлены настройки вещания - формат, битрейт и т.п.?
Какая версия Icecast используется?
 
Пробовал и на классическом 2.3.2, затем поддался на обновления, обновил до 2.3.3 KH5 - поведение одинаковое. Формат OGG или FLAC, от битрейта вроде не зависит, но меньше 192 не пробовал (FLAC традиционно 700-900 даёт). На других форматах проблем не замечено, всё красиво :)
 
Через какое время после начала воспроизведения начинает заикаться?
 
Сразу. Отчётливо икает Фубар. Винамп не икает, но постоянно "заполнение буфера" с таки отвалом через неопределённое время.
 
Aki сказал(а):
Сразу. Отчётливо икает Фубар. Винамп не икает, но постоянно "заполнение буфера" с таки отвалом через неопределённое время.
Да, вот это очень странно. Уже почти час играет связка FLAC 44100 stereo / Icecast 2.3.2 / RB 4.7.4.1 / Foobar 1.1.11 - никаких заиканий и прочих проблем со звуком нет.

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

Если есть антивирус отключите его, а лучше удалите. С большой вероятность проблемы уйдут.
 
Хорошо, если бы дело было в антивирусе или какой мешающей программе... не нашёл.
Попробую перечислить, что делал:

а) отключал все эффекты (все - это AutoAmp и GapKiller, другие выключены) - без результата

б) убрал на время все лишние фоновые процессы как на вещающей машине (Win7 x64/Corei5), так и на сервере (Srv2008/Corei5), отключил сегмент сети от внешних запросов (загрузка ~1%) - безрезультатно.

в) отключил прослушку в RadioBoss - не влияет. При отключенной прослушке (No device) перестаёт показывать встроенный индикатор загрузки ЦП. Похоже, нашёл ещё один глюк: если поставить основной вывод "No device", но попытаться включить Монитор, то в результате на выходе монитора сплошное "ква-ква-ква"

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

д) несколько помогла установка приоритета RealTime вместо High. Кодеки, как я понимаю, всегда в Realtime работают...

е) несколько сглаживает ситуацию установка выходов в режим 44100 вместо 48000, но ненадолго - FLAC снова, обычно минут через 15-20, начинал лагать и фубар отваливается от потока, хотя бывали периоды, что час-полтора проблем не было, но изредка лаги-таки проскакивали.

ё) наличие/отсутствие других параллельных потоков на ситуацию не влияет

ж) восстановил соединение с внешним миром, пробовал слушать другие станции "снаружи" (flac не нашёл, довольствовался высокоскоростными 192-256 OGG) - проблем нет...

зы) с потоками AAC, AAC+ и MP3 проблем нет... Чего бы ещё сделать?

 
Если установка приоритета улучшает ситуацию, значит, просто не хватает мощности компьютера для кодирования и отправки потока.

Попробуйте сделать вещание локально, т.е. сервер, RadioBOSS и тп.. - все на одном компьютере, используя адрес 127.0.0.1. Если не будет работать - дело в вашей системе.
 
Господа, поймите правильно - дело не в том, что не работает. Дело в том, что работает... но "как-то не так", что пользоваться не получается. При том, что другой софт, имеющий аналогичные функции, работает в этом месте без нареканий.

Производительность, думаю, придется исключить, т.к. наличие/отсутствие других параллельных потоков (ради интереса наплодил с десяток AAC и MP3) на ситуацию не влияют. Если бы не хватало - всё бы встало... Также, оставление проблемного потока в гордом одиночестве картину для него не улучшает. ТАКЖЕ не влияет загрузка компьютера пользователем, что при выключенных всех "лишних" процессах, что при их наличии (и мало того, при принудительной долговременной загрузке компьютера) картина не меняется...

Ладно. Бросаю всё, и на ЭТОМ же компьютере запускаю дополнительно Foobar с плагином Vorbis Steamer (Radioboss как работал, так и работает, его не трогаем).... и никаких проблем на этом потоке! И теги показывает, в отличие... Кстати насчёт тегов, вот что показывает Icecast:
Код:
[2012-09-16  21:15:27] INFO admin/command_metadata Metadata song on /ISC.aac set to "Dave Stryker Trio - You go to my head (album "Stardust")"
[2012-09-16  21:15:27] INFO admin/command_metadata Metadata song on /ISC.mp3 set to "Dave Stryker Trio - You go to my head (album "Stardust")"
[2012-09-16  21:15:27] INFO admin/command_metadata Metadata song on /ISC.ogg set to "Dave Stryker Trio - You go to my head (album "Stardust")"
[2012-09-16  21:15:27] INFO admin/command_metadata Metadata on mountpoint /ISC.flac [b][color=red]prevented[/color][/b]

Да, и всё-таки приоритет снова убран на High, т.к. на практике при RealTime в моменты перехода с трека на трек на долю секунды весь компьютер становится раком застывает, в том числе и вывод звука, а при High вроде нормально.

Извращаюсь уже дальше: дополнительно ко всему работающему включил встроенный сервер Radioboss (и опять камушек - он кроме MP3 ведь не умеет ничего, так? Винамп даже его отказался играть, пока вместо http ему mms не прописал).  Воспроизвожу этот MP3 поток на localhost Фубаром. тут же Фубар его кодирует OGG на соседний Icecast. Слушаю на третьем компе Винампом... Поток от фубара (уже со значительной задержкой Radioboss-><MP3>-Foobar-<OGG>-Icecast->Winamp) - прелесть! Поток OGG от Radioboss - лагает.... И что мне думать?
 
Aki сказал(а):
Господа, поймите правильно - дело не в том, что не работает. Дело в том, что работает... но "как-то не так", что пользоваться не получается.
Все это тестировалось - потоки OGG, FLAC нормально вещаются и слушаются на Icecast.

Причины, почему это не работает у вас могут быть самые разные. Недавно тоже было сообщение "ваша программа жрет память" (и действительно размер занятой процессом памяти был под 2Гб) - как выяснилось, это был вирус, его DLL загружалась в процесс и создавался расход памяти. Но виноват изначально был RadioBOSS...

Для решения проблемы:
- проверьте компьютер на вирусы
- попробуйте вещать с другого компьютера
- как я уже писал ранее, попробуйте сделать вещание локально, т.е. Icecast, RadioBOSS и Foobar - все на одном компьютере, используя адрес 127.0.0.1. Это 100% рабочая связка, и если это у вас не будет работать, дело в системе. Все программы должны быть последних версий и скачаны с официальных сайтов.
 
Извините за тон, я не обвиняю, а пытаюсь разобраться... Что пользователь видит, то и рассказывает... Ведь не исключено, что такая ситуация повторится у кого-то ещё...

В общем, ещё к размышлению:

а) работа с Localhost без нареканий (всё на одном компьютере) - отлично.

б) третий компьютер: лаги что с сервера, что с компа с (RB+Icecast)

в) в сборке KH в секции Admin -> List Mountpoints -> Mountpoint в табличке клиентов есть столбик "Lag (bytes)". У лагающих клиентов этот показатель всё время достаточно большой, например в потоке MP3 320к он держится 0-4, редко до 8-12 кБ, и снова обнуляется. У потока OGG 256k он стабильно 8-12, но иногда подскакивает до 25-30 (как раз в эти моменты плеер индицирует "пустой буфер". Для потока FLAC видимо нормально значение 0-25-30 кБ (у Localhost), у удалённого при нормальном воспроизведении держится 30-60 кБ.

Вот картинка для Icecast на одном компьютере с RB. Первый клиент - локальный. Второй клиент - соседний компьютер. Скорость потока в данный момент ~1100-1200:
8514568.gif


А вот эта для потока ~900к
8514701.gif


Эта картинка показывает, что с сетью вроде порядок, и проблема явно не в количестве клиентов (траффик потоков в сети на запечатленный момент ~10-12Мбит.с - кроме Flac примерно такое же количество каждого другого потока AAC, OGG и MP3):
8516338.gif


г) клиент потока отваливается, когда показатель "Lag (bytes)" достигает значения <queue-size> (в когфиге Icecast). Для потока FLAC увеличил значение до 4МБ (по-умолчанию 512к) - отвалы отсрочились, но не отменились

д) показания "Lag (bytes)" не растут (и даже уменьшаются, если до этого они были большие), если скорость FLAC потока не превышает ~900кбит/c. При 900-1100 колеблются, а при >1100 растут, при >1200 растут очень быстро.

е) всё вышесказанное также справедливо для клиента "Download manager", которому пофик на скорость проигрывания - он это в файл складывает.

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

з) ещё на одном компьютере установил Icecast + плеер, сформировал туда поток. Плеер лагает (что через localhost, что через IP)

Вопросы: можно ли чем-то "покрутить" параметр компрессии у FLAC? (сейчас -0) Не думаю, что это поможет, просто попутный вопрос...

Icecast не даёт на одного внешнего клиента больше мегабита?
 
Будем разбираться с этим. Проблемы удалось частично воспроизвести, вероятно для FLAC, нужно будет увеличить уровень сжатия. Если нет сильного запаса по скорости (раз в 10), то звук прерывается...

На этой неделе будет обновление - думаю, там эти проблемы будут решены.
 
Ну чтож, отлично! 50 часов тестовый поток на трех клиентов без отвалов по причине переполнения выходного буфера!
Конечно, полностью проблема не решена, т.к. при битрейте >1100 буфер всё-равно начинает переполняется и клиент "квакает", но мне кажется, это больше вопрос к Icecast. Зато теперь такая ситуация стала очень редка, что буфер не успевает заполниться до "упора" (это правда не значит, что он не заполнится на другом муз.материале). Опция -8 конечно жестока, но... посмотрев на загрузку процессора кодировщиками, думаю, что оно самое то - процесс flac требует процессора всего лишь в 2 раза больше aac, при этом в 2,5 раза меньше, чем lame и в ~4.5 раза меньше vorbis.
 
Aki сказал(а):
при битрейте >1100 буфер всё-равно начинает переполняется и клиент "квакает", но мне кажется, это больше вопрос к Icecast.
Еще может быть, что не хватает скорости соединения.

Aki сказал(а):
Опция -8 конечно жестока, но... посмотрев на загрузку процессора кодировщиками, думаю, что оно самое то - процесс flac требует процессора всего лишь в 2 раза больше aac
-0 и -8 не сильно отличаются по уровню загрузки - хотя, вероятно, это зависит от процессора/памяти. С современными процессорами это не должно вызывать никаких проблем.

Aki сказал(а):
при этом в 2,5 раза меньше, чем lame и в ~4.5 раза меньше vorbis.
OGG сложнее всех кодировать для вещания. Формат сам по себе заточен под переменный битрейт, а для вещания он должен быть постоянным. Основная загрузка идет именно из-за попыток поддерживать битрейт постоянным, насколько это возможно.
 
А вот попутный вопрос: из чего следует необходимость постоянного битрейта? Дело в том, что несколько лет назад я тоже был почему-то уверен, что нужен постоянный битрейт. Однако когда пришлось вплотную заняться вещанием (не столько вещанием как таковым, точнее "передачей музыкального материала для озвучки помещений), не нашёл тому подтверждений - всё прекрасно работает и на "очень переменном" битрейте (в качестве кодера использовался lame, vorbis тот софт у меня не умел)...
 
Назад
Верх