2016-09-28 63 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