问题标签 [liquidsoap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
146 浏览

ffmpeg - 如何/在何处放置 FFMPEG `-legacy_icecast 1` 选项以仅影响两个 Icecast 输出之一?(使用 tee muxer 选项)

我有一个 FFMPEG 命令,它能够将 RTMP 实时提要发送到 2 个不同的 icecast 广播电台:

命令 1(在产品中;2 个中的 1 个失败):

在命令 1 上运行时,我会收到以下 FFMPEG 错误:

它工作正常,直到其中一个(fluoz.zeno.fm:80/live)停止工作,我认为 Zeno 将他们的 Icecast 服务器从 v1(旧版)升级到 v2。为什么?因为当我对 Zeno icecast 服务器进行单独测试时,我意识到当我添加-legacy_icecast 1选项时它运行良好

命令 2(仅使用选项测试 Zeno -legacy_icecast 1):

问题:

如何使用上面的命令 1 仍然发送到两个 icecast 服务器,但可以-legacy_icecast 1选择只影响 zeno icecast 服务器而不影响liquidsoap icecast 服务器?我想不惜一切代价避免运行 2 个单独的 ffmpeg 实例,以节省系统资源和带宽。

我问这个问题的原因是因为我尝试通过将选项放在选项-legacy_icecast 1之前将选项添加到命令 1(发送给两者的...-f tee...选项),但它仍然无法发送到失败的 Zeno icecast 服务器( Liquidsoap icecast 服务器一直运行良好)。它似乎只有在我不使用 tee muxer 选项时使用命令 2(上面)时才能正常工作。

有没有一种棘手的方法可以将该-legacy_icecast 1选项放在 tee muxer 选项中?

0 投票
1 回答
158 浏览

icecast - LiquidSoap - 随机无法按预期工作

从我的 Liquidsoap 配置中:

我将其解释为为“标准”播放列表中的每 4 个随机曲目播放 1 个随机歌曲。

但我经常会连续播放 2 首歌曲。我误解了配置的逻辑吗?我怎样才能让它只为每 4 个标准播放列表曲目播放一个叮当声?

0 投票
1 回答
226 浏览

python - Python 脚本返回的 Liquidsoap 加载轨迹

我有一个 python 脚本,可以调用数据库来获取音乐曲目。该脚本返回该音乐文件的路径。如何让 Liquidsoap 调用 python 脚本并加载脚本返回的音乐文件?

我还需要知道 Liquidsoap 播放该文件并将其返回给 python 脚本的日期/时间。

在 Liquidsoap 中,我目前只是让它监视播放列表文件的更改:

python 脚本进行数据库调用,然后写入 test.m3u 文件。

我在想,也许 Liquidsoap 中有一种方法可以调用脚本并让它返回文件的位置,这样 Liquidsoap 就可以加载它。我还想知道 Liquidsoap 执行此操作的日期/时间,以便我可以让 python 脚本将该信息保存回数据库。

我正在使用liquidsoap 将输出发送到Icecast 服务器。

问候, 安东尼

0 投票
1 回答
318 浏览

liquidsoap - 尝试使用 StereoTool 在 Liquidsoap 中处理音频时出现问题

我正在尝试使用 StereoTool 在 Liquidsoap 中处理音频,但以下代码似乎不起作用。与 Icecast 的连接永远无法正常工作。只有当我删除两条管道音频到 StereoTool 时才会这样做。

当我运行 Liquidsoap 时,日志输出如下:

0 投票
1 回答
142 浏览

liquidsoap - 如何在 Liquidsoap 中一次只加载一首曲目

我有一个 MySQL 数据库,用于存储我的所有曲目及其相关信息。数据库中的一个表是一个队列表,我从中拉出一个曲目供 Liquidsoap 播放。我正在使用 request.dynamic.list 提供这些曲目以与 Liquidsoap 一起播放。

get_track.py 脚本从数据库中的队列表中检索记录。

我注意到 Liquidsoap 在启动时会抓取两条轨道。两个被“接受”,一个被“准备好”。

有没有办法让 Liquidsoap 一次只接受一首曲目,并且只有在接近当前播放曲目的结尾时才等待接受下一首曲目?

我还安排了添加到数据库中队列表的计划程序,当这种情况发生时,所有轨道都从数据库中的队列表中清除,然后程序被添加到队列表中。

由于 Liquidsoap 在播放“准备好的”曲目时似乎已经在其队列中加载了一首曲目,有没有办法删除该曲目,以便 Liquidsoap 不会播放该曲目,而是再次调用 get_track.py 脚本来加载新曲目从数据库中的队列表?

0 投票
0 回答
153 浏览

gstreamer - 使用 gstreamer 流式传输到 nginx,liquidsoap 填满内存并崩溃

嗨,正如我在标题中所说,我正在尝试使用 Liquidsoap 和 gstreamer 将动态播放列表流式传输到带有 nginx 的 rtmp 服务器。也许这听起来令人困惑,抱歉英语不是我的母语。

无论如何,一切正常,除了一段时间之后,liquidsoap 会填满服务器的所有内存和交换并崩溃,而日志文件中没有任何内容。

服务器有 16GB 内存,因此 Liquidsoap 需要大约 20 小时才能达到 30GB 大小并崩溃。

我以此为例进行流式传输。

任何想法这是如何发生的,如果我能在一段时间后找到一种方法来清理内存使用,而不必重新启动液体肥皂和流?我想即使我在服务器上有 60gb 内存,liquidsoap 也会填满它并最终崩溃。这是文件大小中的旧缓冲视频吗?

0 投票
1 回答
64 浏览

liquidsoap - Liquidsoap:如何迭代字符串列表

我想为 的on_connect参数添加一个函数input.harbor。该函数将标题作为字符串列表获取。现在,我想遍历列表以记录每个标题行(出于调试目的)。

我怎样才能做到这一点?我已经找到了list.iter,但不知道如何应用它。

一个例子会有很大帮助。

0 投票
1 回答
36 浏览

liquidsoap - Liquidsoap - 如何根据标签创建播放列表

我想知道是否可以根据音乐文件的标签或其他元数据在 Liquidsoap 中创建播放列表。

谢谢你。

0 投票
0 回答
268 浏览

icecast - 如何使用 Liquidsoap 将单个视频流式传输到 Icecast 服务器

我正在尝试按照此处页面顶部的简单示例,使用liquidsoap 将单个视频文件流式传输到icecast 服务器。我正在使用本地.ogg文件。脚本的完整内容是:

我在端口 8000 上本地运行 icecast 服务器。由于某种原因,脚本根本没有连接到服务器。相反,它只是不断打印出来

到控制台。

icecast 服务器日志显示:

知道如何让它工作吗?我可以使它适用于纯音频文件,但不适用于视频。

0 投票
0 回答
21 浏览

liquidsoap - 使用liquidsoap 更改流名称

有没有办法用 Liquidsoap 更改流名称?如果当前源是实时的,我想附加实时。