Linux для спутникового телевидения

Прием спутниковых тв каналов в linux

Для приема сигнала нам понадобятся следующие программы:
scan — для сканирование каналов на транспондере.
szap — для проверки приема данных с танспондера.
vlc — для приема и вещания.

Первые две утилиты находятся в пакете linuxtv-dvb-apps. Что бы их установить можно воспользоваться менеджером пакетов вашего дистрибутива или пойти на LinuxTV, скачать исходники и собрать.
vlc так же можно установить используя менеджер пакетов, или с официального сайта VLC

frec — частота или транспондер
sr (symbol rate) — символьная скорость
fec — частота коррекции ошибок
V, H, L, R — поляризация
Сигнал который возможно принять может находиться в C и Ku диапазонах, в линейной(v,h) и круговой поляризации(l,r).

Ловим сигнал

Первым делом надо проверить, определилась ли наша dvb-карта в системе:
Это очень просто узнать, достаточно выполнить lspci и найти там подобные строчки:

03:05.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
03:06.0 Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02)
03:05.0 Multimedia video controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
03:05.2 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (rev 05)
03:05.4 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (rev 05)

1е устройство — skystar3
2е устройство — skystar2
3е, 4е, 5е устройства — twinhan 1027

Вот так это выглядит у меня:
root@sat:/# lspci
00:00.0 Host bridge: ATI Technologies Inc Unknown device 7910
00:01.0 PCI bridge: ATI Technologies Inc Unknown device 7912
00:07.0 PCI bridge: ATI Technologies Inc Unknown device 7917
00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA
00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)
00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)
00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)
00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)
00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)
00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)
00:14.0 SMBus: ATI Technologies Inc SB600 SMBus (rev 14)
00:14.1 IDE interface: ATI Technologies Inc SB600 IDE
00:14.2 Audio device: ATI Technologies Inc SB600 Azalia
00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge
00:14.4 PCI bridge: ATI Technologies Inc SB600 PCI to PCI Bridge
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc Radeon X1200 Series
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
03:05.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
03:06.0 Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02)

Следующим шагом будет запуск модулей ядра для этих dvb-карт.
Нужные модули зависят от чипсета dvb-карт, но есть 2 обязательных модуля: dvb_core и dvb_pll.
Для SkyStar 2: b2c2_flexcop
Для SkyStar 3: budjet
Для Twinhan 1027: cx88_dvb

В 99 случая из 100 нужные модули загрузились при старте системы. Так это или нет проверить очень просто lsmod | grep dvb
Вот так это выглядит все на той же системе:
root@sat:/# lsmod | grep dvb
dvb_pll 15876 2 b2c2_flexcop,lgh06xf
dvb_core 74280 5 b2c2_flexcop,budget,lgdt330x,budget_core,stv0299

Читайте также:  Микшер звука для windows 10 как включить

Если модули удачно загрузились, то вы увидите новые устройства в директории /dev/dvb:
root@sat:/# ls /dev/dvb/
adapter0/ adapter1/

Отлично, теперь нам надо поймать сигнал.
Первым делом надо будет просканировать какой-либо из доступных нам транспондеров и узнать какие же каналы мы можем принимать.
На помощь нам приходит установленная нами утилитка scan.
Она сканирует транспондер и выдает на стандартный поток вывода информацию о доступных каналах.
Из параметров ей необходимо передать путь к файлу конфигурации, номер dvb-адаптера которым сканировать и при круговой поляризации выставить вручную частоты.

Файл конфигурации для scan легко написать пользуясь информацией с сайта lyngsat.com. На нем нужно найти спутник на настроенный вами градус и из этого спутника выбрать любой транспондер.
На нашем примере, www.lyngsat.com/amos2.html, выберем транспондер(freq) 10759, горизонтальной(H) поляризацией, символьной скоростью(sr) 30000 и частотой коррекции ошибок(fec) 3/4. Наш файл конфигурации для scan будет выглядеть следующим образом:

S 10759000 H 30000000 3/4

Пользоваться так:
root@sat:/etc/sat/test# scan -a 0 /path/to/trans.conf
scanning /path/to/trans.conf
using ‘/dev/dvb/adapter0/frontend0’ and ‘/dev/dvb/adapter0/demux0’
initial transponder 10759000 H 30000000 3
>>> tune to: 10759:h:0:30000
Network Name ‘NET’
0x0000 0x0001: pmt_pid 0x0020 Spacecom — KIEV STB (running, scrambled)
0x0000 0x0002: pmt_pid 0x0030 Spacecom — M1 (running, scrambled)
0x0000 0x0003: pmt_pid 0x0040 Spacecom — TONIS (running, scrambled)
0x0000 0x0005: pmt_pid 0x0060 Spacecom — ICTV (running, scrambled)
0x0000 0x0006: pmt_pid 0x0070 Spacecom — M2 (running, scrambled)
0x0000 0x0008: pmt_pid 0x1079 Spacecom — NEWS 24 (running, scrambled)
0x0000 0x0009: pmt_pid 0x0200 Spacecom — Radio Antoshka (running, scrambled)
0x0000 0x000a: pmt_pid 0x0100 Spacecom — MTV UKRAINE (running, scrambled)
0x0000 0x000b: pmt_pid 0x0080 Spacecom — QTV (running, scrambled)
dumping lists (9 services)
KIEV STB:10759:h:0:30000:33:34:1
M1:10759:h:0:30000:49:50:2
TONIS:10759:h:0:30000:65:66:3
ICTV:10759:h:0:30000:97:98:5
M2:10759:h:0:30000:113:114:6
NEWS 24:10759:h:0:30000:4194:4195:8
Radio Antoshka:10759:h:0:30000:0:513:9
MTV UKRAINE:10759:h:0:30000:257:258:10
QTV:10759:h:0:30000:129:130:11
Done.

В случае с круговой поляризацией надо добавить ключик -l со значениями 10750,10750,0

scan -a 0 /path/to/trans.conf -l 10750,10750,0

Попробуем настроить карту на приём данных. Для этого нам понадобится конфигурационный файл для szap. Его очень просто получить:
root@sat:

/trans36.conf -l 10750,10750,0 >

# cat ./channels.conf
Sport 1:11727:h:0:27500:101:201:1
Sport 2:11727:h:0:27500:102:202:2
First Automotive:11727:h:0:27500:103:203:3
BIZ TV:11727:h:0:27500:104:204:4
Che-Pe_INFO:11727:h:0:27500:105:205:5
TBi:11727:h:0:27500:106:206:6
TV3:11727:h:0:27500:107:207:7
CHANSON:11727:h:0:27500:108:208:8
TOPSHOP TV:11727:h:0:27500:109:209:9
Expert test:11727:h:0:27500:110:210:10
Football test:11727:h:0:27500:111:211:11
Engineer_1:11727:h:0:27500:114:214:14

Теперь подсунем этот файл конфигурации в szap:
root@sat:

# szap -c ./channels.conf -n 1 -x -l 10750,10750,0
reading channels from file ‘./channels.conf’
zapping to 1 ‘Sport 1’:
sat 0, frequency = 11727 MHz H, symbolrate 27500000, vpid = 0x0065, apid = 0x00c9
using ‘/dev/dvb/adapter0/frontend0’ and ‘/dev/dvb/adapter0/demux0’
status 00 | signal 6262 | snr fcfc | ber 00000000 | unc 00000000 |
status 1f | signal 4d4d | snr 3535 | ber 00000000 | unc 00000006 | FE_HAS_LOCK

Если появилась надпись «FE_HAS_LOCK» значит все ок, настроились верно.
Параметры для szap похожи на параметры для scan:
-с /path/to/channels.conf — путь к файлу конфигурации с каналами.
-n X — номер канала из файла channels.conf, где X число начиная с 1.
-x — как только szap залочиться, сразу завершится.
-l 10750,10750,0 — необходимо для антенн с круговой поляризацией.

Вещаем в сеть

Итак, мы получили список каналов доступных нам на транспондере.
Теперь, когда мы знаем частоты, поляризацию, и узнали pid нужных каналов(последняя цифра в каждой строке, pid канала m1 = 2) можно приступить к непосредственному приему потока.
Для этого мы воспользуемся всемогущим плеером vlc.

Читайте также:  Как отключить кнопку пуск windows 10

Параметров передаваемых при старте довольно много и каждый раз их набирать бессмысленно, советую записать всю команду запуска vlc в исполняемый оболочкой файл.
#!/bin/bash
/usr/bin/vlc -vvv —color —ttl 12 —ts-es-id-pid —dvb-adapter=0 —programs=1,2,3,6,8,10,11 dvb:
—dvb-frequency=10759000 —dvb-srate=30000000 —dvb-voltage=18 —dvb-fec=9 -d —sout ‘#duplicate <
dst=»standard«,select=»program=1»
dst=»standard«,select=»program=2»
dst=»standard«,select=»program=3»
dst=»standard«,select=»program=6»
dst=»standard«,select=»program=8»
dst=»standard«,select=»program=10»
dst=»standard«,select=»program=11″>’

Немного о параметрах:
-vvv — подробный вывод сообщений, полезно при отладке.
—color — разукрашивает вывод сообщений, подсвечивает критичные сообщения красным, очень удобно, если используется -vvv.
—dvb-adapter — номер dvb адаптера из /dev/dvb/, в случае если у вас в компьютере установлено больше одного.
—programs — pid’ы каналов, которые необходимо принимать.
-d — работать как демон.
—dvb-fec — Значение fec 1/2 9 — определяется автоматически
dst=«standard»,select=«program=1»

Каждая из подобных строчек связывает pid канала с портом компьютера. В данном случае канал с pid’ом 1 будет транслироваться на 8011 порту.

Осталось лишь проверить.
Запускаем с клиента и смотрим:
mplayer h_t_t_p://10.16.0.12:8012

Источник

HowTo Смотрим Спутниковое ТВ в Ubuntu

Недавно столкнулся с проблемой настройки dvb-карты под Linux (ST-4200, клон SkyStar4). Все бы хорошо, но в интернете было достаточно мало информации по их установке, тем более для последних моделей этого девайса. И чтобы хоть как-то помочь популяризации мой любимой ОС, я написал вот этот небольшой how-to, где подробно описан порядок настройки. Старался изложить все максимально просто, для всех.

Итак, приступим. Прежде чем читать дальше, у вас уже должен быть установален дистрибутив Ubuntu, желательно последней версии (9.04 на данный момент), настроен интернет, ну и, конечно, dvb-карта, подключенная к настроенной спутниковой антенне. Как это все сделать, можно найти на сайтах ubuntologia.ru и forum.alyno.ru

1. Включаем проприетарный драйвер видеокарты. Идем в Система->Администрирование->Драйверы устройств. В появившемся окошке выбираем нужный драйвер, щелкаем по кнопке Активировать. Все, аппаратная поддержка включена!

2. Проверям, опозналась ли dvb-карта системой. Запускаем терминал Приложения->Стандартные->Терминал. Вводим команду
dmesg | grep dvb
Теперь внимательно смотрим на вывод. Если вы там нашли название вашей dvb-карточки, то значит система автоматически определила ее и установила свой драйвер, и можно сразу переходить к пункту 5.

3. Если ваша система не смогла определить карту, то не беда! Нашим соотечественником Игорем Липляниным был создан репозиторий, в котором есть драйвера практически к любой dvb-карте. Чтобы их установить, надо иметь уже настроенное подключение к интернету. Все дальнейшие действия надо будет выполнять в терминале с правами суперпользователя (root’a). Для этого в терминале вводим команду
sudo -i
После чего у вас запросят пароль. Замечу, что при вводе пароль не отображается, поэтому будьте внимательными и не ошибитесь при вводе. Если вы ввели все верно, то в строке приглашения символ $ поменяется на #, и сама строка примет приблизительно такой вид root@Ubuntu:

#.
Переходим в каталог, где мы будем собирать драйвер
cd /usr/src
Скачиваем и устанавливаем необходимые библиотеки из интернета

10мб. На все вопросы соглашаемся, нажимая клавишу y в английской раскладке
apt-get install build-essential linux-headers-generic
apt-get install mercurial libncurses-dev
Копируем исходники из репозитория (точно не помню, но где-то 20-150мб)
hg clone h_t_t_p://mercurial.intuxication.org/hg/s2-liplianin/ (естественно прежде убрав все символы подчеркивания _)
Переходим в нужный каталог
cd s2-liplianin/
Собираем
make KERNELRELEASE=$(uname -r)
И устанавливаем
make KERNELRELEASE=$(uname -r) install

Внимание! В зависимости от производительности процессора, драйвер может собираться от нескольких десятков минут, до нескольких часов!

Читайте также:  Как создать вирус удаляющий windows

Дальше надо найти firmware для чипа вашей dvb-карты. Его можно взять либо с сайта linuxtv.org, либо искать в гугле что-то наподобии такого: st-4200 firmware (вместо st-4200 пишем название своей карты). Скачиваем и сохраняем в удобном месте.
Копируем его в нужный каталог
cp SOURCE /lib/firmware
где SOURCE это полный путь к файлу firmware
Например, я сохранил свой firmware dvb-fe-cx24116.fw в своей домашней папке, то тогда полный путь к файлу будет таким /home/my_login/dvb-fe-cx24116.fw, а команда выглядеть так cp /home/my_login/dvb-fe-cx24116.fw /lib/firmware.
Замечу, что в каталоге /lib/firmware, возможно, уже есть нужный вам firmware, но я все равно советую поискать в интернете самую последнюю версию, ибо у меня со старым не заработало.
Обязательно перезагружаемся
reboot

4. Опять смотрим вывод
dmesg | grep dvb
Если все нормально, проверяем каталог /dev/dvb/adapter0
ls /dev/dvb/adapter0
там должны лежать файлы demux0, dvr0, frontend0, net0.

5. Даем текущему пользователю права на запуск софта для работы с dvb. Система->Администрирование->Пользователи и группы. Нажимаем кнопку Разблокировать, выбираем свою учетную запись щелкаем по Свойства, переходим на вкладку Привилегия пользователя и ставим галочки (если они не стоят) напротив Администрировать систему, Использовать аудио-устройства, Сохранять видео с ТВ… Жмем OK и закрываем.

6. Ставим софт. Софта под Linux для работы с dvb устройствами довольно много, но, как мне показалось, наиболее дружелюбным оказался kde’шный Kaffeine. Его настройка происходит намного проще, чем, допустим, того же DVB Dream’a в windows. К тому же у него есть EPG, timeshift и еще много разных фишек, например, возможность кардшаринга (бесплатный или почти бесплатный просмотр закрытых каналов).
Для инсталяции Kaffeine в терминале пишем
sudo apt-get install kaffeine
Будет предложено скачать

100 мб. Соглашаемся. Во время установки кафеин попросит ввести конфигурацию дайсеков (diseq). Здесь все элементарно (тем, кто уже настраивал в windows), описывать нет смысла. Если по каким-то причинам не удалось настроить дайсек, то это всегда можно сделать позже в меню программы DVB->Настройка DVB.
Теперь приступаем к поиску каналов. Запускаем кафеин, открываем DVB->Каналы, выбираем спутник и жмем Начать поиск. Все найденные каналы будут в правой части окна. Их можно добавить в список каналов, который находится слева, либо вручную, либо с помощью фильтра. После того, как вы составите список каналов, жмем Готово. Вуаля! Настройка DVB TV под Linux закончена!

7. Всего скорей окажется, что не все каналы будут просканированы. Это происходит из-за того, что с программой идут устаревшие списки трансподеров. Чтобы их исправить или добавить новые, с помощью файлового менеджера (например nautilus) переходим в каталог /home/логин_пользователя/.kde/share/apps/kaffeine/dvb-s В этой папке лежат файлы конфигов на все спутники.
Вот пример файла для спутника ABS-1 (северный луч, ku-диапазон)
# ABS-1 @ 75E
# freq pol sr fec
S 12518000 V 22000000 7/8
S 12548000 V 22000000 7/8
S 12579000 V 22000000 7/8
S 12610000 V 22000000 7/8
S 12640000 V 22000000 3/4
S 12670000 V 22000000 7/8
S 12694000 V 10750000 3/4
S 12732000 V 22000000 7/8
Как видно, строка состоит из символа S, частоты трансподера (в кГц), поляризации (V или H), символьной скорости, FEC (дробь вида x/y или AUTO). Все это разделено пробелами. Все цифры можно взять с сайта lyngsat.com

_________________
Если вам непонятно, что делает какая-нибудь команда, то это всегда можно узнать во встроенной справке, набрав в терминале
man имя_команды

Все вышесказаное делалось в графической среде GNOME.

Источник

Оцените статью