Автор Тема: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN  (Прочетена 54390 пъти)

ltrifonov

  • Напреднали
  • *****
  • Публикации: 15
    • Профил
Здравейте,

пиша тук за да споделя опита си от 2 дена "ръчкане" в линукс
по темата VLC Streaming DVB-T

След тези 2 дена ефекта е: чудесно работещ Streaming сървър, който излъчва в ЛАН едновременно всички 6 канала от мултиплекса с цифровата телевизия в София: БНТ1, ББТ, БТВ, НОВА, ТВ7, ВОЙС

Излъчването става със VLC, а за приемник ползвам УСБ стикче от e-bay за... 1$

Използвах Ubuntu 10.04 Server

инсталирах dvb-apps и vlc чрез apt-get

най-много време ми отне подкарването на китайското "ефтинжос" приемниче - наложи се да прекомпилирам / препачна V4L-DVB.

Преди да започна, при включване на устройството излизаше следното в dmesg:

    [ 1268.818994] af9015: tuner id:179 not supported, please report!
    [ 1268.821711] Afatech DVB-T 2: Fixing fullspeed to highspeed interval: 10 -> 7
    [ 1268.822301] input: Afatech DVB-T 2 as /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.1/input/input5
    [ 1268.823010] generic-usb 0003:15A4:9016.0002: input,hidraw0: USB HID v1.01 Keyboard [Afatech DVB-T 2] on usb-0000:00:1d.7-3/input1


ровичках по форумите, и открих - тунер ID:179 е NXP TDA18218
той обаче не се поддържа все още директно...
затова - командите са следните:

трябва да изтеглим firmware:
wget http://jusst.de/manu/fw/AFA/dvb-usb-af9015.fw_a-link
mv dvb-usb-af9015.fw_a-link /lib/firmware/dvb-usb-af9015.fw



hg clone -r 0f41fd7df85d http://linuxtv.org/hg/~anttip/af9015/
това изтегля точно определен source на проекта v4l-dvb

към него се прилага точно определен пач:
https://patchwork.kernel.org/patch/82494/raw/
пачът се прилага така: patch -p1 < ../път_до_изтегления_patch

след прилагане на пача, правим компилиране:
make
make install

(това при мен вървеше доста бавно - около 10 мин)
след успешно инсталиране трябва да се презаредят kernel drivers:
modprobe -r dvb_usb_af9015
modprobe -r dvb_usb

modprobe dvb_usb_af9015


така, включваме отново китайския "ефтинджос" и: о, чудо :

    [10554.516131] dvb-usb: found a 'Afatech AF9015 DVB-T USB2.0 stick' in cold state, will try to load a firmware
    [10554.516140] usb 1-1: firmware: requesting dvb-usb-af9015.fw
    [10554.557674] dvb-usb: downloading firmware from file 'dvb-usb-af9015.fw'
    [10554.611498] dvb-usb: found a 'Afatech AF9015 DVB-T USB2.0 stick' in warm state.
    [10554.611559] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
    [10554.612436] DVB: registering new adapter (Afatech AF9015 DVB-T USB2.0 stick)
    [10554.977944] af9013: firmware version:4.65.0
    [10554.981195] DVB: registering adapter 0 frontend 0 (Afatech AF9013 DVB-T)...
    [10555.002440] NXP TDA18218 successfully identified.
    [10555.002447] dvb-usb: Afatech AF9015 DVB-T USB2.0 stick successfully initialized and connected.
    [10555.008484] usbcore: registered new interface driver dvb_usb_af9015
    [10555.022955] usbcore: registered new interface driver hiddev
    [10555.023089] usbcore: registered new interface driver usbhid
    [10555.023157] usbhid: v2.6:USB HID core driver

сега идва най-хубавата част: VLC


направо пиша командата:

cvlc --programs=1,2,3,4,5,6 dvb-t:// :dvb-frequency=818000000 :dvb-bandwidth=8 :dvb-guard=16 :dvb-transmission=8 --sout '#duplicate{dst=standard{access=http,mux=asf,dst=:1234},select="program=1",dst=standard{access=http,mux=asf,dst=:1235},select="program=2",dst=standard {access=http,mux=asf,dst=:1236},select="program=3",dst=standard{access=http,mux=asf,dst=:1237},select="program=4",dst=standard{access=http,mux=asf,dst =:1238},select="program=5",dst=standard{access=http,mux=asf,dst=:1239},select="program=6",}'

това цялото на 1 ред...

с тази команда се указват всички параметри необходими за настройване към цифровото излъчване в София:

dvb-frequency=818000000
dvb-transmission=8
dvb-bandwidth=8
dvb-guard=16



ефекта е:
Стриймване на всички 6 канала едновременно, всеки на различен порт: от 1234 до 1239

остава само а си направите playlist със следните редове:
http://IP.NA.Linux:1234
http://IP.NA.Linux:1235
http://IP.NA.Linux:1236
http://IP.NA.Linux:1237
http://IP.NA.Linux:1238
http://IP.NA.Linux:1239

от всеки отделен компютър може да се гледа различен канал, по едно и също време

това е!

Поздрави на всички разбрали/неразбрали
Активен

apkah

  • Напреднали
  • *****
  • Публикации: 28
    • Профил
Мерси, доста ми помогна да подкарам тоя тунер. При мене имаше нужда и преди компилацията да сложа компилатора да е gcc 4.3 (export cc=/usr/bin/gcc-4.3 ми свърши работа).
Нещо друго което забелязах е, че h264 мултиплексите (на 490 и 626 MHz) не се хващат от тоя тунер, а те имат много добро качество.
Активен

tvkkk

  • Напреднали
  • *****
  • Публикации: 83
  • Distribution: Arch linux
  • Window Manager: lxde
    • Профил
    • WWW
Нещо друго което забелязах е, че h264 мултиплексите (на 490 и 626 MHz) не се хващат от тоя тунер, а те имат много добро качество.
Опитай с по-точни параметри за МПЕГ-4 пакета.
Ето как е при мен
vlc -vvv --color --ttl 12 --ts-es-id-pid dvb-t:// --dvb-adapter=0 \
--dvb-frequency=626000000 --dvb-inversion=0 --dvb-bandwidth=8 \
--dvb-code-rate-hp=2 --dvb-code-rate-lp=2 \
--dvb-transmission=8 --dvb-guard=4 --dvb-fec=2/3 --dvb-hierarchy=-1 --program=200 --dvb-modulation=64 --sout-keep --sout
На 490 MHz се избира --program=100
При мен указвам номера на адаптера, поради няколкото ТВ карти, а със --sout-keep му казвам да продължи да излъчва, макар и да прекъсне входния сигнал.
Освен това проблема може да е в това, че опитваш да ползваш mux=asf. По-разумно е да ползваш mux=ts (Аз лично го предпочитам и за МПЕГ-2) каналите.
Може също да излъчваш каналате на един IP port, като със наклонена черта се указва име канала:
1234/1
1234/2
1234/3
или
1234/Kanal1
1234/bTV
1234/TV7
« Последна редакция: Aug 13, 2010, 14:59 от tvkkk »
Активен

ltrifonov

  • Напреднали
  • *****
  • Публикации: 15
    • Профил
благодаря APKAH,

сега чакам да пристигне втория китайски тунер от ebay,
Веднага щом пристигне го включвам и него за "--dvb-frequency=626000000"

в офиса много ще се кефим ;)

а и ще споделя какво е нужно за да работят едновременно!

поздрави!
Активен

abscent

  • Напреднали
  • *****
  • Публикации: 123
  • Distribution: Gentoo
  • Window Manager: KDE
  • lamy lazer
    • Профил
а някаква идея на какъв минимално хардуер върви този софтуер  ::) - мисля да го пусна за пробата на някоя виртуална машина с E6550 / 2.33MHz...
Активен

Deeply in love with......Gentoo

tvkkk

  • Напреднали
  • *****
  • Публикации: 83
  • Distribution: Arch linux
  • Window Manager: lxde
    • Профил
    • WWW
а някаква идея на какъв минимално хардуер върви този софтуер  ::) - мисля да го пусна за пробата на някоя виртуална машина с E6550 / 2.33MHz...
Ако не се прави транскодинг /както е в дадения от колегата пример/ с едноядрен 1GHz CPU и 1 ГБ РАМ ти върши работа /Пускал съм го на EEEPC 701/ .
Ако правиш транскодинг - зависи от кодека. С процесор E2180 и 4 ГБ РАМ и видеокодек mp4v и шесте канала мога да ги излъча, а когато ползвам h264 стигам до 3 канала, след което започвам да губя рамки. 
Относно втори тунер. При твоя случай не трябва да имаш проблеми да си пуснеш второ или трето vlc на различни портове. Не съм търсил начин да пускам различни честоти с един процес.
« Последна редакция: Aug 17, 2010, 16:55 от tvkkk »
Активен

apkah

  • Напреднали
  • *****
  • Публикации: 28
    • Профил
а някаква идея на какъв минимално хардуер върви този софтуер  ::) - мисля да го пусна за пробата на някоя виртуална машина с E6550 / 2.33MHz...

Така както е направено, се предава директно сигнала, който идва от мултиплексите, и нищо не се преенкодира, затова ако само stream-ваш и не гледаш от екрана на "vlc съръра" ти трябват сравинтелно слаб хардуеър, 600-700 и 256ram ще ти сършат работа (аз го подкарах на виртуална машина с 256 рам). Аз така бях направил в работата за световното по футбол - пусхах stream-а, който идваше дректно от мултиплекса и всекой, който искаше да гледа мача, си гледаше stream-а препредаван от vlc-то, и през цялото време cpu-то не се вдигна на повече от 10%, а машинката беше P4 на 2.8 GHzл
« Последна редакция: Aug 17, 2010, 22:19 от apkah »
Активен

abscent

  • Напреднали
  • *****
  • Публикации: 123
  • Distribution: Gentoo
  • Window Manager: KDE
  • lamy lazer
    • Профил
Цитат
...600-700 и 256ram ще ти сършат работа (аз го подкарах на виртуална машина с 256 рам)...
благодаря много, така поднесената информация ме устройва идеално
остава да проуча дали във варна мултиплекса е активно пуснат, а не тестово, и да взема pci-платка за tv-capture - за останалото ще склоня някак xen-а и дъното което го търкаля ;D
Активен

Deeply in love with......Gentoo

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Внимавайте да не разбере Явор Колев за нелицензираното предаване по кабел на телевизия, че може да се качи на покрива и да ви конфискува сървърите...

Ако не взимате пари за това ощетявате държавата като не плащате данъци.  Ако потребителите на услугата са свързани лица не можете да предлагате услугата безплатно  - трябва да е на пазарни цени и да плащате съответните данъци. Ако НАП ви надуши ще има глобички...

P.S. Във всяка шега има и малко истина...
« Последна редакция: Aug 19, 2010, 08:47 от vstoykov »
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
« Последна редакция: Aug 19, 2010, 14:18 от backtolife »
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

kennedy

  • Напреднали
  • *****
  • Публикации: 2151
  • Николай Колев
    • Профил
а някой може ли дами пусне някое url да си го адна в vlc-to и да гледам дискавърито?
Активен

"за всичко иде час" Еклесиаст 3:1
всеки пост - отговор на въпрос
-----------------
24.12.2003 "MS Free"

ltrifonov

  • Напреднали
  • *****
  • Публикации: 15
    • Профил
Пристигна ми втория тунер от китай :)

пуснах ги в паралел - никакъв проблем, разпознават си се едновременно
само както е писал по-горе tvkkk - указвам на единия vlc: --dvb-adapter=0
а на другия: --dvb-adapter=1

натоварването на системата се увеличи с 1% :)))

машинката е P4 3.0
Активен

ltrifonov

  • Напреднали
  • *****
  • Публикации: 15
    • Профил
А по този начин - същото излъчване се осъществява от Windows машина:

vlc.exe  --programs=1,2,3,4,5,6 dvb-t:// :dvb-frequency=818000 :dvb-bandwidth=8 :dvb-guard=16 :dvb-transmission=8 :sout=#duplicate{dst=std{access=http,mux=asf,dst=:1234},select="program=1",dst=std{access=http,mux=asf,dst=:1235},select="program=2",dst=std{access=http,mux=asf,dst=:1236},select="program=3",dst=std{access=http,mux=asf,dst=:1237},select="program=4",dst=std{access=http,mux=asf,dst=:1238},select="program=5",dst=std{access=http,mux=asf,dst=:1239},select="program=6"}

показва се интерфейса на плеъра, не съм се ровил дали има аналог на cvlc за да си работи невидимо като процес...
Активен

tvkkk

  • Напреднали
  • *****
  • Публикации: 83
  • Distribution: Arch linux
  • Window Manager: lxde
    • Профил
    • WWW

показва се интерфейса на плеъра, не съм се ровил дали има аналог на cvlc за да си работи невидимо като процес...
Може би с опция  -I dummy --dummy-quiet
Активен

tvkkk

  • Напреднали
  • *****
  • Публикации: 83
  • Distribution: Arch linux
  • Window Manager: lxde
    • Профил
    • WWW
Вариант 2 getsream
« Отговор #14 -: Sep 29, 2010, 11:16 »
Ето и още един вариант за ъзлъчване, по-лесен за изпълнение и не е толкова трудоемък за процесора, а и всичко се пуска с един процес.
 За целта ползвам getstream http://silicon-verl.de/home/flo/projects/streaming/
Няма да описвам как се инсталира, на сайта е описано.
На практика най-съществената част е конфигурационният файл /
Ето така изглежда моят конфигурационен фаил за два DVB-T тунера:
Цитат
http {
       port 8001;
};

adapter 2 {
       dvb-t {
               frequency 818000000;
               bandwidth 8;
               transmission-mode auto;
               guard-interval auto;
               hierarchy none;
               modulation auto;
       };

       stream {
               name "full";
               input {
                   full;
               };
               output-http {
                       url /mux1;
               };
       };

};

adapter 3 {

       dvb-t {
               frequency 626000000;
               bandwidth 8;
               transmission-mode auto;
               guard-interval auto;
               hierarchy none;
               modulation auto;
       };

       stream {
               name "full";
               input {
                   full;
               };
               output-http {
                       url /towercom626;
               };
       };

};

Гледане на  клиентска машина става с  vlc http://my_streaming_server:8001/mux1 или
towercom626. Смяната на каналите става от Playback--Program на клиентското vlc .
По разумен вариант е  да се излъчват отделни канали, като се задават PID  /pnr в конф. файл/
Цитат
       stream {
               name "ch4";
               input {
                   pnr 5340;
               };
               output-http {
                       url /tv/4;
               };
       };

       stream {
               name "ch5";
               input {
                   pnr 5350;
               };
               output-http {
                       url /tv/5;
               };
       };

Ето и как добавям и кабеларката към схемата :
Цитат
adapter 1 {
 dvb-c {
               frequency 806000000;
               symbol-rate 6875000;
                modulation 64;

       };

       stream {
               name "full";
               input {
                   full;
               };
               output-http {
                       url /cabletel;
               };
       };

};
Накрая си пускам процеса със :

#!/bin/bash   
getstream -c /etc/getstream.conf &

« Последна редакция: Sep 29, 2010, 11:37 от tvkkk »
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Iptv с mplayer
Настройка на програми
nov_chovek 3 4691 Последна публикация Sep 29, 2010, 13:19
от shari
DVB-S Video Stream server подобен на IPTV
Сървъри
mystical 11 15703 Последна публикация Nov 18, 2012, 10:21
от mirokostov
Стриймване на тв от IPTV.bg ???
Настройки на софтуер
rammstein 9 9101 Последна публикация Dec 06, 2010, 15:18
от rammstein
Vivacom IPTV set-top-box
Живота, вселената и някакви други глупости
geroy 22 36263 Последна публикация Dec 21, 2013, 01:10
от saentist
IPTV vlc stream във web формат
Web development
Astor 4 4268 Последна публикация Mar 03, 2013, 16:02
от go_fire