LINUX.ORG.RU

Icecast не играет звук с alsa

 , , , ,


0

2

Привет всем.

Хочу сделать подкаст на связке icecast2 + ices2, хочу транслировать захват с того, что играет в данный момент в колонках. Звуковой сервер pulseaudio, звуковая система alsa.

Связка запускается, по логу ices2 подключается к icecast2.

В админ-панели icecast-a виден маунтпоинт. В маунтпойнте плеер при нажатии меняет иконку с || на >. Но ничего не слышно. Если скачать alexrsk.ogg.m3u, то ничего не играет, плеер показывает «Buffering».

В статистике маунтпойнта выдает, что total_bytes_read > 0, но total_bytes_sent всегда равно 0

Конфиг ices2:

<?xml version="1.0"?>
<ices>
    <background>1</background>
    <logpath>/var/log/ices</logpath>
    <logfile>ices.log</logfile>
    <!-- 1=error,2=warn,3=info,4=debug -->
    <loglevel>4</loglevel>
    <!-- set this to 1 to log to the console instead of to the file above -->
    <consolelog>0</consolelog>
    <!-- optional filename to write process id to -->
    <!-- <pidfile>/home/ices/ices.pid</pidfile> -->
    <stream>
        <metadata>
            <name>AlexRsk podcast</name>
            <genre>blah-blah-blah</genre>
            <description>blah-blah</description>
        </metadata>

	<input>
		<module>alsa</module>
		<param name="rate">44100</param>
		<param name="channels">1</param>
		<param name="device">pulse</param>
		<param name="metadata">1</param>
		<param name="metadatafilename">/home/alexrsk/ices2/metadata</param> 
	</input>
	
	<instance>
            <hostname>localhost</hostname>
            <port>8000</port>
            <password>bandersnatches</password>
            <mount>/alexrsk.ogg</mount>

            <reconnectdelay>2</reconnectdelay>
            <reconnectattempts>5</reconnectattempts> 

            <maxqueuelength>80</maxqueuelength>	   
        </instance>

	</stream>
    
</ices>

Конфиг icecast2

<icecast>
    <location>Russia</location>
    <admin>your@address.com</admin>

    <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>1</burst-on-connect>
        <burst-size>65535</burst-size>
    </limits>

    <authentication>
        <source-password>bandersnatches</source-password>
        <relay-password>bandersnatches</relay-password>
        <admin-user>alexrsk</admin-user>
        <admin-password>my123pass</admin-password>
    </authentication>

    <hostname>localhost</hostname>

    <listen-socket>
        <port>8000</port>
        <bind-address>0.0.0.0</bind-address>
    </listen-socket>

    <fileserve>1</fileserve>

    <paths>
        <basedir>/etc/icecast2</basedir>

        <logdir>var/log/icecast2</logdir>
	<webroot>/etc/icecast2/web</webroot>
	<adminroot>/etc/icecast2/admin</adminroot>
        <alias source="/" destination="/status.xsl"/>
    </paths>

    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
      	<loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
      	<logsize>10000</logsize> <!-- Max size of a logfile -->
    </logging>

    <security>
        <chroot>0</chroot>
        
        <changeowner>
            <user>nobody</user>
            <group>nogroup</group>
        </changeowner>
   </security>
</icecast>

Пробовано на данный момент: В настройках ices2 в секции module alsa, менял

<param name="device">pulse</param> 

на hw:0,0, hw:0,1, hwplug:0,0. Результат одинаков…==0. Вывод команды aplay -l

Карта 0: PCH [HDA Intel PCH], устройство 0: ALC892 Analog [ALC892 Analog]
  Подустройства: 1/1
  Подустройство №0: subdevice #0
карта 0: PCH [HDA Intel PCH], устройство 1: ALC892 Digital [ALC892 Digital]
  Подустройства: 1/1
  Подустройство №0: subdevice #0

Любая помощь будет принята с благодарностью.



Последнее исправление: AlexRsk (всего исправлений: 4)

А непосредственно из пульсы ices что не умеет захватывать поток? Я запускал просто cvlc с какими-то опциями, чтобы транслировать то, что воспроизводится другими программами. Что-то типа https://forum.videolan.org/viewtopic.php?t=105918

damix9 ★★★
()
Ответ на: комментарий от AlexRsk

Как ни странно, домучал я ices. Загвоздка была в секции encoding, судя по всему, в конфиге ices. И еще удалил liquidsoap, который зачем-то установил давным-давно. Он путался под ногами и засорял логи.

<instance>
            <hostname>localhost</hostname>
            <port>8000</port>
            <password>****</password>
            <mount>/alexrsk.ogg</mount>

            <reconnectdelay>2</reconnectdelay>
            <reconnectattempts>5</reconnectattempts>

            <maxqueuelength>80</maxqueuelength>

            <encode>
                <nominal-bitrate>64000</nominal-bitrate>
                <samplerate>44100</samplerate>
                <channels>2</channels>
            </encode>
  </instance>

Настройки источника:

<input>
                <module>alsa</module>
                <param name="rate">44100</param>
                <param name="channels">2</param>
                <param name="device">default</param>
                                <param name="periods">0</param>
                                <param name="buffer-time">500</param>
                <param name="metadata">1</param>
                <param name="metadatafilename">/home/alexrsk/ices2/metadata</param>
 </input>
AlexRsk
() автор топика
Последнее исправление: AlexRsk (всего исправлений: 1)