Icecast2: буферы точки монтирования при воспроизведении в браузере долгое время

Когда я пытаюсь воспроизвести свой ледяной поток через проигрыватель браузера или напрямую, посетив точку монтирования, он длится от одной до двух минут, пока я не услышу какой-либо звук. Какие настройки на Icecast влияют на такое поведение? Мое серверное оборудование не может быть причиной. Также проблема касается только браузера - у настольного плеера нет времени буферизации. Когда я использую shoutcast, все веб-плееры загружаются как раз вовремя.

<icecast>
  <location>Earth</location>
  <admin>mail@test.test</admin>
  <limits>
    <clients>200</clients>
    <sources>3</sources>
    <threadpool>5</threadpool>
    <queue-size>524288</queue-size>
    <client-timeout>20</client-timeout>
    <header-timeout>15</header-timeout>
    <source-timeout>60</source-timeout>
            <burst-on-connect>0</burst-on-connect>
            <burst-size>65535</burst-size>
  </limits>

  <authentication>
            <source-password>hackme</source-password>
            <relay-password>hackme</relay-password>
            <admin-user>admin</admin-user>
    <admin-password>hackme</admin-password>
  </authentication>

      <!-- {%comment-open-if:icecast.directory.yp-url==""%} -->
  <directory>
    <yp-url-timeout>15</yp-url-timeout>
    <yp-url>http://yp.shoutcast.com</yp-url>
  </directory>
  <directory>
        <yp-url-timeout>15</yp-url-timeout>
        <yp-url>http://www.oddsock.org/cgi-bin/yp-cgi</yp-url>
    </directory>
   <directory>
        <yp-url-timeout>15</yp-url-timeout>
    <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
  </directory>
  <!-- {%comment-close-if:icecast.directory.yp-url==""%} -->

      <hostname>test.test</hostname>
      <port>8008</port>
  <bind-address>1.1.1.1</bind-address>

  <!-- Only define a <mount> section if you want to use advanced options,
         like alternative usernames or passwords -->
      <mount>
    <bitrate>128</bitrate>
    <mount-name>/mp3</mount-name>
    <fallback-override>0</fallback-override>
    <fallback-when-full>0</fallback-when-full>
    <public>1</public>
    <max-listeners>150</max-listeners>
    <fallback-mount></fallback-mount>
    <genre>alternative</genre>
    <type>audio/mpeg</type>
  </mount>

  <mount>
    <bitrate>64</bitrate>
    <mount-name>/mobile</mount-name>
    <fallback-override>0</fallback-override>
    <fallback-when-full>0</fallback-when-full>
    <public>1</public>
    <max-listeners>50</max-listeners>
    <fallback-mount></fallback-mount>
  </mount>

  <fileserve>1</fileserver>

      <paths>
            <basedir>/usr/local/centovacast/var/vhosts/tester/</basedir>
            <logdir>var/log/</logdir>
    <webroot>web/</webroot>
    <adminroot>admin/</adminroot>
    <pidfile>var/run/server.pid</pidfile>
            <alias source="/" dest="/status.xsl"></alias>
  </paths>

  <logging>
    <accesslog>access.log</accesslog>
    <errorlog>error.log</errorlog>
    <playlistlog>playlist.log</playlistlog>
    <loglevel>2</loglevel>
    <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
      </logging>

  <security>
    <chroot>0</chroot>
      </security>

</icecast>

2 ответа

Решение

Попробуйте увеличить размер очереди и размер пакета:

<queue-size>1048576</queue-size>
<burst-size>943718</burst-size>

Я не могу объяснить это ясно, но вы можете следовать этой теме: https://www.internet-radio.com/community/threads/very-slow-buffering-in-android.20139/

Когда MP3 передается в потоковом режиме, он сегментируется произвольно и отправляется как есть. То есть Icecast не проверяет и не выравнивает фреймы, а это означает, что клиент может немного задержаться при повторной синхронизации с серверами с небольшими буферами.

Тем не менее, задержка минуты очень долго. Была проблема с LAME (3.99.1, я думаю?), Который создавал потоки, с которыми Chrome было трудно синхронизироваться. Вы не упомянули, какой кодер вы используете, но если он использует LAME, попробуйте обновить или понизить версию. Если вы используете что-то еще, попробуйте переключиться на LAME. Кроме того, попробуйте другие браузеры, чтобы увидеть, если вы получаете эту проблему только в Chrome.

Прогрессивный MP3 по HTTP (такой же, как у вас) - наиболее распространенная форма интернет-радио, и он может работать просто отлично, если настроен правильно.

Другие вопросы по тегам