Хочу icecast чтобы без задержки.

Разные проблемы звука, видео, обсуждение разных устройств и т.д.

Модератор: Модераторы разделов

dergachev
Сообщения: 847
ОС: archlinux

Хочу icecast чтобы без задержки.

Сообщение dergachev »

Требуется транслировать звук в интернет с минимальной задержкой. Использую Icecast 2 2.3.1 и IceS 2.0.1 (готов выслушать предложения взять другие программы), это всё в Fedora 11. Я вроде везде всё покрутил в этом направлении (ну то есть burst-on-connect поставил 0) , но всё равно задержка секунд 10, что сильно много.
Слушать пытаюсь командой

Код: Выделить всё

mplayer http://192.168.0.1:8000/live.ogg -cache 32
, так что плеер задержки не добавляет (в смысле не буферизует)
Конфиги:
/etc/icecast2/icecast.xml

Код:

<icecast> <limits> <clients>100</clients> <sources>2</sources> <threadpool>5</threadpool> <queue-size>524288</queue-size> <client-timeout>30</client-timeout> <header-timeout>15</header-timeout> <source-timeout>10</source-timeout> <burst-on-connect>0</burst-on-connect> <burst-size>0</burst-size> </limits> <authentication> <source-password>нискажу</source-password> <relay-password>нискажу</relay-password> <admin-user>нискажу</admin-user> <admin-password>нискажу</admin-password> </authentication> <hostname>localhost</hostname> <listen-socket> <port>8000</port> </listen-socket> <fileserve>1</fileserve> <paths> <basedir>/usr/share/icecast2</basedir> <logdir>/var/log/icecast2</logdir> <webroot>/usr/share/icecast2/web</webroot> <adminroot>/usr/share/icecast2/admin</adminroot> <alias source="/" dest="/status.xsl"/> </paths> <logging> <accesslog>access.log</accesslog> <errorlog>error.log</errorlog> <loglevel>4</loglevel> <logsize>10000</logsize> </logging> <security> <chroot>0</chroot> </security> </icecast>
Юзаю почти чистый ices-oss.xml:

Код:

<?xml version="1.0"?> <ices> <background>0</background> <logpath>/var/log/ices</logpath> <logfile>ices.log</logfile> <logsize>2048</logsize> <loglevel>4</loglevel> <consolelog>1</consolelog> <stream> <metadata> <name>Example stream name</name> <genre>Example genre</genre> <description>A short description of your stream</description> <url>http://mysite.org</url> </metadata> <input> <module>oss</module> <param name="rate">44100</param> <param name="channels">2</param> <param name="device">/dev/dsp</param> <param name="metadata">0</param> <param name="metadatafilename">test</param> </input> <instance> <hostname>192.168.0.1</hostname> <port>8000</port> <password>нискажу</password> <mount>/live.ogg</mount> <yp>0</yp> <encode> <quality>0</quality> <samplerate>22050</samplerate> <channels>1</channels> </encode> <downmix>1</downmix> <resample> <in-rate>44100</in-rate> <out-rate>22050</out-rate> </resample> </instance> </stream> </ices>
Спасибо сказали:
dergachev
Сообщения: 847
ОС: archlinux

Re: Хочу icecast чтобы без задержки.

Сообщение dergachev »

Слушайте, я вот тут подумал-прикинул так на досуге, так cache=32 (минимальное допустимое значение кэша для mplayer) при битрейте в 24 килоБИТА как раз и означает секунд 10-15 задержки. Может, в этом всё дело и есть? Тогда подскажите, пожалуйста, каким плеером пользоваться, чтобы можно было гибче регулировать кэш. А еще ведь для венды плеер искать ... Ужас :)
P.S. Я видел параметр -cache-min, но его использование ничего не меняет почему-то :S А с ключиком -no-cache вообще ничего не играет. :S
Спасибо сказали:
Аватара пользователя
denel
Сообщения: 497
ОС: Gentoo Linux

Re: Хочу icecast чтобы без задержки.

Сообщение denel »

<quality>10</quality>
и resample отключите, в результате задержка окажется в районе 2-3 сек.
Кстати по Ices+Icecast... У меня с течением времени кеш mplayer-а, как и любого другого плеера стремится к нулю, зачем он так делает? Когда у mplayer кеш становится загружен на 0-1 % звук начинает неприятно прерываться, как выйти из положения? Это нормально? Везде так? Просто мне нада бы чтобы он хотябы в течение двух часов нормально вел себя без единого перерыва...
Спасибо сказали:
dergachev
Сообщения: 847
ОС: archlinux

Re: Хочу icecast чтобы без задержки.

Сообщение dergachev »

<quality>10</quality>
Но такое качество не пойдёт. Звук-то для интернета, просто я из локальной сетки тестирую, а на самом деле мне реально нужно 0.

К тому же, гипотеза о битрейте вроде бы не оправдалась - повышение битрейта не привело к уменьшению задержки :S

denel писал(а):
05.09.2009 02:22
Кстати по Ices+Icecast... У меня с течением времени кеш mplayer-а, как и любого другого плеера стремится к нулю, зачем он так делает? Когда у mplayer кеш становится загружен на 0-1 % звук начинает неприятно прерываться, как выйти из положения? Это нормально? Везде так? Просто мне нада бы чтобы он хотябы в течение двух часов нормально вел себя без единого перерыва...
+1 :rolleyes:
Спасибо сказали:
Аватара пользователя
denel
Сообщения: 497
ОС: Gentoo Linux

Re: Хочу icecast чтобы без задержки.

Сообщение denel »

dergachev писал(а):
05.09.2009 11:52
<quality>10</quality>
Но такое качество не пойдёт. Звук-то для интернета, просто я из локальной сетки тестирую, а на самом деле мне реально нужно 0.

К тому же, гипотеза о битрейте вроде бы не оправдалась - повышение битрейта не привело к уменьшению задержки :S

Это очень странно, ибо у меня при изменении качества с 5 до 10 задержка уменьшается с 6-7 сек до 2-3... я так думаю при качестве 0 так и будет задержка примерно 10 сек...
По поводу кеша плееров, такое наблюдается почему то только при трансляции с собственного ices2, а вот при ретрансляции ogg потоков с не моего icecast+ices сервака (да даже с моего же ShoutCast сервера, но это уже mp3) (тем не менее ретранслирует именно мой icecast) - кеш вроде в порядке...может я что-то не так настроил??

Код: Выделить всё

<?xml version="1.0"?>
<ices>
 <!-- run in background  -->
 <background>1</background>
 <!-- where logs go. -->
 <logpath>/var/log/ices</logpath>
 <logfile>ices.log</logfile>
 <logsize>2048</logsize>
 <!-- 1=error, 2=warn, 3=infoa ,4=debug -->
 <loglevel>4</loglevel>
 <!-- logfile is ignored if this is set to 1 -->
 <consolelog>0</consolelog>
 <!-- optional filename to write process id to -->
 <pidfile>/var/run/ices.pid</pidfile>
 <stream>
        <!-- metadata used for stream listing -->
        <metadata>
           <name>RADIO</name>
           <genre></genre>
           <description>radio.dynalias.org</description>
           <url>http://radio.dynalias.org</url>
        </metadata>
        <!--    Input module.
           This example uses the 'oss' module. It takes input from the
           OSS audio device (e.g. line-in), and processes it for live
           encoding.  -->
        <input>
           <module>alsa</module>
           <param name="rate">44100</param>
           <param name="channels">2</param>
           <param name="device">default:0</param>
           <!-- Read metadata (from stdin by default, or -->
           <!-- filename defined below (if the latter, only on SIGUSR1) -->
           <param name="metadata">0</param>
           <param name="metadatafilename">test</param>
        </input>
        <!--    Stream instance.
           You may have one or more instances here.  This allows you to
           send the same input data to one or more servers (or to different
           mountpoints on the same server). Each of them can have different
           parameters. This is primarily useful for a) relaying to multiple
           independent servers, and b) encoding/reencoding to multiple
           bitrates.
           If one instance fails (for example, the associated server goes
           down, etc), the others will continue to function correctly.
           This example defines a single instance doing live encoding at
           low bitrate.  -->
        <instance>
           <!-- Server details.
                You define hostname and port for the server here, along
                with the source password and mountpoint.  -->
           <hostname>localhost</hostname>
           <port>8000</port>
           <password>Убрано цензурой</password>
           <mount>/radio.ogg</mount>
           <yp>0</yp>   <!-- allow stream to be advertised on YP, default 0 -->
           <!-- Live encoding/reencoding:
                channels and samplerate currently MUST match the channels
                and samplerate given in the parameters to the oss input
           module above or the remsaple/downmix section below.  -->
           <encode>
                <quality>9</quality>
                <samplerate>44100</samplerate>
                <channels>2</channels>
           </encode>
           <!-- stereo->mono downmixing, enabled by setting this to 1 -->
           <downmix>0</downmix>
           <!-- resampling.
                Set to the frequency (in Hz) you wish to resample to, -->
           <!-- <resample>
                <in-rate>44100</in-rate>
                <out-rate>44100</out-rate>
           </resample> -->
        </instance>
 </stream>
</ices>
Спасибо сказали:
dergachev
Сообщения: 847
ОС: archlinux

Re: Хочу icecast чтобы без задержки.

Сообщение dergachev »

Ниччё не понимаю. Сейчас погонял - задержка максимум секунд 5-6 даже при самом маленьком битрейте.
Спасибо сказали:
dergachev
Сообщения: 847
ОС: archlinux

Re: Хочу icecast чтобы без задержки.

Сообщение dergachev »

Есть ли тут кто нибудь, у кого это работает вообще? Поделитесь проверенными и надежными конфигами, пожалуйста! :giveup:
Спасибо сказали: