2016-09-28 62 views
0

配置liquidsoap我想转码流液体,并输出到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 我得到这个错误:

[email protected]:/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))' 
[email protected]:/etc/liquidsoap# 

这里的时候我用这个命令运行会发生什么:

[email protected]:/etc/liquidsoap# liquidsoap radio2.liq 
init: security exit, root euid (user). 
[email protected]:/etc/liquidsoap# 

与此流URL缓冲区错误http://46.21.106.168:80

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

你应该开始liquidsoap解释和饲料你的脚本是这样的:

liquidsoap radio.liq

在你的榜样,你在命令启动脚本直接行,它去壳(bash),而不是liquidsoap。

+0

感谢您的答复! 所以,我试着用上面的命令运行它,现在我得到这个错误: 'code' root @ Ubuntu-VM:/ etc/liquidsoap#liquidsoap radio.liq 第9行,char 80在“:”之前:分析错误! 根@ Ubuntu的VM:在/ etc/liquidsoap# 'code' – JohnnyBeGood

+0

这是我的配置: 'code' #输入流,从服务器的Icecast或任何其他来源 #URL =“HTTP #:// www.protonradio.com:8000/schedule.m3u “ #liveset = mksafe(input.http( ”http://www.protonradio.com:8000/schedule.m3u“)) #liveset = rewrite_metadata([(”艺术家 “ ”圣地亚哥萨阿“),( ”标题“, ”120微小直播“)],liveset) #source =单 ”audiofile.mp3“ #live = input.http的” http://www.protonradio。com:8000/schedule.m3u“ radio =(input.http(max = 30.0,”http://www.protonradio.com:8000/schedule.m3u"))source(1,0,0)) – JohnnyBeGood

+0

#第二代码转换器:MP3 64 kbps output.icecast( %mp3(bitrate = 64), mount =“/ your-stream-64.mp3”, host =“localhost”,port = 8000,password =“xxxxxxx ” 输入) 'code' 它看起来像它complaing约:源(1,0,0)) – JohnnyBeGood

0

添加到Alexeys的评论回答。

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

所以,如果你先检查您liquidsoap安装有:

which liquidsoap 

然后响应路径添加到您的脚本第一行,像这样:

#!/usr/bin/liquidsoap 

的Unix现在就会知道哪些应用程序打开它。

关于你的第二个观察(未发行),溢出的看到,因为你是从icecast服务,使用HTTP获取流。 Icecast服务器通常配置为在连接时“爆裂”一些数据给您(通常用于填充缓冲区的玩家)。无论如何,input.http命令中使用的缓冲区对于突发的数据突发太小,因此liquidsoap会引发溢出异常。要解决这个问题,请增加最大缓冲区。

input = mksafe(input.http(url,buffer=2.,max=120.)) 
+0

感谢您花时间解释! 当“缓冲区溢出:下降0.03s”时,我确实查看了日志及其随机数。发生。我添加了你的建议,并在几天后报告,如果修复它。 – JohnnyBeGood

+0

好吧,经过几天的测试,我没有看到日志中的“缓冲区溢出:丢弃0.00s”,但现在我看到“通过健忘过渡切换到safe_blank”。并在网上搜索后,似乎是网络滞后导致内部缓冲区清空。我没有控制源码流,所以现在我称它为好。谢谢你的帮助! – JohnnyBeGood