Внимания я всё делал от root "sudo su"
Для начала проверим наличее DVB-карт
#lspci
SS2- Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02)
SS3- Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
Сами устройства находятся тут /dev/dvb/
Ставим драйвера v4l
http://linuxtv.org/для них потребуются:
#apt-get install linux-source linux-headers linux-image libncurses5-dev
придётся некоторые компанетны выбрать вручную
устанавливаем v4l:
#make all
#make install
Процес долгий можете налить чаю
из пойманых мною глюкав оказалось нестаится с неправельной датой, make install выполнял из папки v4l и с флэшки неставился.
Можети попить чаю процес долгий.
Перезагружаем машыну...
проверяем транспортеры. для этого создаём фаил с содержымым:
S частота поляризация скорость fec
например S 11044000 V 44950000 3/4
scan я нашол в комплекте dvb-utils
# apt-get install dvb-utils
выполняем:
scan -a устройство фаил
например #scan -a 1 53
если паказал станции и их пиды то всё нормально
ставим getstream
#apt-get install getstream но я советую ставить с исходников если будите патчить
http://silicon-verl.de/home/flo/projects/streaming/Для сборки потребуется:
#apt-get install libevent-dev libglib2.0-dev
Если собераетесь пропатчеть для того чтоб играло радио в винампе(внимаение перестаёт вещать видео и играть радио в WMP я ставил 2 getstream`a):
http://tipok.org.ua/downloads/iptv/DVB/getstream/patches/filter-ps-es.diff Патчь
#patch -p1 < filter-ps-es.diff
Собераем getstream:
#make
#cp getstream /usr/local/bin
Дальше создаём фаил где описываем каналы такого типа:
http{
port 8000;
};
adapter 0 {
packet-buffer 50;
stat-interval 120;
dvb-s {
lnb {
lof1 9750000; #Нижний предел
lof2 10600000; #Верхний предел
slof 11700000; #Частота переключения
};
transponder { #описываем транспондер
frequency 11671000; #Частота приема
polarisation v; #поляризация
symbol-rate 18200000; #символьная скорость
};
};
#начало описания потока
stream {
name "Serebryany Dozhd"; #имя потока
#входные данные потока
input {
pnr 2100; #pid пакета на спутнике
};
#выходные данные для потока
output-http {
url /serebryany_dozhd; #URL адрес, на который будет вещаение
};
};
для пропатченого:
output-http {
filter {
es;
};
url /serebryany_dozhd; #URL адрес, на который будет вещаение
};
запускаем так
getsream -c имя фаила -d
-с обязателен
имя фаила с натроенными каналами
-d показывать статистику
-dd ещё больше статистики
в моём случии
screen -d -m /usr/local/bin/getstream -c /home/radio/video-53+60+75+80+90
а для пользователя создаём плайлист:
#EXTM3U
#EXTINF:-131,Серебрянный дождь
http://Имя сервера/serebryany_dozhd
мои фаилы:
http{
port 8001;
};
adapter 4 {
packet-buffer 50;
stat-interval 120;
dvb-s {
lnb {
lof1 9750000;
lof2 10600000;
slof 11700000;
};
transponder {
frequency 11606000;
polarisation v;
symbol-rate 44950000;
};
};
stream {
name "1Rock";
input {
pnr 30;
};
output-http {
url /1Rock;
};
};
};
adapter 0 {
packet-buffer 50;
stat-interval 120;
dvb-s {
lnb {
lof1 9750000;
lof2 10600000;
slof 11700000;
};
transponder {
frequency 11044000;
polarisation v;
symbol-rate 44950000;
};
};
stream {
name "MuzTV";
input {
pnr 5;
};
output-http {
url /MuzTV;
};
};
stream {
name "1Muz";
input {
pnr 1;
};
output-http {
url /1Muz;
};
};
stream {
name "TV7";
input {
pnr 2;
};
output-http {
url /TV7;
};
};
stream {
name "Expert";
input {
pnr 9;
};
output-http {
url /Expert;
};
};
stream {
name "Grozny";
input {
pnr 10;
};
output-http {
url /Grozny;
};
};
stream {
name "1TVRUS";
input {
pnr 11;
};
output-http {
url /1TVRUS;
};
};
};
adapter 3 {
packet-buffer 50;
stat-interval 120;
dvb-s {
lnb {
lof1 9750000;
lof2 10600000;
slof 11700000;
};
transponder {
frequency 11092000;
polarisation v;
symbol-rate 26470000;
};
};
stream {
name "RenTV";
input {
pnr 3600;
};
output-http {
url /RenTV;
};
};
stream {
name "Vesti";
input {
pnr 3900;
};
output-http {
url /Vesti;
};
};
stream {
name "Bibigon";
input {
pnr 4000;
};
output-http {
url /Bibigon;
};
};
};
adapter 2 {
packet-buffer 50;
stat-interval 120;
dvb-s {
lnb {
lof1 9750000;
lof2 10600000;
slof 11700000;
};
transponder {
frequency 12670000;
polarisation v;
symbol-rate 22000000;
};
};
stream {
name "2x2";
input {
pnr 200;
};
output-http {
url /2x2;
};
};
stream {
name "LUXE_TV";
input {
pnr 100;
};
output-http {
url /LUXE_TV;
};
};
stream {
name "TVclub";
input {
pnr 600;
};
output-http {
url /TVclub;
};
};
};
adapter 1 {
packet-buffer 50;
stat-interval 120;
dvb-s {
lnb {
lof1 9750000;
lof2 10600000;
slof 11700000;
};
transponder {
frequency 12579000;
polarisation v;
symbol-rate 22000000;
};
};
stream {
name "A-ONE";
input {
pnr 1300;
};
output-http {
url /A-ONE;
};
};
stream {
name "TV-Sale";
input {
pnr 1400;
};
output-http {
url /TV-Sale;
};
};
stream {
name "Topshop";
input {
pnr 1500;
};
output-http {
url /Topshop;
};
};
};
плайлист
#EXTM3U
#EXTINF:-1,1Rock
http://192.168.32.10:8001/1Rock
#EXTINF:-1,A-ONE
http://192.168.32.10:8001/A-ONE
#EXTINF:-1,2x2
http://192.168.32.10:8001/2x2
#EXTINF:-1,МузТВ
http://192.168.32.10:8001/MuzTV
#EXTINF:-1,1Музыкальный
http://192.168.32.10:8001/1Mus
#EXTINF:-1,7 ТВ
http://192.168.32.10:8001/TV7
#EXTINF:-1,Эксперт
http://192.168.32.10:8001/Expert
#EXTINF:-1,Грозный
http://192.168.32.10:8001/Grozny
#EXTINF:-1,Первый канал
http://192.168.32.10:8001/1TVRUS
#EXTINF:-1,REN TV
http://192.168.32.10:8001/RenTV
#EXTINF:-1,Вести 24
http://192.168.32.10:8001/Vesti
#EXTINF:-1,Бибигон
http://192.168.32.10:8001/Bibigon
#EXTINF:-1,Luxe TV
http://192.168.32.10:8001/LUXE_TV
#EXTINF:-1,TV Club
http://192.168.32.10:8001/TVclub
#EXTINF:-1,TV Sale
http://192.168.32.10:8001/TV-Sale
#EXTINF:-1,Top Shop
http://192.168.32.10:8001/Topshop
а такде я к munin приделал 2 скрипта:
Для статистики сигналов с DVB-карт Tuner=№ вашей DVB-карты
Tuner=0
case $1 in
autoconf|detect)
if [ -e /dev/dvb/adapter$Tuner/ ] ; then
echo yes
exit 0
else
echo "no (dvb tuner $Tuner not found)"
exit 1
fi;;
config)
echo 'graph_title DVB-0'
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel Signal Strength % / Errors in 000s'
echo 'graph_category mythtv'
echo 'graph_scale no'
echo "signal.label Signal strength"
echo "signal.draw LINE1"
echo "signal.min 0"
echo "snr.label Signal to noise"
echo "snr.draw LINE1"
echo "snr.min 0"
echo "ber.label Bit error rate (in millions)"
echo "ber.draw LINE1"
echo "ber.min 0"
echo "unc.label Uncorrectable errors (in thousands)"
echo "unc.draw LINE1"
echo "unc.min 0"
exit 0;;
esac
if [ -e /dev/dvb/adapter$Tuner/ ] ; then
check=`femon -H -c 1 -a $Tuner | grep signal `
echo $check | awk '{printf "signal.value %.0f\nsnr.value %.0f\nber.value %.2f\nunc.value %.2f\n\n",$5,$8,$11/1000,$14/1000000}'
else
echo "snr.value 0"
echo "unc.value 0"
echo "ber.value 0"
echo "signal.value 0"
fi
exit 0
И для статистика смотрящих TV
if [ "$1" = "config" ]; then
echo 'graph_title See TV'
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel shtuck'
echo 'graph_category Network'
echo 'graph_scale no'
echo "tcp.label see TV"
echo "tcp.draw LINE1"
echo "tcp.min 0"
exit 0
fi
echo -n "tcp.value "
echo `/bin/netstat -p tcp -n | grep 8001 | grep ESTABLISHED | wc -l`
Всё рабочее остальное зависит от ваших рук