Linux за българи: Форуми

Linux секция за начинаещи => Настройка на хардуер => Темата е започната от: ltrifonov в Aug 11, 2010, 17:44



Титла: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Aug 11, 2010, 17:44
Здравейте,

пиша тук за да споделя опита си от 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

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

това е!

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


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: apkah в Aug 13, 2010, 13:47
Мерси, доста ми помогна да подкарам тоя тунер. При мене имаше нужда и преди компилацията да сложа компилатора да е gcc 4.3 (export cc=/usr/bin/gcc-4.3 ми свърши работа).
Нещо друго което забелязах е, че h264 мултиплексите (на 490 и 626 MHz) не се хващат от тоя тунер, а те имат много добро качество.


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: tvkkk в Aug 13, 2010, 14:47
Нещо друго което забелязах е, че 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


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Aug 17, 2010, 16:07
благодаря APKAH,

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

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

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

поздрави!


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: abscent в Aug 17, 2010, 16:22
а някаква идея на какъв минимално хардуер върви този софтуер  ::) - мисля да го пусна за пробата на някоя виртуална машина с E6550 / 2.33MHz...


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: tvkkk в Aug 17, 2010, 16:53
а някаква идея на какъв минимално хардуер върви този софтуер  ::) - мисля да го пусна за пробата на някоя виртуална машина с E6550 / 2.33MHz...
Ако не се прави транскодинг /както е в дадения от колегата пример/ с едноядрен 1GHz CPU и 1 ГБ РАМ ти върши работа /Пускал съм го на EEEPC 701/ .
Ако правиш транскодинг - зависи от кодека. С процесор E2180 и 4 ГБ РАМ и видеокодек mp4v и шесте канала мога да ги излъча, а когато ползвам h264 стигам до 3 канала, след което започвам да губя рамки. 
Относно втори тунер. При твоя случай не трябва да имаш проблеми да си пуснеш второ или трето vlc на различни портове. Не съм търсил начин да пускам различни честоти с един процес.


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: apkah в Aug 17, 2010, 22:16
а някаква идея на какъв минимално хардуер върви този софтуер  ::) - мисля да го пусна за пробата на някоя виртуална машина с E6550 / 2.33MHz...

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


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: abscent в Aug 18, 2010, 17:23
Цитат
...600-700 и 256ram ще ти сършат работа (аз го подкарах на виртуална машина с 256 рам)...
благодаря много, така поднесената информация ме устройва идеално
остава да проуча дали във варна мултиплекса е активно пуснат, а не тестово, и да взема pci-платка за tv-capture - за останалото ще склоня някак xen-а и дъното което го търкаля ;D


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: vstoykov в Aug 19, 2010, 08:44
Внимавайте да не разбере Явор Колев ($2) за нелицензираното предаване по кабел на телевизия, че може да се качи на покрива и да ви конфискува сървърите...

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

P.S. Във всяка шега има и малко истина...


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: b2l в Aug 19, 2010, 08:46
//off
Явор Колев ($2)

 :D :D :D :D :D :D това съм го пропуснал в deal-a  :D :D :D :D :D :D


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: kennedy в Aug 19, 2010, 13:12
а някой може ли дами пусне някое url да си го адна в vlc-to и да гледам дискавърито?


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Aug 30, 2010, 14:26
Пристигна ми втория тунер от китай :)

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

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

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


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Aug 31, 2010, 13:45
А по този начин - същото излъчване се осъществява от 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 за да си работи невидимо като процес...


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: tvkkk в Aug 31, 2010, 14:04

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


Титла: Вариант 2 getsream
Публикувано от: tvkkk в 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 &



Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Oct 15, 2010, 12:43
@tvkkk: Страхотно :)

с getstream CPU е натоварено 1 % :) при 6% със VLC !

при мен на убунту се наложи да компилирам getstream, защото apt-get install getstream  инсталира вероятно някаква стара версия, и с копи-пейст на конфигурацията ми даваше грешка: stream:  invalid config option.

затова следвах стъпките от сайта:

cd /usr/src
git clone git://hydra.gt.owl.de/getstream.git

apt-get install libevent-dev
apt-get install libglib2.0-dev

cd getstream
make


след това копирах получения изпълним файл getstream във /usr/bin

пуснах програмата със показания по-горе конфиг фаил, но изписа грешка: /dev/dvb/adapter2/ not found (или нещо в този дух)

проверих какво имам в тази директория и открих само /dev/dvb/adapter0

смених в конфигурацията adapter 2 със adapter 0
И всичко тръгна !!!

Каналите се сменят от VLC със Възпроизвеждане -> програма ... (при мен интерфейса е
на БГ)

редакция: забелязвам че плеъра приема целия входящ поток едновременно при 1-вия вариант на конфигурацията от предишния пост.
Това прави 15000 кб/с входящ битрейт... 
За гледане в LAN не е проблем, но за отдалечено през интернет ще е тежко.

следваща редакция: прилагам конфигурация за 1 транспондер с 6-те канала поотделно:

Цитат
http {
       port 8001;
};

adapter 0 {
       dvb-t {
               frequency 818000000;
               bandwidth 8;
               transmission-mode auto;
               guard-interval auto;
               hierarchy none;
               modulation auto;
       };
       stream {
               name "bnt1";
               input {
                   pnr 1;
               };
               output-http {
                       url /tv/bnt1;
               };
       };

       stream {
               name "bTV";
               input {
                   pnr 2;
               };
               output-http {
                       url /tv/btv;
               };
       };


       stream {
               name "tv7";
               input {
                   pnr 3;
               };
               output-http {
                       url /tv/tv7;
               };
       };

       stream {
               name "voice";
               input {
                   pnr 4;
               };
               output-http {
                       url /tv/voice;
               };
       };

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


       stream {
               name "nova";
               input {
                   pnr 6;
               };
               output-http {
                       url /tv/nova;
               };
       };

гледането става с vlc http://ip.na.server:8001/tv/nova за нова ТВ
или съответно плейлиста със изброени 6-те канала


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: tvkkk в Oct 16, 2010, 13:58
Наистина, както и аз отбялязах е добре да се разделят каналите, вместо да се излъчва пълният поток.
За локална мрежа ти препоръчвам да ползваш и UDP или RTP
 
Цитат

stream {
              name "Kanal 1";
              input {
                  pnr 1;
              };
              output-http {
                      url /tv/k1;
              };
              output-udp {
                      remote-address 238.0.0.1;
                      remote-port 1234;
                           sap { scope global;
             ttl 4;
             playgroup "Kanal 1";
            };
              };
      };

Тогава в локалната мрежа може  да се ползват SAP анонсите и през playlist менюто да се избират каналите и да се гледат по UDP


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: tvkkk в Oct 16, 2010, 14:21
Вариант със dvblast. Само за локална мрежа, защото за  съжаление не поддържа http стрийминг, а само rtp и udp и доколкото. но има опция always on в случай че загуби входния сигнал продължава да държи и да чака сигнала да се възстанови. Освен това конфигурацията е много проста:
създаваме си конфигурационен файл например mux1.cfg
Цитат
;Kanal 1
239.255.1.1:5004    1    1
;bTV
239.255.1.2:5004     1    2
;TV 7
239.255.1.3:5004   1    3
;The Voice
239.255.1.4:5004     1    4
;BBT
239.255.1.5:5004     1    5
;Nova TV
239.255.1.6:5004    1    6
Накратко за конфигурацията IP адрес/порт/always on флаг/PID на канала
Пускаме
dvblast -a 0 -c mux.cfg -f 818000000 -m qam_16 -b 8 -e
Палим vlc и даваме open stream rtp://@239.255.1.1 за първия канал и т.н.
За да не мъчим потребителите, май добре е да ползваме minisapserver
правим си sap.cfg файл
Цитат
# sap.cfg - Configuration file of the mini SAP server

# Global miniSAPserver options
[global]

# Number of seconds between announces. 5 is default. Internet announces better use 30.
sap_delay=5

# The network interface on which to stream.
#interface=eth0

[program]
type=rtp
name=Kanal 1
user=user
machine=myserver.localnet
site=http://myserver.localnet
address=239.255.1.1
port=5004
playlist_group=(Mux 1)

[program]
type=rtp
name=bTV
user=user
machine=myserver.localnet
site=http://myserver.localnet
address=239.255.1.2
port=5004
playlist_group=(Mux 1)

[program]
type=rtp
name=TV7
user=user
machine=myserver.localnet
site=http://myserver.localnet
address=239.255.1.3
port=5004
playlist_group=(Mux 1)

[program]
type=rtp
name=The Voice
user=user
machine=myserver.localnet
site=http://myserver.localnet
address=239.255.1.4
port=5004
playlist_group=(Mux 1)

[program]
type=rtp
name=BBT
user=user
machine=myserver.localnet
site=http://myserver.localnet
address=239.255.1.5
port=5004
playlist_group=(Mux 1)

[program]
type=rtp
name=Nova TV
user=user
machine=myserver.localnet
site=http://myserver.localnet
address=239.255.1.6
port=5004
playlist_group=(Mux 1)
Палим sap сървъра със
sapserver -c sap.cfg

Пускаме клиентския vlc - Paylist --> Local Network --> Network streams (SAP) и избираме какво да гледаме


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: distlists в Nov 23, 2010, 12:02
А някой имал ли е проблеми с VLC стрийминг на H264 мултиплексите (490 и 626 MHz)? Ако се гледа локално с VLC на компютъра на който е инсталиран DVB-T тунера няма никакви проблеми, но при опит за стрийминг с VLC, на клиента (отново VLC) картината се вижда замазана, на големи зелени квадрати, а сървъра през цялото време показва следните съобщения:

Цитат
[0x100261778] main stream output warning: trying to send non-dated packet to stream output!
[0x100261778] main stream output warning: trying to send non-dated packet to stream output!
[0x100261778] main stream output warning: trying to send non-dated packet to stream output!
[0x100261778] main stream output warning: trying to send non-dated packet to stream output!
[0x100261778] main stream output warning: trying to send non-dated packet to stream output!

Получава се и на Ubuntu 10.04 Server (vlc 1.0.6) и на Windows XP SP3 (vlc 1.1.5).

Този прблем го няма при мултиплекса на 818MHz и там стрийминга работи както трябва.

Единствено успявам да пусна H264 мултиплекс, когато изпозлвам getstream за стрийминг сървър, но проблема е, че сървъра в крайна сметка трябва да е Windows и това е причината да се опитвам да го пусна с VLC.


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: tvkkk в Nov 23, 2010, 16:07
При мен всичко беше  наред на Убунту 10.04 като ползвам medibuntu хранилищата.


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: distlists в Nov 23, 2010, 18:30
Точно от medibuntu инсталирах всичко, след това опитвах и с компилиране на ffmpeg и libx264, но все този проблем. Освен това и под Windows положението е същото. Предполагам нещо са променили в стрийминга на 490 и 626 мултиплексите  :(


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: tvkkk в Nov 23, 2010, 19:44
А какъв mux задаваш на изхода? При mux=ts не би трябвало да имаш проблем.


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: distlists в Nov 23, 2010, 21:19
Точно mux=ts. Примерно това, за програма 5310:

cvlc  --sout-keep --color -vvv --programs=5310 dvb:// --dvb-frequency=626000000 --dvb-bandwidth=8 --sout '#duplicate{dst="std{mux=ts,access=http,dst=:2801}",select="program=5310"}'

С MPEG2 работи без проблем, но с H264 дава тази грешка.


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: tvkkk в Nov 25, 2010, 15:12
Ако е само една програма, задаваш --program=5310, а не --programs=5310. Друга идея нямам, освен нещо с модулите за dvb да има някакви грижи.


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: RealEnder в Nov 25, 2010, 18:34
Ще е интересно да споделите кой какъв хардуер точно използва, ако е от БГ от къде (няма да стане реклама) и т.н., защото доста народ "изгоря" с криви USB receiver-и - или няма подходящи драйвери, или под капака - аналог:)


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: distlists в Nov 30, 2010, 20:07
В крайна сметка се отказах да ползвам VLC за H.264 мултиплексите. Сега използвам DVPiper [1], която е доста малка програма и е идеална за това което ми трябва. Може да се каже, че е еквивалента на getstream, но за Windows  :). Ако някой има подобни проблеми с VLC, може да опита с нея.

[1] http://www.it.usyd.edu.au/~efax/DVPiper.html


@RealEnder
Аз използвам AVerTV Volar Black HD USB. Има драйвери за Линукс, но през няколко дена забива и трябва да се премести на различен USB порт за да тръгне отново. Понякога трябва и рестарт. Точно затова се опитвам да го пусна под Windows - с надеждата, че там драйверите ще са по-стабилни и няма да забива през няколко дни, но за момента още не мога да кажа дали работи стабилно или не.


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: tvkkk в Dec 01, 2010, 09:44
Ще е интересно да споделите кой какъв хардуер точно използва, ако е от БГ от къде (няма да стане реклама) и т.н., защото доста народ "изгоря" с криви USB receiver-и - или няма подходящи драйвери, или под капака - аналог:)
Основно PCI по-старички модели-
 KWorld DVB-T 220RF,  AVerMedia AverTV Hybrid FM PCI A16D  и за кабеларката  Technisat Cablestar II /първата серия без ХД в заглавието/.
УСБ-тата  AVerMedia AverTV Hybrid+FM Volar (A828), макар че в последно време ползвам ибейските евтини китайчета с аф9015 и тда18218. 


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Jan 08, 2011, 13:57
Темата има развитие:)

Ще обясня с няколко думи как се прави домашно IPTV ,
със същата USB флашка af9015 , но не на компютър, а на рутерче tp-link 1043 което струва около 100 лв :) и има процесор 400 Mhz, 8 MB Flash, 32 MB RAM, 5 Gigabit интерфейса, USB

(двойно повече флаш памет от популярния Linksys WRT54GL + USB + доста по-мощен процесор, което му позволява с лекота да върши всички тези неща)


Предимствата - не е нужно да работи компютър със всичките му вентилатори,
300-400 вата консумация и т.н за да се гледа и стриймва IPTV, а и всеки има някакво рутерче в къщи нали :)

TP-LINK 1043

Инсталираме си OpenWRT : аз избрах стабилната версия 10.03 на BackFire от http://downloads.openwrt.org/backfire/10.03/ar71xx/openwrt-ar71xx-tl-wr1043nd-v1-squashfs-factory.bin ($2)

процеса е лек и приятен, от web интерфеса с който идва tp-link, няма да се задълбочавам.

След като вече имате готов работещ OpenWRT трябва да му се инсталират няколко пакета:
направо ще дам списъка с моите, добре е да ги имате:

Цитат
root@OpenWrt:/# opkg list
base-files - 42-r20728
block-hotplug - 0.1.0-1
block-mount - 0.1.0-1
busybox - 1.15.3-2
crda - 1.1.0-2
ddns-scripts - 1.0.0-6
dnsmasq - 2.52-2
dropbear - 0.52-4
fdisk - 2.13.0.1-4
firewall - 1-10
hotplug2 - 1.0-beta-1
iptables - 1.4.6-2
iptables-mod-conntrack - 1.4.6-2
iptables-mod-nat - 1.4.6-2
iw - 0.9.19-1
kernel - 2.6.32.10-1
kmod-ath - 2.6.32.10+2010-03-24-5
kmod-ath9k - 2.6.32.10+2010-03-24-5
kmod-button-hotplug - 2.6.32.10-1
kmod-cfg80211 - 2.6.32.10+2010-03-24-5
kmod-crc-ccitt - 2.6.32.10-1
kmod-crypto-aes - 2.6.32.10-1
kmod-crypto-arc4 - 2.6.32.10-1
kmod-crypto-core - 2.6.32.10-1
kmod-dvb-core - 2.6.32.10-1
kmod-dvb-usb - 2.6.32.10-1
kmod-dvb-usb-af9015 - 2.6.32.10-1

kmod-fs-cifs - 2.6.32.10-1
kmod-fs-vfat - 2.6.32.10-1
kmod-i2c-core - 2.6.32.10-1
kmod-input-core - 2.6.32.10-1
kmod-input-gpio-buttons - 2.6.32.10-1
kmod-input-polldev - 2.6.32.10-1
kmod-ipt-conntrack - 2.6.32.10-1
kmod-ipt-core - 2.6.32.10-1
kmod-ipt-nat - 2.6.32.10-1
kmod-ipt-nathelper - 2.6.32.10-1
kmod-leds-gpio - 2.6.32.10-1
kmod-mac80211 - 2.6.32.10+2010-03-24-5
kmod-nls-base - 2.6.32.10-1
kmod-nls-cp1251 - 2.6.32.10-1
kmod-nls-cp437 - 2.6.32.10-1
kmod-nls-iso8859-1 - 2.6.32.10-1
kmod-ppp - 2.6.32.10-1
kmod-pppoe - 2.6.32.10-1
kmod-scsi-core - 2.6.32.10-1
kmod-tun - 2.6.32.10-1
kmod-usb-core - 2.6.32.10-1
kmod-usb-serial - 2.6.32.10-1
kmod-usb-serial-ftdi - 2.6.32.10-1
kmod-usb-storage - 2.6.32.10-1
kmod-usb2 - 2.6.32.10-1
kmod-video-core - 2.6.32.10-1
kmod-video-uvc - 2.6.32.10-1
ldd - 0.9.30.1-42
libc - 0.9.30.1-42
libcurl - 7.19.6-1
libevent - 1.4.13-2
libgcc - 4.3.3+cs-42
libiptc - 1.4.6-2
libjpeg - 6b-1
liblua - 5.1.4-6
liblzo - 2.03-3
libnl-tiny - 0.1-1
libopenssl - 0.9.8m-3
libpthread - 0.9.30.1-42
librt - 0.9.30.1-42
libuci - 12012009.5-1
libuci-lua - 12012009.5-1
libxtables - 1.4.6-2
lua - 5.1.4-6
luci - 0.9.0-1
luci-admin-core - 0.9.0-1
luci-admin-full - 0.9.0-1
luci-admin-mini - 0.9.0-1
luci-app-ddns - 0.9.0-1
luci-app-firewall - 0.9.0-1
luci-app-initmgr - 0.9.0-1
luci-app-openvpn - 0.9.0-1
luci-cbi - 0.9.0-1
luci-core - 0.9.0-1
luci-http - 0.9.0-1
luci-i18n-english - 0.9.0-1
luci-ipkg - 0.9.0-1
luci-lmo - 0.9.0-1
luci-nixio - 0.9.0-1
luci-sgi-cgi - 0.9.0-1
luci-sys - 0.9.0-1
luci-theme-base - 0.9.0-1
luci-theme-openwrt - 0.9.0-1
luci-uci - 0.9.0-1
luci-uvl - 0.9.0-1
luci-web - 0.9.0-1
mjpg-streamer - r84-2
mtd - 12
mumudvb - 1.6.1-openwrt-1
openvpn - 2.1.1-1
opkg - 513-2
ppp - 2.4.4-5
ppp-mod-pppoe - 2.4.4-5
swconfig - 5
transmission-daemon - 1.92-1
transmission-web - 1.92-1
uci - 12012009.5-1
udevtrigger - 106-1
uhttpd - 7
wireless-tools - 29-4
wpad-mini - 20100309-1
zlib - 1.2.3-5


Както забелязвате, има пакети за openvpn, mumudvb, uvcvideo, USB, торент клиент

пакетите в червено няма да намерите във официалото хранилище на пакети, и ще трябва да се компилират.

за целта трябва да си приготвите мощен линукс (за предпочитане Debian базиран, аз ползвах Ubuntu server), okolo 3 GB свободно пространство, и няколко часа свободно време.

причината за толкова многото часове и дисково пространство е, че трябва да изгтеглите и компилирате цялото линукс обкръжение за MIPS платформа (gcc, linux kernel, и т.н)

Започваме:
cd /usr/src
mkdir openwrt
cd openwrt

основната част от работата е описана тук: http://wiki.openwrt.org/doc/howto/build ($2)

apt-get install build-essential asciidoc autoconf binutils bison bzip2 \
  flex gawk gettext libncurses5-dev libz-dev patch unzip zlib1g-dev


apt-get install subversion

сега важната част - изтегляме обкръжението:

Инструкциите по-долу са валидни САМО за BackFire 10.03 с кернел 2.6.32.10 !!!
svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03

Дотук сме готови да си компилираме наша версия на стандартните пакети.
сега следва не-стандартната част:

ползвам информацията от сайта на MUMUDVB: http://mumudvb.braice.net/mumudrupal/node/36 ($2)

теглим файла dvb.mk от http://gitweb.braice.net/gitweb?p=mumudvb;a=blob_plain;f=openwrt/package/kernel/modules/dvb.mk;hb=HEAD ($2)

поставяме го в директория: /usr/src/openwrt/backfire_10.03/package/kernel/modules/

теглим Makefile за Mumudvb от тук: http://gitweb.braice.net/gitweb?p=mumudvb;a=blob_plain;f=openwrt/packages/mumudvb/Makefile ($2)
 
поставяме го в /usr/src/openwrt/backfire_10.03/package/mumudvb/

Дотук сме готови, можем да компилираме.
Прави се от директория /usr/src/openwrt/backfire_10.03 като обикновен потребител:

make menuconfig
избираме профил за TPLINK 1043:
 Target System (Atheros AR71xx/AR7240/AR913x) 
     Target Profile (TP-LINK TL-WR1043ND v1) 


след това отиваме надолу, в Utilities, и избираме mumudvb,
връщаме се назад, и избираме
Kernel modules,
  DVB Support,
     af9015



exit, exit, exit... save..

като излезем обратно в конзолата на линукс, пишем:

make V=2

отиваме да пием кафе, да обядваме... 2-3 часа.
Ако всичко е нормално, трябва да започне едно дълго теглене и компилиране.

Когато всичко свърши, си имаме готови пакети за инсталиране, които можем да инсталираме направо през web интерфейса на OpenWRT - luci - software.

Дотук - всичко е по стандартната схема, нищо не сме пачвали, имаме компилирани dvb-core модули и програмата mumudvb чрез кяото ще стриймваме.

Трудната част е за конкретния  USB приемник за който се говори още в 1-вия пост на темата.

Необходимо е пачване, подобно на описаното в 1-ви пост.
Подробности ще дам при следваща възможност, но ако стигнете до тук, сте на финалната права :) около 95% от цялата работа.

(остатъка който следва ми отне 3 пълни дни, но на вас ще ви е лесно :) )

Ако не ви се компилира - качих пакетите в интернет: https://docs.google.com/leaf?id=0B8oQFOm_9mQ3OGVlYzIzOTYtZDZkYi00YjNhLTllOGMtMjc4NTNlODQ2ZjRm&hl=en ($2)







Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: kip в Jan 10, 2011, 11:39
ltrifonov прекрасно howto.На моя "мощен" Debian компирацията отне 40 минути.Опитах да пачна кернела с пача от поста ти ($2), но видях, че трябва малко да се преработи спрямо кернел 2.6.32.10. Довечера ще си поиграя малко с пача и ще компилирам наново.Чакам с интерес продължението на темата ти :)


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Jan 10, 2011, 13:10
ltrifonov прекрасно howto.На моя "мощен" Debian компирацията отне 40 минути.Опитах да пачна кернела с пача от поста ти ($2), но видях, че трябва малко да се преработи спрямо кернел 2.6.32.10. Довечера ще си поиграя малко с пача и ще компилирам наново.Чакам с интерес продължението на темата ти :)

Здрасти, ами май е време да пусна продължението :)

При пачването има няколко особености, ще кажа как го направих при мен:

1. изтеглих си сорсовете на dvb както в 1-ви пост:
cd /usr/src
mkdir af9015
cd af9015
hg clone -r 0f41fd7df85d http://linuxtv.org/hg/~anttip/af9015/

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

това беше точно както от 1-ви пост.
След като приложим пача, има малко ръчна работа:

Пача всъщност създава 3 файла за драйвера TDA18218 във linux/driver/media/common/tuners
и добавя разни препратки към този драйвер в още няколко файла.

обшо се модифицират 7-8  файла.
целта е да открием модифицираните файлове и да ги копираме върху сорса на кернела във toolchain-а за openwrt
при мен пътищата са:

вземаме пачнатите файлове от: /usr/src/af9015/linux/

и местим във: /usr/src/openwrt/backfire_10.03/build_dir/linux-ar71xx/linux-2.6.32.10/




това са:
в drivers/media/common/tuners
Kconfig
Makefile
tda18218.c
tda18218.h
tda18218_priv.h

в drivers/media/dvb/dvb-usb
af9015.c
dvb-usb-ids.h

и в drivers/media/dvb/frontends
af9013.c
af9013.h
af9013_priv.h

Има една особеност - в повечето от тези файлове има ред:
#include "compat.h"

или трябва да махнем този ред, защото във toolcain за openwrt няма такъв,
или във всяка от горните директории да си направим по един празвн compat.h

Последна модификация:
отваряме
  media/dvb/dvb-usb/Kconfig

и добавяме реда от по-долу в червено:
Цитат
config DVB_USB_AF9015
        tristate "Afatech AF9015 DVB-T USB2.0 support"
        depends on DVB_USB
        select DVB_AF9013
        select DVB_PLL              if !DVB_FE_CUSTOMISE
        select MEDIA_TUNER_MT2060   if !MEDIA_TUNER_CUSTOMISE
        select MEDIA_TUNER_QT1010   if !MEDIA_TUNER_CUSTOMISE
        select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMISE
       select MEDIA_TUNER_TDA18218 if !MEDIA_TUNER_CUSTOMISE
        select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMISE
        select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
        help

Това е всичко - пускаме си пак:
make V=2

и след доста по-кратко от преди време ще получим:
/usr/src/openwrt/backfire_10.03/bin/ar71xx/packages
със готови компилирани модули за инсталиране *.ipkg

ако направим тази директория достъпна през web, може да кажем на opkg.conf
да изтегли packages направо от там.

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

/etc/modules.d/91-dvb:
Цитат
dvb-core
dvb-usb force_pid_filter_usage=1
dvb-pll
mxl5005s
tda18271
qt1010
mt2060
af9013
mc44s803
tda18218
dvb-usb-af9015

за зареждане на модулите в този ред след рестарт

може и ръчно с insmod в този ред
ако всичко е ок, в dmesg виждаме:
Цитат
dvb-usb: found a 'Afatech AF9015 DVB-T USB2.0 stick' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
dvb-usb: pid filter enabled by module option.
DVB: registering new adapter (Afatech AF9015 DVB-T USB2.0 stick)
af9013: firmware version:4.65.0
DVB: registering adapter 0 frontend 0 (Afatech AF9013 DVB-T)...
NXP TDA18218 successfully identified.
dvb-usb: Afatech AF9015 DVB-T USB2.0 stick successfully initialized and connected.
usbcore: registered new interface driver dvb_usb_af9015


пропуснах да кажа, но трябва да поставим изтегления фирмуер на съответното място:
/lib/firmware/dvb-usb-af9015.fw

след това се прави точно както е описано в сайта на mumudvb за openwrt:

Цитат
mkdir /dev/dvb
mkdir /dev/dvb/adapter0
ln -s /dev/dvb0.demux0 /dev/dvb/adapter0/demux0
ln -s /dev/dvb0.dvr0 /dev/dvb/adapter0/dvr0
ln -s /dev/dvb0.frontend0 /dev/dvb/adapter0/frontend0

Конфигурацията на самото mumudvb при мен е: (за софия)
направих си 3 скрипта в /etc/init.d
направих си и 3 конфигурации за всеки от 3-те транспондера в софия
давам пример с 1-вия скрипт за 818 Mhz

останалите скриптове се различават само по иметно на конф. файла в зелено по-долу:
/etc/init.d/dvbtv818:
Цитат
#!/bin/sh /etc/rc.common
# Example script
# Copyright (C) 2007 OpenWrt.org

START=92
STOP=15


PIDS=`pidof mumudvb`


# This method starts mumudvb

start_cam ()
{
 kill -9  $PIDS
 mkdir /dev/dvb
 mkdir /dev/dvb/adapter0
 ln -s /dev/dvb0.demux0 /dev/dvb/adapter0/demux0
 ln -s /dev/dvb0.dvr0 /dev/dvb/adapter0/dvr0
 ln -s /dev/dvb0.frontend0 /dev/dvb/adapter0/frontend0
 mkdir /var/run/mumudvb
 sleep 1
 mumudvb  -c /etc/mumdvb/mumdvb818.conf &
sleep 1
}
# This method stops mumudvb
stop_cam ()
{
kill -9  $PIDS
sleep 1
}




start() {

start_cam


}

stop() {
#echo "[SCRIPT] $1: $CAMNAME"
stop_cam

}


ето и самите конфигурации:
/etc/mumdvb/mumdvb818.conf:
Цитат
freq=818
dont_send_sdt=1
multicast=0
unicast=1
port_http=1234
ip_http=0.0.0.0
sap=1
autoconfiguration=0

channel_next
name=bnt1
pids=266 256 257

channel_next
name=nova
pids=38 36 37

channel_next
name=btv
pids=282 272 273

channel_next
name=tv7
pids=314 304 305

channel_next
name=thevoice
pids=330 320 321


на останалите транспондери доколкото гледах, се излъчва едно и също на всичките 2 х 8 канала (но се надявам да ги напълнят)
прилагам и техните конфигурации, но при тях съм настроил само по един канал

 /etc/mumdvb/mumdvb490.conf
Цитат
freq=490
dont_send_sdt=1
multicast=0
unicast=1
port_http=1234
ip_http=0.0.0.0
sap=1
autoconfiguration=0

channel_next
name=490-1
pids=5131 5132 5133



 /etc/mumdvb/mumdvb626.conf
Цитат
freq=626
dont_send_sdt=1
multicast=0
unicast=1
port_http=1234
ip_http=0.0.0.0
sap=1
autoconfiguration=0

channel_next
name=ch_09
pids=5331 5332 5333



Сега вече можем да управляваме цялата система през web интерфейса на openwrt
Administration, Services, Initscripts

там имам: dvbtv818 -> и бутони: start, stop, restart
имам и за другите 2 транспондера

Аз лично предпочитам скриптовете да са в disabled режим и да се пускат при нужда.

как става самото гледане:
конфигурацията както съм показал прави http unicast stream на адрес 0.0.0.0:1234
гледа се с VLC на:

 http://192.168.1.1:1234/playlist.m3u

 от WWW Browser може да се види html информация за излъчваните потоци:
  http://192.168.1.1:1234/channels_list.html


Това е засега от мен, надявам се да съм бил полезен :)









Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: kip в Jan 11, 2011, 23:04
ltrifonov скалъпих следния скрипт :
Код
GeSHi (Bash):
  1. #!/bin/bash
  2. hg clone -r 0f41fd7df85d http://linuxtv.org/hg/~anttip/af9015/
  3. wget https://patchwork.kernel.org/patch/82494/raw/ -O af901x-NXP-TDA18218.patch
  4. cd af9015
  5. patch -p1 < ../af901x-NXP-TDA18218.patch
  6. rm -f ../af901x-NXP-TDA18218.patch
  7. cd ..
  8. mkdir tmp
  9. cp af9015/linux/drivers/media/common/tuners/{Kconfig,Makefile,tda18218.c,tda18218.h,tda18218_priv.h} tmp/
  10. find tmp/ -type f -exec sed -i 's/#include "compat.h"//g' {} \;
  11. mv tmp/* backfire_10.03/build_dir/linux-ar71xx/linux-2.6.32.10/drivers/media/common/tuners/
  12. cp af9015/linux/drivers/media/dvb/dvb-usb/{af9015.c,dvb-usb-ids.h} tmp/
  13. find tmp/ -type f -exec sed -i 's/#include "compat.h"//g' {} \;
  14. mv tmp/*  backfire_10.03/build_dir/linux-ar71xx/linux-2.6.32.10/drivers/media/dvb/dvb-usb/
  15. cp af9015/linux/drivers/media/dvb/frontends/{af9013.c,af9013.h,af9013_priv.h} tmp/
  16. find tmp/ -type f -exec sed -i 's/#include "compat.h"//g' {} \;
  17. mv tmp/* backfire_10.03/build_dir/linux-ar71xx/linux-2.6.32.10/drivers/media/dvb/frontends/
  18. sed -i -e 307i'select MEDIA_TUNER_TDA18218 if !MEDIA_TUNER_CUSTOMISE' backfire_10.03/build_dir/linux-ar71xx/linux-2.6.32.10/drivers/media/dvb/dvb-usb/Kconfig
  19. sed -i -e 's/select MEDIA_TUNER_TDA18218 if !MEDIA_TUNER_CUSTOMISE/\tselect MEDIA_TUNER_TDA18218 if !MEDIA_TUNER_CUSTOMISE/' backfire_10.03/build_dir/linux-ar71xx/linux-2.6.32.10/drivers/media/dvb/dvb-usb/Kconfig
  20. rm -rf af9015; rm -rf tmp
  21.  
, който да автоматизира малко стъпките, които си дал. Компилацията минава, но в backfire_10.03/bin/ar71xx/packages/ липсват :
kmod-dvb-core_2.6.32.10-1_ar71xx.ipk
kmod-dvb-usb-af9015_2.6.32.10-1_ar71xx.ipk
kmod-dvb-usb_2.6.32.10-1_ar71xx.ipk

, a :
kmod-i2c-core_2.6.32.10-1_ar71xx.ipk
mumudvb_1.6.1-openwrt-1_ar71xx.ipk

са налични ...

Рутера не ми е под ръка в момента, така, че утре ще пробвам с пакетите ($2), които си публикувал.


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Jan 13, 2011, 10:34

@kip


Това със скрипта ще е доста полезно, може да го пуснеш и във форумите на openwrt.
Аз забелязах един пропуск понеже си рефлашнах рутера и правих повечето стъпки отначало.
един от модулите за кернела, който е необходим на dvb-usb-af9015.ko, не присъства в ipk пакета
това е файла: mc44s803.ko

Понеже правих поне към 20-30 прекомпилирания докато всичко ми се напасне, и в началото си местих самите  *.ko файлове на ръка във /lib/modules/ на рутера, та не съм забелязал липсата му.

По начина както съм описал, този файл ще липсва. Аз сега ще го добавя към готовите файлове, но ще остане за ръчно копиране. Файлът mc44s803.ko трябва да се копира във /lib/modules/2.6.32.10/ където са и останалите.

Ако някой успее да навлезе навътре във toolchain системата, вероятно ще разбере какво и в кой скрипт трябва да се пипне, за да се включи и този модул към готовите ipk



За липсващите ipk модули - нали правим така:
теглим си dvb.mk от сайта който е посочен по-преди,
там има версии на dvb.mk за доста версии на кернела.
Аз си изтеглих  за 2.6.32.
този dvb.mk определя менюто dvb във make menuconfig, и в него са зависимостите:

make menuconfig:
...................................
 избираме
Kernel modules,
  DVB Support,
     af9015

при избирането на af9015[M], при мен авточматично се поставя [M] и на най-горните модули
dvb-core и dvb-usb

след това при компилацията си се се получават ?! Поне при мен беше така, няколко пъти съм трил и започвал от начало, проблема ми беше единствено, че не се компилираше tda18218.c

Качил съм липсвашия модул тук:
https://docs.google.com/leaf?id=0B8oQFOm_9mQ3MDkyZmU4ZmQtOWVjZi00MGFiLTkyN2ItMTM5YmFkM2IxY2M5&hl=en ($2)




Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Jan 14, 2011, 14:48
Открих последната липсваща част!

отново се извинявам, но толкова много пъти преправях и започвах отначало, че това съм го пропуснал.

значи, в  dvb.mk модула трябва да се направят 2 промени преди компилацията:

Цитат
define KernelPackage/dvb-usb-af9015
  SUBMENU:=$(DVB_MENU)
  TITLE:=Afatech AF9015 DVB-T USB2.0 support
  KCONFIG:= \
        CONFIG_DVB_USB_AF9015 \
        CONFIG_DVB_AF9013 \
        CONFIG_DVB_PLL \
        CONFIG_MEDIA_TUNER_MT2060 \
        CONFIG_MEDIA_TUNER_QT1010 \
        CONFIG_MEDIA_TUNER_TDA18271 \
        CONFIG_MEDIA_TUNER_TDA18218 \
        CONFIG_MEDIA_TUNER_MXL5005S
  DEPENDS:=@USB_SUPPORT +kmod-dvb-core +kmod-dvb-usb +kmod-usb-core +kmod-i2c-core
  FILES:= \
        $(LINUX_DIR)/drivers/media/dvb/frontends/dvb-pll.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/dvb-usb/dvb-usb-af9015.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/af9013.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/mt2060.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/qt1010.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/mc44s803.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/tda18271.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/tda18218.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/common/tuners/mxl5005s.$(LINUX_KMOD_SUFFIX)
endef


dvb.mk се тегли от: http://gitweb.braice.net/gitweb?p=mumudvb;a=blob_plain;f=openwrt/package/kernel/modules/dvb.mk;hb=HEAD

в него се променят горните редове в червено.

актуализирал съм моите пакети, вече се съдържат всички необходими модули!
може да ги изтеглите от тук: https://docs.google.com/leaf?id=0B8oQFOm_9mQ3OGVlYzIzOTYtZDZkYi00YjNhLTllOGMtMjc4NTNlODQ2ZjRm&hl=en



Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: kip в Jan 15, 2011, 20:09
ltrifonov ето до къде стигнах и аз с рутера под ръка:
1. Направих си този ($2) скрипт за билдване. Процеса на компилация минава успешно, но ето какво виждам в лога
Код:
WARNING: kmod-dvb-usb-af9015 is not available in the kernel config
което обяснява липсата на пакети.Все пак успях да подкарам стииминга на рутера, като използвах твоите пакети и билднатия от мен firmware.При пускането на mumudvb (както на firmware от OpenWRT ($2), така и на билднатия от мен) на рутерчето ревеше, че липсва /lib/libpthread.so.0.След като, го качих, с моя билд на firmware-а и твоите пакети стриима тръгна.Днес пак  не ми остана време да проверя какво се дъни та да не се компилират  kmod-dvb-* пакетите.Ще трябва да си поиграя още с билдването на firmware, защото видях, че на моя firmware липсва luci.


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Jan 15, 2011, 20:16
ltrifonov ето до къде стигнах и аз с рутера под ръка:
1. Направих си този ($2) скрипт за билдване. Процеса на компилация минава успешно, но ето какво виждам в лога
Код:
WARNING: kmod-dvb-usb-af9015 is not available in the kernel config
което обяснява липсата на пакети.Все пак успях да подкарам стииминга на рутера, като използвах твоите пакети и билднатия от мен firmware.При пускането на mumudvb (както на firmware от OpenWRT ($2), така и на билднатия от мен) на рутерчето ревеше, че липсва /lib/libpthread.so.0.След като, го качих, с моя билд на firmware-а и твоите пакети стриима тръгна.Днес пак  не ми остана време да проверя какво се дъни та да не се компилират  kmod-dvb-* пакетите.Ще трябва да си поиграя още с билдването на firmware, защото видях, че на моя firmware липсва luci.

@kip
аз започнах да си билдвам 10.03.1-rc4 защото в 10.03 така и не успях да направя extroot...

та докато правих гореописаната от мен процедура наново, забелязах още няколко пропуска:

1. Ако не се селектира video support - изобщо не се билдва video for linux частта от кернела - трябва да се селектира при make menuconfig.

2. libpthread - пропуснал съм да кажа, но то е в изискванията за mumudvb - може да се инсталира от готовите пакети

може и да има още пропуски - сега като билдна (ако успея) ще допълня :)



Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: kip в Jan 15, 2011, 20:23
И аз ще си играя още да си билдна читав firmware с luci. После може да скалъпим един цялостен скрипт, който генерира всичко от край докрай.  :)


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Jan 15, 2011, 20:42
И аз ще си играя още да си билдна читав firmware с luci. После може да скалъпим един цялостен скрипт, който генерира всичко от край докрай.  :)

за luci - трябва да дръпнеш сорса, и Makefile - както се прави за mumudvb

обаче няма голям смисъл - при 1-вото влизане след флашване - ssh не пуска защото няма парола на root, но се оказа че телнета си работи и влизаш направо в root shell

та: след 1-во флашване - telnet 192.168.1.1
passwd xxxxxxx

след това настройваш на ръка wan Интерфейса (той си тръгва на dhcp по подразбиране)

след това пишеш
opkg update
opkg install luci
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start

и си готов - работещо luci

ПП: нищо друго не е необходимо за пълната компилация, само горните уточнения



Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: kip в Jan 16, 2011, 10:08
ltrifonov успях да билдна читав firmware  с luci с ssl :

Код:
cd backfire
./scripts/feeds update packages luci
./scripts/feeds install -a -p luci
make menuconfig
make world

Ти докъде стигна с билдването на 10.03.1-rc4?


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Jan 16, 2011, 12:21
@kip

Получи се, точно както го бях описал.
Всъщност има няколко неща за доизчистване, по алгоритъма:

1. теглим си от svn целия toolchain за билдване
2. make menuconfig - селектираме си video support, dvb-usb-af9015
3. make V=2 (zза да изтегли, компилира всички инструменти, кернел и т.н)
4. пачваме - в тази точка, освен че пачваме кернела който е вече изтеглен, трябва да изтрием разните вече компилирани неща във media/dvb и media/common за да предизвикаме нова компилация. Аз тази сутрин няколко пъти пускам make, получавам пакети, инсталирам и кернела се държи като непачнат: tuner id: 179 not supported. Като минах и изтрих ръчно компилираните боклуци, след това си се компилира нормално.

А цялата идея да постна процедурата, а и ти да напишеш скрипт е, да може да се прилага при следващи версии на кернела :) иначе теглиш готовите пакети  и то си работи


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Mar 01, 2011, 12:36
луд умора няма... да продължа темата!  ;D
намерих в амазон смешно евтин USB DVB-S приемник - 6 лири...
TechnoTrend Connect S-1200 USB 1.1, DVB-S
http://www.amazon.co.uk/gp/product/B002KQ9RPG/ref=oss_product ($2)

този приемник е доста стар модел, по протокол 1.1 което значи, че ще се затруднява при стрийм на цял транспондер, но със активиран PID Filtering би трябвало да няма проблеми за 1-2 канала едновременно.


естествено веднага го поръчах и компилирах модул за него за OpenWRT.
Драйвера е известен на линукс кернела като ttusb-budget, съществува си стандартно.

За компилацията е нужно да се добави във dvb.mk (от предишните постове) следното:

Цитат

define KernelPackage/dvb-ttusb-budget
  SUBMENU:=$(DVB_MENU)
  TITLE:=Technotrend/Hauppauge Nova-USB devices
  KCONFIG:= CONFIG_DVB_TTUSB_BUDGET \
        CONFIG_DVB_CX22700 \
        CONFIG_DVB_TDA1004X \
        CONFIG_DVB_VES1820 \
        CONFIG_DVB_TDA8083 \
        CONFIG_DVB_STV0299 \
        CONFIG_DVB_STV0297 \
        CONFIG_DVB_LNBP21
  DEPENDS:=+kmod-dvb-core
  FILES:= $(LINUX_DIR)/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/cx22700.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/tda1004x.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/ves1820.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/tda8083.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/stv0299.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/stv0297.$(LINUX_KMOD_SUFFIX) \
        $(LINUX_DIR)/drivers/media/dvb/frontends/lnbp21.$(LINUX_KMOD_SUFFIX)
endef

define KernelPackage/dvb-ttusb-budget/description
 Say Y here to support the Technotrend/Hauppauge Nova-USB devices.
The following modules will be compiled for this device :  dvb-ttusb-budget cx22700 tda1004x ves1820 tda8083 stv0299 stv0297 lnbp21

endef



$(eval $(call KernelPackage,dvb-ttusb-budget))


Преди да пристигне няма как да знам дали работи :) но чакам.
Ако стане, openwrt рутерчето TP-LINK 1043 ще удари в земята и дримбоксове и всякакви там боклуци :)

компилираният пакет за backfire 10.03.1-rc4 се намира на:
kmod-dvb-ttusb-budget_2.6.32.25-1_ar71xx.ipk ($2)

компилирах и версия за backfire 10.03:
kmod-dvb-ttusb-budget_2.6.32.10-1_ar71xx.ipk ($2)


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Aug 12, 2011, 15:36
Продължавам с работата по OpenWRT, сега ще ви покажа как да си направите IPTV headend домашна станция върху рутерчето (TP-LINK 1043).
Предпоставките са: да имате работещ USB DVB адаптер - вижте по-горе за af9015.
Аз имам 2 адаптера едновременно - DVB-T af9015 и DVB-S lmedm04 (QQBOX)


1. TVHEADEND - успях с малки компромиси да компилирам работеща версия за OpenWRT - https://docs.google.com/leaf?id=0B8oQFOm_9mQ3NTI5YjVjNjctYjBmOC00MzU3LTg1NTYtZjZjZWQ1OGRjYmNh&hl=en_US ($2)
Вътре в този ipk пакет има един изпълним файл - "tvheadend".
Поставил съм  го в / (ако го сложите на друго място - просто променете реда в скрипта по-долу)

стартиращ скрипт: /etc/init.d/tvheadend
Код:
#!/bin/sh /etc/rc.common
# Example script
# Copyright (C) 2007 OpenWrt.org

START=92
STOP=15





# This method starts tvheadend

start_cam ()
{
 /usr/sbin/killall -9  tvheadend
 mkdir /dev/dvb
 mkdir /dev/dvb/adapter0
 ln -s /dev/dvb0.demux0 /dev/dvb/adapter0/demux0
 ln -s /dev/dvb0.dvr0 /dev/dvb/adapter0/dvr0
 ln -s /dev/dvb0.frontend0 /dev/dvb/adapter0/frontend0
 
 sleep 1
 /tvheadend  -f -u tv -g root  -s
 sleep 1
}
# This method stops tvheadend


 

start() {

start_cam
       

}

stop() {

sleep 1
/usr/bin/killall -9 tvheadend

}



как се използва:
Първоначално трябва да се направи един потребител на OS,
от чието име да се стартира процеса tvheadend.

аз го правя, чрез ръчно добавяне на ред в /etc/passwd:
 
Код:
tv:*:111:0:TV:/etc/tv:/bin/false

След това трябва да направите 1-во стартиране така:
Код:
/tvheadend -C

по този начин ще се стартира процеса, ще започне да изписва в конзолата какви адаптери е намерил и т.н и ще осигури пълен достъп без парола до web interface.

влизаме от WEB Browser на http://ip.na.openwrt:9981
желателно е веднага да отидем в configuration, access control и да си добавим например достъп само от вътре.

След това, отиваме на configuration, tv adapters и избираме от падащото меню DVB адаптера. Отиваме на multiplexes, add manual, въвеждаме ръчно параметрите на приемане (за София - 3 мултиплекса, с параметри : Freq: 818000; bandwidth 8, всичко останало на "auto". Натискаме Add, след което само променяме Freq на 626000, натискаме Add, след това променяме на 490000 и пак add)

Съхраняваме промените (Save changes).

Сега тънък момент:
конфигурацията се е генерирала във /root/.hts/....
спраме процеса от друга конзола със:
Код:
 killall -9 tvheadend 

местим конфигурацията:
Код:
mkdir /etc/tv
cp -r /root/.hts /etc/tv/
chown -R tv:nogroup /etc/tv

и накрая стартираме окончателно:
Код:
/etc/init.d/tvheadend start

по този начин процеса tvehadend се стартира от името на потребител tv

Ако всичко е нормално, отиваме на web интерфейса,
configuration, tv adapters, services и трябва да открием доста канали.
При мен се наложи ръчно да им задам channel name.

От тук нататък - щом канала си има име - той е готов за streaming.
Можем да гледаме от Configuration, Channels - play;
или от бутончето watch TV когато сме извън Configuration.

Така направена системата, на моя TP-LINK 1043 работи със натоварване около 20-30 % CPU докато гледам канал (повече е от варианта с mumudvb, но имам странното чувство, че каналите се възпрозивеждат по-добре, а и има една интересна подробност - за DVB-S има възможност за изпозване на OSCAM чрез newcamd протокол, или чрез dvbapi capmt_so.

това е само лирично отклонение, но ефекта е такъв (с oscam работещ на същия рутер):
Цитат
2011/08/12 14:12:18 5CDB10 c dvbapi: new program number: 03F8 (Discovery Channel Bulgaria)
2011/08/12 14:12:18 5CDB10 c dvbapi: new program number: 03F8 (0000:03F8 unknown)
2011/08/12 14:12:18 5CDB10 c dvbapi: [ADD PID 0] CAID: 5581 ECM_PID: 0D51 PROVID: 000000
2011/08/12 14:12:18 5CDB10 c dvbapi: [ADD PID 1] CAID: 5501 ECM_PID: 0C89 PROVID: 000000
2011/08/12 14:12:18 5CDB10 c dvbapi: [ADD PID 2] CAID: 0604 ECM_PID: 0CED PROVID: 000000
2011/08/12 14:12:18 5CDB10 c dvbapi: new program number: 03F8 (Discovery Channel Bulgaria)
2011/08/12 14:12:19 5CDB10 c localuser (5581&000000/03F8/4F:B998): rejected group (1 ms) (of 0 avail 0) (no matching reader)
2011/08/12 14:12:19 5CDB10 c localuser (5501&000000/03F8/3E:DCBA): rejected group (1 ms) (of 0 avail 0) (no matching reader)
2011/08/12 14:12:19 5CDB10 c dvbapi: Found 2 IRDETO ECM CHIDs
2011/08/12 14:12:19 5CDB10 c dvbapi: Start descrambling PID #2 (CAID: 0604) 1
2011/08/12 14:12:19 5CDB10 c localuser (0604&000000/03F8/34:1C36): cache1 (0 ms) by fausto (of 1 avail 1)
2011/08/12 14:12:23 5CDB10 c dvbapi: [ADD PID 0] CAID: 5581 ECM_PID: 0D51 PROVID: 000000
2011/08/12 14:12:23 5CDB10 c dvbapi: [ADD PID 1] CAID: 5501 ECM_PID: 0C89 PROVID: 000000
2011/08/12 14:12:23 5CDB10 c dvbapi: [ADD PID 2] CAID: 0604 ECM_PID: 0CED PROVID: 000000


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: tvkkk в Aug 15, 2011, 09:35
Благодаря ltrifonov!
Доста интересен проект. Малко се дъни при мен на Ubuntu 11.04, но в общи линии е супер.
Между другото попаднах на друг интересен проект - getsream.a84, който се явява модификация с добавена поддръжка на декодиране на канали по системите BISS, Viaccess, Irdeto2, DRE, Conax, CryptoWorks, поддържа протокола newcamd /oscam,newcs/ и други. В момента работата по него е преустановена, като се подготвя подмяната му с проекта Astra. Повече информация
https://cesbo.com/projects/iptv/wiki/Homepage_ru


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: ltrifonov в Aug 15, 2011, 10:43
мерси, ще разгледам и това ;)
аз всъщност от доста време се опитвам да измисля начин как или да стриймвам кодирани канали от рутера, които да декодирам при клиента, или да декодирам още върху рутера и да стриймвам.

За нормален (i686) линукс не е  трудно да се направи разкодирането, но мен ме гложди идеята да подкарам всичко това върху рутерчето, то така и така е включено денонощно, процесора му (400 Mhz MIPS) е съизмерим с този на dreambox, но имам проблеми с подкарването на FFDesca (Software descrambler) за този процесор.


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: kennedy в Aug 16, 2011, 09:09
vlc-то може ли да ползва CUDA за прекодирането при сриймване?


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: rotation в Nov 29, 2011, 00:42
Здравейте!
Незнам дали е тук правилното място.
С opensuse 11.2 съм, а vlc медиа плейър-а иска да му се укаже път за Adapter card to tune. Неможе да се промени /dev/dvb/adapter0? По какъв начин мога да си гледам някой DVB-T мултиплекс. Какво трябва да запиша в /dev/dvb/? adapter0 папка или файл е? Бихте ли постнали тук примерно adapter0 за 818 МHz и как се прави?
Използвам DVB-T USB с чип chip AF9015 и тунер TDA18218.
Надявам се да отговорите!


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: tvkkk в Nov 29, 2011, 09:26
Би трябвало директорията и поддиректориите в /dev/dvb/ да се създадат автоматично при разпознаването на dvb картата и ако се налага да зареди съответния firmware. Ако всичко е успешно трябва да се видят следните поддиректории - demux0  dvr0  frontend0  net0 в /dev/dvb/adapter0 (или съответния номер за всеки следващ).  Твоята комбинация от чипсет на тунера се поддържа в по-новте ядра 2.6.37.x нагоре. За останалите врсии е необходимо да се приложи пач към ядрото. Ако не се лъжа Opensuse 11.2 е с ядро 2.6.31.x В първия пост по темата е даден пример за това. За Опенсусе не мога да кажа да дали и как ще сработи пача към ядрото.
Може да следиш дали се зарежда модула на адаптера под конзола с
Цитат
dmesg |grep "registering adapter "
Ето какво показва на моята машина
Цитат
[   15.287329] DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT  frontend)...
[   15.553980] DVB: registering adapter 2 frontend 0 (Afatech AF9013 DVB-T)...
[   15.906044] DVB: registering adapter 1 frontend 0 (ST STV0297 DVB-C)...
[   29.536098] DVB: registering adapter 3 frontend 0 (Philips TDA10046H DVB-T)..                                                                             .
[   32.168063] DVB: registering adapter 4 frontend 0 (Zarlink MT352 DVB-T)...
А са самото vlc адаптера се указва с  --dvb-adapter=x


Титла: Re: КАК да си направим IPTV за гледане на Софийските цифрови ефирни програми в LAN
Публикувано от: Sairos в Apr 08, 2013, 10:29
Колеги само при мен ли се случва при рязка смяна на кадъра да става всичко в квадратчета  ?