icecast 元数据播放器的 icecast 服务器

问题描述 投票:0回答:0

我有一个在 vps 上运行的 icecast2 服务器,其挂载点连接到 liquidsoap 源。 一切都很好,我可以从浏览器访问我的流,地址为:

http://IP:PORT/mount
,我可以从 /status.xsl 中看到 Currenty Playing 歌曲的名称和艺术家。

我的目标是在 javascript 应用程序中获取流音频和元数据。

我试图简单地将我的流 url 放在

所以我需要其他解决方案...

我发现也许 icecast-metadata-player 是我需要的。但是当我尝试基本设置时:

const player = new IcecastMetadataPlayer("http://IP:PORT/mount", { 
   onMetadata: (metadata) => { console.log(metadata); },   
   metadataTypes: ["ogg", "icy"], 
});

我收到以下错误:

GET http://IP:PORT/mount net::ERR_EMPTY_RESPONSE

对于 javascript 部分,我尝试了一些示例流,没有问题,所以我认为错误不是来自 icecast-metadata-player。

我在 8000 端口的 vps 上安装了 ufw,这是用于打开 icecast 服务器的端口。

所以我可能在 icecast 的服务器配置上遗漏了一些允许 icecast-metadata-player 访问它的东西。

这是配置:

<icecast>
    <location>Earth</location>
    <admin>icemaster@localhost</admin>

    <limits>
        <clients>100</clients>
        <sources>10</sources>
        <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>hackme</source-password>
        <relay-password>hackme</relay-password>
        <admin-user>admin</admin-user>
        <admin-password>hackme</admin-password>
    </authentication>
    
    <hostname>IP ADRESS</hostname>
    
    <listen-socket>
        <port>8000</port>
    </listen-socket>
    
    <http-headers>
        <header name="Access-Control-Allow-Origin" value="*" />
    </http-headers>
    
    
    
    <!-- Normal mounts -->
    
    <mount type="normal">
            <mount-name>/test.ogg</mount-name>
            <stream-name>radio test</stream-name>
    
        <password>pass</password>
        <public>1</public>
    </mount>
    
    <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="/" destination="/status.xsl"/>
    </paths>
    
    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
     
        <loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
        <logsize>10000</logsize> <!-- Max size of a logfile -->
    </logging>
    
    <security>
        <chroot>0</chroot>
    </security>
</icecast>
javascript server audio-streaming icecast liquidsoap
© www.soinside.com 2019 - 2024. All rights reserved.