首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转码需要配置liquidsoap

转码需要配置liquidsoap
EN

Stack Overflow用户
提问于 2016-09-29 06:32:47
回答 2查看 1.4K关注 0票数 1

我正在尝试用liquid对流进行转码,并输出到icecast2下面是我从官方网站http://savonet.sourceforge.net/doc-svn/cookbook.html获取的配置

代码语言:javascript
复制
# Input the stream,
# from an Icecast server or any other source
url = "http://www.protonradio.com:8000/schedule.m3u"
input = mksafe(input.http(url))

# First transcoder: MP3 32 kbps
# We also degrade the samplerate, and encode in mono
# Accordingly, a mono conversion is performed on the input stream
output.icecast(
  %mp3(bitrate=32, samplerate=22050, stereo=false),
  mount="/your-stream-32.mp3",
  host="streaming.example.com", port=8000, password="xxx",
  mean(input))

当我尝试用./radi.liq运行它时,我得到了这个错误:

代码语言:javascript
复制
root@Ubuntu:/etc/liquidsoap# ./radio.liq
./radio.liq: line 4: url: command not found
./radio.liq: line 5: syntax error near unexpected token `('
./radio.liq: line 5: `input = mksafe(input.http(url))'
root@Ubuntu:/etc/liquidsoap#

下面是我使用此命令运行时会发生的情况:

代码语言:javascript
复制
root@Ubuntu:/etc/liquidsoap# liquidsoap radio2.liq
init: security exit, root euid (user).
root@Ubuntu:/etc/liquidsoap#

此流url http://46.21.106.168:80的缓冲区错误

代码语言:javascript
复制
2016/09/30 15:57:17 [http_4756:3] Buffer overrun: Dropping 0.03s.
2016/09/30 15:57:20 [http_4756:3] Buffer overrun: Dropping 0.00s.
2016/09/30 15:57:26 [http_4756:3] Buffer overrun: Dropping 0.00s.
2016/09/30 15:57:37 [http_4756:3] Buffer overrun: Dropping 0.01s.
2016/09/30 15:57:44 [http_4756:3] Buffer overrun: Dropping 0.00s.
2016/09/30 15:58:11 [http_4756:3] Buffer overrun: Dropping 0.00s.
2016/09/30 15:58:47 [http_4756:3] Buffer overrun: Dropping 0.00s.
EN

回答 2

Stack Overflow用户

发布于 2016-09-29 14:14:32

您应该启动liquidsoap解释器,并将您的脚本提供给它,如下所示:

liquidsoap radio.liq

在您的示例中,您直接从命令行启动脚本,它将转到shell (bash),而不是liquidsoap。

票数 0
EN

Stack Overflow用户

发布于 2016-10-29 05:56:16

添加到Alexeys答案的评论中。

您的脚本没有运行,因为您没有告诉脚本使用哪个应用程序来运行它。在windows上,文件扩展名(.exe、.txt或.doc)用于区分要打开的应用程序。在Unix上,第一行被称为"sha“,它告诉操作系统哪个应用程序必须运行这个文件。

因此,如果您首先使用以下命令检查您的liquidsoap的安装位置:

代码语言:javascript
复制
which liquidsoap

然后将响应路径添加到脚本的第一行,如下所示:

代码语言:javascript
复制
#!/usr/bin/liquidsoap

Unix现在将知道用哪个应用程序打开它。

在您的第二个观察结果(不是问题)上,可以看到溢出,因为您正在使用http从Icecast服务器获取流。Icecast服务器通常被配置为在连接时将一些数据“突发”给你(通常是为了让玩家填满他们的缓冲区)。无论如何,input.http命令中使用的缓冲区对于这种突然的数据突发来说太小了,因此liquidsoap抛出了一个溢出异常。要解决此问题,请增加最大缓冲区。

代码语言:javascript
复制
input = mksafe(input.http(url,buffer=2.,max=120.))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39758671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档