我正在尝试使用液体转码流并输出到icecast2 以下是我从官方网站http://savonet.sourceforge.net/doc-svn/cookbook.html
获取的配置# 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))
当我尝试使用./radio.liq运行它时 我收到这个错误:
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#
以下是使用此命令运行时会发生的情况:
root@Ubuntu:/etc/liquidsoap# liquidsoap radio2.liq
init: security exit, root euid (user).
root@Ubuntu:/etc/liquidsoap#
的缓冲区错误
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.
答案 0 :(得分:0)
您应该启动liquidsoap解释器并将脚本提供给它:
liquidsoap radio.liq
在您的示例中,您直接从命令行启动脚本,它将转到shell(bash),而不是liquidsoap。
答案 1 :(得分:0)
添加Alexeys回答的评论。
您的脚本未运行,因为您没有告诉脚本运行它的应用程序。在Windows上,文件扩展名(.exe或.txt或.doc)用于区分要打开的应用程序。在Unix上,第一行被称为" sha bang"告诉操作系统哪个应用程序必须运行此文件。
因此,如果您首先检查您的液体肥皂的安装位置:
ffmpeg.exe -y -i input.flac -codec:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 -write_id3v1 1 output.mp3
然后将响应路径添加到脚本第一行,如下所示:
which liquidsoap
Unix现在将知道用哪个应用程序打开它。
在您的第二次观察(没有问题)时,可以看到Overrun,因为您正在使用http从Icecast服务器获取流。 Icecast服务器通常配置为" burst"连接时的一些数据(通常是玩家填充缓冲区)。无论如何,input.http命令中使用的缓冲区对于这个突发的数据突发来说太小了,因此liquidsoap会抛出溢出异常。要解决此问题,请增加最大缓冲区。
#!/usr/bin/liquidsoap