2016-09-28 6 views
0

Я пытаюсь перекодировать поток с жидкостью и выходом в icecast2 Ниже мой конфиг взята с официального сайта http://savonet.sourceforge.net/doc-svn/cookbook.htmlнужно настроить Liquidsoap для транскодирования

# 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. жидк Я получаю эту ошибку:

[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# 

ошибок Buffer с этим потоком 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), а не жидкость.

+0

Благодарим за ответ! Итак, я попробовал запустить его с помощью вышеприведенной команды, и теперь я получаю эту ошибку: 'code' root @ Ubuntu-VM:/etc/liquidsoap # liquidsoap radio.liq Строка 9, символ 80 перед«: »: ошибка парса ! корень @ Ubuntu-VM:/и т.д./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 ([(" художник "," Сантьяго Саа "), (" title "," 120 minutest Live ")], liveset) #source = single" audiofile.mp3 " #live = input.http" http: //www.protonradio.com: 8000/schedule.m3u « радио = (input.http (max = 30.0,« http://www.protonradio.com:8000/schedule.m3u")): источник (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 ответ.

Ваш сценарий не запускался, потому что вы не сказали сценарию, какое приложение запускать его. В окнах расширение файла (.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

Спасибо, что нашли время, чтобы объяснить! Я действительно смотрел журналы, и это было так случайным, когда «Buffer overrun: Droping 0.03s». имеет место. Я добавил ваше предложение и отчитаюсь через несколько дней, если это исправлено. – JohnnyBeGood

+0

Итак, после нескольких дней тестирования я не вижу «переполнение буфера: падение 0.00s» в журналах, но теперь я вижу «Переключиться на safe_blank с забывчивым переходом». и после поиска в Интернете, похоже, происходит сетевое отставание, в результате чего внутренний буфер пуст. У меня нет контроля над исходным потоком, поэтому на данный момент я называю это хорошим. Спасибо за вашу помощь! – JohnnyBeGood