корое с vlc не получилось ни фига, vlc отказался транскодировать, поток в icecast2, пробовал и виндовый vlc тоже самое, сделал через оцифровку аудио:
запускается vlc звук идет на звуковуху(как запустить звуковуху в нете можно найти) далее берется кабелек, раньше с таким продавали тюнеры AverMEDIA с проводком для подключения от тюнера к звуковухе, т.к. посредством дров звук не шел в систему, этот проводок втыкаем в линейный выход звуковухи и в линейный вход (зеленый-голубой)
далее ставится darkice и он оцифровывает звук с этой же звуковухи и пихает его в icecast2
конфиг даркайса:
Код:
cat /usr/local/etc/darkice.cfg
# this section describes general aspects of the live streaming session
[general]
duration = 0 # длительность оцифровки в секундах, 0 - бесконе чно
bufferSecs = 60 # длительность внутренней буферизации, в секунда х
reconnect = yes # переподключаться в случае дисконнекта с сервер ом
realtime = no # оцифровка в режиме реального времени или нет
# this section describes the audio input that will be streamed
[input]
device = /dev/dsp0 # устройство OSS DSP звуковой карты
sampleRate = 44100 # частота дискретизации в Герцах: 11025, 22050 и ли 44100
bitsPerSample = 16 # бит на семпл, 8 или 16
channel = 2 # каналов: 1 = моно, 2 = стерео
[icecast2-0]
bitrateMode = cbr # тип кодирования, допустимы vbr/abr/cbr
format = mp3 # формат потока: mp3/ogg
bitrate = 128 # битрейд потока
server = 127.0.0.1 # имя хоста, на котором поднят Icecast2 (допусти м IP-адрес)
port = 8000 # порт, на котором слушает сервер IceCast2, обыч но 8000
password = YOUR_PASS # пароль для учетной записи source на се рвере IceCast2
mountPoint = Maximum # точка монтирования на сервере IceCast2
name = Maximum # название потока
description = Maximum # описание потока
url = http://maximum.ru # произвольный адрес
genre = radio # жанр
public = no # публиковать на dir.xith.org или нет?
но есть одна трабла когда отваливается инет vlc не переподключается, и еще одна что vlc не запускается под рутом
решение первой перезапуск vlc по крону раз в час, вполне хватает.
вот скрипт перезапуска:
Код:
cat /usr/local/etc/mms-rs.sh
#!/bin/sh
#
#:sout='#transcode{acodec=vorb,ab=128,channel=2}:duplicate{dst=std{access=shout,mux=ogg,dst=source:m21412s@127.0.0.1:8000/Maximum}}'
cvlc="/usr/local/bin/cvlc"
VLCCMD="${cvlc} --daemon --intf=dummy --volume 512 mms://broadcast01.station.ru/maximum"
kill -TERM `ps -xa | grep [v]lc | awk '{print$1}'`
${VLCCMD} > /dev/null 2>&1
exit 0
а решение проблемы запуска под root'ом:
если ставим из портов vlc:
даем команду make в директории порта как только пошла первая стадия(configure)
делаем CRTL+C
и идем в папку work: туда распаковываются исходники,
ищем там среди всех папок файл vlc.c
в нем делаем правки:
Код:
#ifndef ALLOW_RUN_AS_ROOT
if (geteuid () == 0)
{
fprintf (stderr, "VLC is not supposed to be run as root. Sorry.\n"
"If you need to use real-time priorities and/or privileged TCP ports\n"
"you can use %s-wrapper (make sure it is Set-UID root and\n"
"cannot be run by non-trusted users first).\n", ppsz_argv[0]);
return 1;
}
#endif
на
Код:
#ifndef ALLOW_RUN_AS_ROOT
if (geteuid () == 10)
{
fprintf (stderr, "VLC is not supposed to be run as root. Sorry.\n"
"If you need to use real-time priorities and/or privileged TCP ports\n"
"you can use %s-wrapper (make sure it is Set-UID root and\n"
"cannot be run by non-trusted users first).\n", ppsz_argv[0]);
return 1;
}
#endif
вместо 10 можете указать любой другой UID
дальше запускаем по новой сборку(make)
после этого можно пускать под root'ом.
ну а дальше запускаем и наслаждаемся звуком.
недостаток метода: если делать несколько каналов то надо несколько звуковух.
По ходу на БСД не реализуемо стандартным софтом. Может с поддержкой линя прокатит?
про линь сказать не могу не чего, под линем редко работаю, т.к. нет машин под ним, в основном FreeBSD.