Systém pro °ízení sb¥ru a záznamu videosignálu ²í

Transkript

Systém pro °ízení sb¥ru a záznamu videosignálu ²í
ƒeské vysoké u£ení technické v Praze
Fakulta elektrotechnická
ČVUT FEL katedra počı́tačů
Diplomová práce
Systém pro °ízení sb¥ru a záznamu videosignálu ²í°eného
po Internetu DVBgrab
Martin Jansa
Vedoucí práce:
Ing. Ivan Hala²ka
Studijní program: Informatika a výpo£etní technika
leden 2007
ii
Pod¥kování
D¥kuji tv·rc·m p·vodního projektu TVgrab a obecn¥ v²em vývojá°·m svobodného software,
díky kterým tento projekt mohl v·bec vzniknout.
Dále d¥kuji Katarín¥ Hanuliakové za pomoc s grackou úpravou aplikace a slovenský p°eklad,
Zuzan¥ Moravcové za p°eklad do francouz²tiny a Iv¥ Höerové za jazykovou korekturu tohoto
textu.
iii
iv
Prohlá²ení
Prohla²uji, ºe jsem svou diplomovou práci vypracoval samostatn¥ a pouºil jsem pouze podklady
uvedené v p°iloºeném seznamu.
Nemám závaºný d·vod proti uºití tohoto ²kolního díla ve smyslu Ÿ60 Zákona £. 121/2000 Sb.,
o právu autorském, o právech souvisejících s právem autorským a o zm¥n¥ n¥kterých zákon·
(autorský zákon).
V Praze 6 dne 7. 1. 2007
.............................................................
v
vi
Abstract
The system is intended for easy recording of television shows. Data are taken from local network
stream (ie. DVB-T from VideoLanServer). User has to register on the web interface and after
login he can see television schedule for next week. Every program is shown as hypertext link and
after the conrmation the request for program is saved in a database. There is a neverending loop
on the server backend which is searching requests in a database and if any requested program
starts, it runs dumping packets from data stream to disk. After nishing it sends an e-mail with
hypertext link to requesting users.
Abstrakt
Systém byl vytvo°en za ú£elem usnadn¥ní záznamu televizních po°ad·, které jsou vysílány
po lokální síti (nap°íklad pomocí VideoLanServeru z DVB-T vysílání). Uºivatel se zaregistruje
na webovém rozhraní a po p°ihlá²ení si zobrazí televizní program na p°ibliºn¥ týden dop°edu.
Vybráním po°adu se jeho objednávka zaznamená v databázi. Na serveru b¥ºí nekone£ná smy£ka,
která sleduje, zda v databázi není poºadavek na po°ad, který práv¥ za£íná. P°i nálezu za£ne
ukládat data z vysílání a po dokon£ení po²le odkaz na staºení v²em uºivatel·m, kte°í daný
po°ad poºadovali.
vii
viii
Obsah
Diplomová práce
i
Seznam obrázk·
xiii
Seznam tabulek
xv
1 Co od systému o£ekáváme
1
1.1
Z pohledu uºivatele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Z pohledu správce
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Popis systému
2
2.1
Vlastnosti DVBgrabu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.2
Servery
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.3
Databáze
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.4
Webové stránky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.5
Záznam
4
2.6
Specika ukládání z digitálního vysílání
2.7
2.8
2.9
Uve°ejn¥ní nahrávky
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
5
Komprimace záznam·
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Komprima£ní formáty
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.9.1
Popisný XML soubor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.9.2
Vytvo°ení symbolického odkazu . . . . . . . . . . . . . . . . . . . . . . . .
7
2.9.3
Kontrola a p°ípadné zaloºení uºivatelského adresá°e . . . . . . . . . . . . .
7
2.9.4
Odeslání e-mailu a ozna£ení v databázi . . . . . . . . . . . . . . . . . . . .
7
2.10 Distribuce záznam· . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.11 Získávání aktuálního televizního programu pro web . . . . . . . . . . . . . . . . .
8
2.12 Právní aspekty získávání televizního programu z ve°ejn¥ dostupných webových
stránek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Vysílání do po£íta£ové sít¥
8
10
3.1
Digitální vysílání v ƒeské republice . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2
Varianty digitálního vysílání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.3
Programy na vysílání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.4
Pot°ebný hardware a ovlada£e . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.5
Získání seznamu dostupných kanál· . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.6
Metody vysílání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.6.1
Unicast
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.6.2
Multicast
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.6.3
Broadcast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.7
Seznam kanál· pro uºivatele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.8
VideoLAN Server nebo VideoLAN Client? . . . . . . . . . . . . . . . . . . . . . .
15
3.9
Popis VideoLAN Server
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.9.1
Zdroje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.9.2
Výstupy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.10 Kongurace VideoLAN Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.11 MiniSAPserver
20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.12 Popis VideoLAN Client
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.13 Kongurace VideoLAN Client pro pouºití na vysílání do sít¥ . . . . . . . . . . . .
21
ix
3.14 MPlayer jako p°ehráva£ vysílané televize . . . . . . . . . . . . . . . . . . . . . . .
4 P°íjem multicastového vysílání z vn¥j²í sít¥
23
24
4.1
pimd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.2
mrouted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
5 Testování
25
5.1
P°ipomínky a reakce
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
5.2
Vyhodnocení implementovaných p°ipomínek anketa . . . . . . . . . . . . . . . .
26
5.3
Vyhodnocení ankety
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
5.4
Záv¥r z testování
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
6 Záv¥r
29
7 Literatura
31
A Instalace a údrºba
33
A.1
Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
A.2
Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
A.3
Pot°ebné knihovny a pomocné programy . . . . . . . . . . . . . . . . . . . . . . .
34
A.3.1
Apache
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
A.3.2
PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
A.3.3
php-pear-Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
A.3.4
php-json . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
A.3.5
php-adodb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
A.3.6
XMLTV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
A.3.7
Databáze
35
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.4
Staºení DVBgrabu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
A.5
Zaloºení databáze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
A.6
Kongurace DVBgrabu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
A.7
Údrºba záznamového serveru
39
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.7.1
Mazání neaktivních uºivatel·
A.7.2
Aktualizace uºivatelských ú£t·
. . . . . . . . . . . . . . . . . . . . . . . . .
39
. . . . . . . . . . . . . . . . . . . . . . . .
39
A.7.3
Kontrola neznámých uºivatelských ú£t·
. . . . . . . . . . . . . . . . . . .
39
A.7.4
Mazání nepot°ebných .ts soubor· . . . . . . . . . . . . . . . . . . . . . . .
40
A.7.5
Kontrola volného místa
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
A.7.6
Mazání starých dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
A.8
Ru£ní údrºba uºivatel· . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
A.9
Údrºba backend skript·
40
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B Uºivatelská p°íru£ka
B.1
43
Registrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
B.1.1
Uºivatelské jméno
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
B.1.2
Uºivatelské heslo
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
B.1.3
E-mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
B.1.4
IP adresa pro stahování
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
B.1.5
Video kodek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
B.1.6
Icq, Jabber
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
B.2
P°ihlá²ení
B.3
Objednání grabu
B.4
Ru²ení grabu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
x
B.5
Sledování stavu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
B.6
Stahování grabu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
B.7
P°ehrávání grabu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
B.8
Zm¥ny nastavení ú£tu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
B.9
Zru²ení ú£tu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
C Snímky obrazovky
49
D Formáty pro ukládání audio-video
51
D.1
Organizace ovliv¬ující audio-video formáty sou£asnosti . . . . . . . . . . . . . . .
51
D.2
Nejznám¥j²í kontejnery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
D.3
Nejpouºívan¥j²í video kodeky
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
D.4
Nejpouºívan¥j²í audio kodeky
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
E Slovník pojm·
53
F Obsah p°iloºeného CD
55
xi
xii
Seznam obrázk·
2.1
Systém DVBgrabu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1
Vyuºití program· z projektu VideoLAN
. . . . . . . . . . . . . . . . . . . . . . .
11
3.2
Tabulky tok· v MPEG-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
A.1
Komponenty DVBgrabu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
C.1
Ukázka p°ihlá²ení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
C.2
Ukázka programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
C.3
Ukázka seznamu grab· . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
C.4
Ukázka nastavení ú£tu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
xiii
2
xiv
Seznam tabulek
3.1
Varianty DVB vysílání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2
Parametry vysílání pro jednotlivé multiplexy
12
xv
. . . . . . . . . . . . . . . . . . . .
xvi
KAPITOLA 1. CO OD SYSTÉMU OƒEKÁVÁME
1
1 Co od systému o£ekáváme
1.1
Z pohledu uºivatele
Uºivatel není nucen instalovat ºádné dodate£né programy, pouze internetovým prohlíºe£em
p°istoupí na stránky aplikace a zadá, o jaké po°ady má zájem. P°ed prvním pouºitím se uºivatel
na stránkách zaregistruje, £ímº je automaticky i p°ihlá²en do systému. Stránky komunikují
s uºivatelem pokud moºno jeho preferovaným jazykem podle nastavení prohlíºe£e, p°ípadn¥
m·ºe zvolit jiný z nabízených. Zvolený jazyk se uchovává dlouhodob¥. Uºivatelské jméno a heslo
také, takºe p°i dal²ích náv²t¥vách ze stejného po£íta£e uº je není nutné zadávat. Výb¥r po°ad·
by m¥l být k dispozici minimáln¥ na týden dop°edu.
V seznamu po°ad· sta£í kliknout na název po°adu a tím je poºadavek zadán. Nahraný po°ad
se po uloºení je²t¥ komprimuje do uºivatelem zvoleného formátu.
Po uloºení a zkomprimování je do uºivatelova adresá°e uloºen odkaz na po°ad a cemº je uºivatel
informován e-mailem. Odkaz m·ºe být na protokol ftp nebo http. O hotových nahrávkách se
m·ºe také informovat v rámci webového rozhraní, kde je seznam jeho nahrávek v£etn¥ odkaz·
na staºení, objednaných nahrávek a hotových nahrávek v²ech uºivatel·.
Uºivatel má moºnost m¥nit n¥které parametry svého ú£tu, nechat si zaslat nov¥ vygenerované
heslo a také úpln¥ zru²it ú£et.
1.2
Z pohledu správce
Pot°ebujeme p°ehlednou a automatickou správu uºivatel·. Pot°ebujeme, aby systém korektn¥
reagoval na výpadky spojení s databází nebo na nedostatek diskového prostoru.
Pro moºnost pouºití i mimo ƒeskou republiku je t°eba pouºít ve webovém rozhraní kódování
podporující více národních abeced (UTF-8) a podle toho také zajistit správné kódování znak·
u dat p°icházejících z databáze p°es ADOdb (knihovna pro abstraktní p°ístup k databázovém
serveru).
Televizní program je nutné na£ítat v n¥jakém srozumitelném, dob°e denovaném a mezinárodn¥
uznávaném formátu jako je XMLTV viz. [7]. To zna£n¥ usnad¬uje instalaci v zahrani£í, kde je
obvykle dostatek zdroj· programu v XMLTV. P°idávání nových kanál· musí být co nejsnadn¥j²í
a nesmí vyºadovat hlub²í znalosti systému.
2
KAPITOLA 2. POPIS SYSTÉMU
2 Popis systému
Systém slouºí pro záznam televizních po°adu (VDR Video Disk Recorder). Je navrºen pro
prost°edí GNU/Linux. Skládá se z webového rozhraní pro uºivatele a ze sady skript·, které
zaji²´ují nahrávání a komprimaci.
Je zaloºen na star²ím projektu TVgrab, který implementoval nahrávání z klasického analogového
signálu a jedinou podporovanou databází byla MySQL. Tento systém byl upraven pro nahrávání
z libovolného zdroje ²í°eného v lokální síti a ve²keré databázové funkce jsou nyní volány p°es
ADOdb.
Obrázek 2.1: Systém DVBgrabu
Pro funkci systému pot°ebujeme audio-video signál p°ená²ený po lokální síti, zdroj televizního
programu pro v²echny nahrávané TV kanály. Uºivatel poté objednává nahrávku (grab) pouhým
kliknutím na název po°adu. Hotová nahrávka se komprimuje do uºivatelem preferovaného formátu a výsledek je poté p°ipraven ke staºení. O dostupnosti nové nahrávky je uºivatel, který si
ji objednal, informován e-mailem.
KAPITOLA 2. POPIS SYSTÉMU
2.1
•
•
•
•
•
3
Vlastnosti DVBgrabu
Podpora distribuce nahrávek také p°es HTTP server apache
Webové kongura£ní rozhraní setup.php
Sjednocená a centralizovaná kongurace v jednom souboru cong.php
Moºnost volby preferovaného formátu hotové nahrávky (MPEG-2, MPEG-4, ...)
Moºnost nahrávat z n¥kolika kanál· paraleln¥, odpadá pot°eba volit, který z analogových
kanál· bude nalad¥n v dob¥ záznamu
•
•
•
•
•
•
•
•
•
•
•
•
Záznamové skripty pracující s libovolným audio-video signálem ²í°eným po lokální síti
Vyuºití ADOdb pro abstraktní p°ístup k tém¥° libovolnému databázovému stroji
Seznam hotových nahrávek ve webovém rozhraní obsahuje i odkazy na staºení
Objednávání nahrávek p°ímo z vyhledávacího formulá°e
Moºnost dodate£ných zm¥n nastavení uºivatelského ú£tu, p°ípadn¥ zru²ení ú£tu
Zasílání nového hesla p°i zapomenutí starého
Kompletní vícejazy£ná podpora
K dispozici krom¥ £e²tiny je také angli£tina, francouz²tina a sloven²tina
Automatický výb¥r pouºitého jazyku ve webovém rozhraní
Podpora na£ítání TV programu ve formátu XMLTV
Automatická údrºba záznamového serveru
Podpora zobrazování detailních záznam· aº p°i poºadavku pomocí asynchronních XMLHTTP poºadavk·
•
Detailní informace o po°adu k dispozici spole£n¥ s nahrávkou ve formátu XML s p°ipojenou XSL transformací.
2.2
Servery
Systém vyuºívá ke svému b¥hu 2 r·zné servery, i kdyº to není nutností. Na jednom b¥ºí databáze
a webové rozhraní. Na druhém potom vysílání signálu do lokální sít¥, záznam na disk a distribuce
nahraných po°ad·.
2.3
Databáze
Jako databázový server lze pouºít tém¥° libovolnou SQL databázi, protoºe systém vyuºívá
knihovnu ADOdb, která podporuje v sou£asné dob¥ zhruba 15 r·zných databázových stroj·.
Systém byl provozován na MySQL databázi, nyní na PostgreSQL. Kv·li pouºití ADOdb je
nutné vºdy volat SQL kód jen s pouºitím ADOdb funkcí, nap°íklad pro formátování datumu
v SQL dotazech musí být vºdy volána odpovídající ADOdb funkce, která vygeneruje funkci
odpovídající aktuáln¥ pouºitému databázovému serveru.
2.4
Webové stránky
Webové prost°edí je napsáno pomocí XHTML+PHP+JavaScript. Obsahuje jak uºivatelské tak
administrativní rozhraní p°eváºn¥ pro prvotní nastavení a p°ípadné zm¥ny v konguraci. Je
napsáno s podporou více jazykových variant (£e²tina, sloven²tina, angli£tina, francouz²tina).
V²echny zobrazované texty jsou denovány jako konstanty v souborech lang/lang.jazyk.php.
4
KAPITOLA 2. POPIS SYSTÉMU
Jazyk se volí postupn¥ podle t¥chto pravidel:
•
•
•
•
podle cookie, pokud uºivatel n¥kdy p°epnul jazyk ru£n¥ kliknutím na ikonu vlajky
podle preferovaných jazyk· v nastavení prohlíºe£e
v databázi hledáme poslední pouºitý jazyk daného uºivatele
výchozí jazyk denovaný v globální konguraci
Nakonec se zvolený jazyk uloºí do databáze k uºivateli jako poslední pouºitý jazyk. To se vyuºívá
nap°íklad p°i odesílání e-mailu o úsp¥²ném nahrání, kdy nemáme jiº k dispozici uºivatele, jeho
cookies ani jeho prohlíºe£.
Z d·vodu vícejazy£ného webového rozhraní je t°eba zajistit také kódování v databázi nastavené
na UTF-8, aby podporovala v²echny p°ípustné varianty.
2.5
Záznam
O nahrávání se starají 2 nekone£né smy£ky naprogramované také v PHP. Jedna se stará
o záznam (grab_loop), druhá o komprimaci (encode_loop). Záznamová smy£ka se spou²tí po
startu systému a v krátkych £asových intervalech kontroluje, zda na n¥kterém kanálu neza£íná
n¥jaký objednaný po°ad. Pokud ano, spustí na pozadí nový proces, který zajistí záznam tohoto
po°adu (grab_process, kterému se p°edává pouze ID záznamu v databázi) a sama pokra£uje
dál ve své £innosti.
Komprima£ní smy£ka je odli²ná, spou²tí se sice také po startu systému, ale protoºe nemá smysl
pou²t¥t paraleln¥ p°íli² mnoho komprima£ních proces·, tak vºdy kontroluje, zda existuje v databázi n¥jaký nevy°ízený poºadavek na formát, do kterého se zrovna nic nekomprimuje. Pokud
ano, vybere nejstar²í podle data vysílání po°adu a spustí nový proces (encode_process, kterému
p°edává ID poºadavku a formát, jaký se má pouºít). To znamená, ºe kolik r·zných formát· si
uloºíme do databázové tabulky encoder, tolik komprima£ních proces· m·ºe b¥ºet paraleln¥.
Vlastní záznam na disk je provád¥n pomocí programu dumprtp, z balíku dvbstream, který
ukládá datový tok ze zadané IP adresy a portu do souboru. V záznamovém procesu se nejd°íve
v²echny poºadavky na daný po°ad p°epnou ze stavu naplánován do stavu ukládá se. Poté je
dumprtp spou²t¥n jako volání podprocesu na pozadí a poté je po£ítán £as aº do konce po°adu,
kdy se po²le procesu dumprtp signál TERM k ukon£ení.
Data se p°i ukládání netransformují, takºe z·stanou uloºena jako MPEG-TS (transport stream).
To umoº¬uje paralelní zápis n¥kolika po°ad· na disk, protoºe je to operace relativn¥ nenáro£ná.
Transport stream je optimalizovaný spí²e pro p°enos audio-video signál·, neº pro jejich p°ehrávání (neobsahuje p°íli² £asto klí£ové snímky, takºe nap°íklad p°i posunech je dlouhá odezva neº
se obnoví obraz). Z jaké IP adresy a portu se má ukládat, je nyní ur£eno v databázi v denici
televizního kanálu.
Jmenné konvence pro název nahrávky jsou DVB- jako p°edpona, pak datum ve formátu YmdHi (rok, m¥síc, den, hodiny, minuty) tak, aby se adresá° s nahrávkami dal °adit chronologicky
podle abecedy. Dále následuje jméno kanálu (po odstran¥ní diakritiky) a název po°adu, bu¤
po odstran¥ní diakritiky nebo jenom ID záznamu, pokud to je v konguraci nastaveno (p°esné
jméno po°adu v£etn¥ diakritiky je pak aº v popisném XML souboru, viz dále. Nekomprimované
nahrávky mají p°íponu .ts jako transport stream.
KAPITOLA 2. POPIS SYSTÉMU
5
Po ukon£ení dumprtp smy£ka je²t¥ zkontroluje, zda má nahrávka n¥jakou odpovídající nenulovou
velikost a informace o uloºení se aktualizuje v databázi (v²echny poºadavky na tento po°ad
p°ejdou ze stavu ukládá se do stavu uloºen.
2.6
Specika ukládání z digitálního vysílání
Sou£ástí DVB vysílání jsou i informace o vysílaných po°adech.
Tyto informace jsou vysílány jako sou£ást MPEG-2 dat pomocí protokolu PMCP (Programming
Metadata Communication Protocol), coº jsou do XML balené data z PSIP (Program and System
Information Protocol).
Sou£ástí PSIP jsou následující tabulky:
•
•
•
•
•
•
•
•
STT (system time table) aktuální £as vysílaný kaºdou sekundu
MGT (master guide table) datové ukazatale do dal²ích tabulek PSIP
VCT (virtual channel table) seznam kanál· a p°i°azení jejich £ísel
RRT (rating region table) hodnocení obsahu pro jednotlivé regiony
EIT (event information table) názvy a dal²í data pro televizní program
ETT (extended text table) detailní popis program·
DCCT (directed channel change table)
DCCST (directed channel change selection code table)
Tabulky EIT a ETT pouºívá v MHP (Multimedia Home Platform aplika£ní roz²í°ení v DVB)
aplikace EPG (Electronic program guide elektronický televizní program). Tyto informace by
bylo velmi výhodné pouºít pro p°esné nastavení za£átku a konce záznamu.
Pokud toto nemáme k dispozici, musí nahrávání za£ínat n¥kolik minut p°ed plánovaným za£átkem po°adu (lze kongurovat kolik) a také lze nastavit, kolik minut se má nahrávat po
plánovaném konci po°adu.
Pokud bychom cht¥li vyuºít informace z EIT p°ímo v DVBgrabu, tak bychom museli nejd°íve
zajistit jejich distribuci z vysílajícího serveru do lokální sít¥.
Podle zástupc· Czech Digital Group jsou prý tyto údaje jiº dostupné. Pokud jim televize údaje
dodá, tak je pouze p°evedou do formátu vhodného pro EIT a vloºí do toku dat.
Pokud by v EIT byly obsaºeny i zna£ky za£átku a konce televizní reklamy, tak by ²lo podle
nich vypínat a zapínat záznam, a tím tedy zajistit automatické vyst°ihování reklamy. P°ípadn¥
by bylo moºné naprogramovat n¥jaký vlastní algoritmus pro poznávání reklamy (t°eba podle
podobnosti s dodanou po£áte£ní a koncovou zn¥lkou). Tento algoritmus by byl pravd¥podobn¥
dosti hardwarov¥ náro£ný, coº by p°i n¥kolika paralelních záznamech mohlo vést aº ke ztrátám
snímku, proto nebyl pouºit. Tyto algoritmy také nemusí být v souladu se zákonem (automatický systém na vyst°ihování reklamy byl sou£ástí software DVD rekordér· KISS a musel být
odstran¥n a z·stalo pouze automatické p°etá£ení reklamy p°i sledování ze záznamu).
6
KAPITOLA 2. POPIS SYSTÉMU
2.7
Komprimace záznam·
Komprima£ní smy£ka postupn¥ prochází p°es v²echny formáty (encodery) a zkoumá, zda pro ty,
které aktuáln¥ neb¥ºí (nemají v databázi uloºené své £íslo procesu PID, pokud je uloºeno, tak
se testuje, zda doopravdy b¥ºí), neexistuje n¥jaký £ekající poºadavek ve stavu uloºen. Pokud
ano, vybere op¥t nejstar²í. Zaloºí na pozadí nový proces, který komprimaci zajistí. Komprima£ní
proces nejd°íve op¥t zm¥ní stav poºadavku v databázi z uloºen na komprimuje se.
Poté spustí skript, jehoº jméno je op¥t uvedeno v databázi a který musí být uloºen v adresá°i
encoders. Tomuto skriptu p°edá název nahraného po°adu, který do databáze uloºil p°edcházející
záznamový proces, a z p·vodního jména vytvo°í název cílového souboru p°ipojením denované
p°ípony z databáze. Po úsp¥²né komprimaci je z .ts souboru vytvo°en nap°íklad .avi soubor
ve formátu MPEG-4, poté se znovu zkontroluje, zda výsledný soubor má odpovídající velikost,
a pokud ano, dojde k uve°ejn¥ní nahrávky poºadujícím uºivatel·m.
2.8
Komprima£ní formáty
Komprimaci zaji²´uje program mencoder, který podporuje velmi mnoho formát·. N¥které základní jsem uvedl v p°íloze. ƒím více kombinací kontejner, video, audio kodek· umoºníme
uºivateli zvolit, tím v¥t²í budou nároky na £as a místo na disku. Kaºdá nahrávka totiº musí být
zkomprimována do v²ech uºivateli poºadovaných variant a také bude ve v²ech poºadovaných
variantách uloºena na vyhrazeném diskovém prostoru.
Proto je p°ipraveno pouze pár zajímavých kombinací, a to:
• MPEG-2 TS
formát v jakém p°ijímáme DVB signál ze sít¥, soubor bude mít p°íponu
.mpg.
• AVI/MPEG-4 ASP (z libavcodec)/MP3
b¥ºn¥ pouºívaný komprimovaný soubor,
hodina záznamu odpovídá zhruba 700MB. Jsou p°eddenované varianty s r·zným m¥°ítkem (r·zné rozli²ení), soubor bude mít p°íponu .avi.
Dále by bylo vhodné pouºít:
• OGG/Theora/Vorbis
svobodná obdoba p°edchozí kombinace s mírn¥ efektivn¥j²ím
pom¥rem kvality a velikosti souboru, s p°íponou .ogg.
• MP4/MPEG-4 AVC (z x264)/AAC nejvy²²í kvalita, pokud budeme mít dostate£n¥
kvalitní zdroj, p°ípona by byla .mp4. Tato varianta bude trvat mnohem déle, proto je
vhodná jen pro výkonn¥j²í servery nebo tam, kde nevadí £asový rozdíl mezi koncem po°adu
a uve°ejn¥ním grabu.
2.9
Uve°ejn¥ní nahrávky
2.9.1 Popisný XML soubor
Je vytvá°en XML soubor popisující detaily nahrávky. Obsahuje název po°adu s diakritikou,
název kanálu s diakritikou, za£átek a konec po°adu podle televizního programu, za£átek a konec
KAPITOLA 2. POPIS SYSTÉMU
7
nahrávání, pouºitý komprima£ní formát, výslednou velikost souboru v kB a MD5 sou£et pro
kontrolu bezchybného staºení.
XML soubor je ve webovém prohlíºe£i zobrazován v podob¥ p°ehledné tabulky, která je z XML
souboru vytvo°ena podle XSL ²ablony.
Ta je v uºivatelském adresá°i vygenerována (podle jazyku, který uºivatel pouºívá na webovém
rozhraní DVBgrabu) v souboru dvbgrab.xsl. Pokud uºivatel chce stejn¥ zobrazovat i staºené
XML soubory, musí k nim do adresá°e zkopírovat i tento soubor.
2.9.2 Vytvo°ení symbolického odkazu
Vytvo°ení symbolického odkazu z uºivatelova adresá°e do sdíleného prostoru, ve kterém jsou
uloºené v²echny nahrávky (jak na nahrávku, tak na odpovídající XML soubor).
2.9.3 Kontrola a p°ípadné zaloºení uºivatelského adresá°e
B¥hem vytvá°ení symbolických odkaz· dojde také ke kontrole, zda je uºivatelský adresá° jiº
zaloºen a p°ípadn¥ také k p°egenerování souboru .htaccess, který ur£uje ze kterých IP adres
smí uºivatel své nahrávky stahovat (tato IP adresa je vºdy pouze jedna a je uloºena v databázi
u informací o uºivateli). Uºivatel má moºnost p°es webové rozhraní zadat její zm¥nu, proto musí
docházet k p°egenerování t¥chto .htaccess soubor·. Druhá varianta je p°egenerování souboru
pouze pokud n¥jaká zm¥na skute£n¥ nastala, coº rozhoduje údrºbový skript pou²t¥ný pomocí
plánova£e cron.
Oba p°ístupy mají své výhody, ale i nevýhody. První je nevýhodný nap°íklad pro uºivatele, který
p°i pokusu o staºení nahrávky zjistí, ºe má zaregistrovanou neaktuální IP a dal²í nahrávku zatím
neplánuje. Druhý naopak nepot¥²í uºivatele, který ráno zadá zm¥nu IP, v poledne se mu uloºí
nahrávka a aº do p·lnoci nejde stáhnout, kdyº se údrºbové skripty budou pou²t¥t jen 1x denn¥
o p·lnoci. e²ením je bu¤ dostate£n¥ £asté pou²t¥ní údrºby nebo kombinace obou p°ístup·.
Výchozí nastavení generuje .htaccess soubory v obou p°ípadech.
2.9.4 Odeslání e-mailu a ozna£ení v databázi
Odeslání informa£ního e-mailu v²em uºivatel·m, kte°í tuto nahrávku v tomto formátu poºadovali. U v²ech uºivatelských poºadavk· je v databázi nastaveno jméno souboru s nahrávkou, jak
bude p°ístupná p°es http server, coº je pak pouºito pro generování odkaz· na staºení v sekci
moje graby.
2.10
Distribuce záznam·
Distribuce nahrávek mezi uºivatele je zaji²t¥na p°es http server apache (nyní ve verzi 2.2.x, která
jiº nemá problémy se soubory v¥t²ími neº 2GB). Alternativn¥ lze pouºít i n¥jaký ftp server,
který umí autentikovat uºivatele nejlépe proti pouºité databázi. Pokud pot°ebujeme generovat
uºivatelské ú£ty pro ftp server, máme k dispozici pouze uºivatelská jména a md5 sou£ty jejich
hesel (musíme £íst i md5 hesel z externí autoriza£ní databáze).
8
2.11
KAPITOLA 2. POPIS SYSTÉMU
Získávání aktuálního televizního programu pro web
Stahování aktuálního TV programu je zaji²t¥no p°es r·zné moduly. V adresá°i tvgrabbers jsou
jednotlivé php skripty. V distribuci je skript tv_grab_novinky_cz/tv_grab_novinky_cz.php,
který na£ítá data ze serveru novinky.cz. Staºený html kód je zpracován pomocí regulárních
výraz· a jednotlivé po°ady jsou uloºeny do databáze. Tento skript umí pouze n¥kolik program·
(ƒT1, ƒT2, Nova, Prima), pro na£ítání jiných je nutné skript editovat.
XMLTV dal²ím skriptem v distribuci je xmltv_to_db.php, který lze pouºít pro vkládání
XML souboru ve formátu XMLTV do databázové tabulky television. Nejd°íve se podíváme,
co je to XMLTV. XMLTV je specikace, jak zapisovat televizní program do XML soubor·.
Tuto specikaci vyuºívá velmi mnoho program· viz. [7]. Na stránkách XMLTV lze stáhnout
téº instala£ní balík, který obsahuje stahovací skripty pro pom¥rn¥ mnoho zemí. Bohuºel není
obsaºen skript po ƒeskou republiku z d·vodu, který uvedu v následující sekci.
Kaºdý stahovací skript musí být p°ed prvním pouºitím spu²t¥n v kongura£ním °eºimu (nap°.
pro skript tv_grab_cz takto tv_grab_cz -conf ). Kongurace se obvykle skládá z n¥kolika
obecných dotaz·. Dále se vypisuje seznam televizních kanál·, které umí stahovat, a pro kaºdý
kanál uºivatel volí, zda se má stahovat, £i ne. Poté sta£í spustit skript s parametrem udávajícím
na kolik dn· dop°edu má stahovat, p°ípadn¥ od kolikáteho dne za£ít (tv_grab_cz days 10,
stáhne na 10 dní dop°edu pro v²echny povolené kanály jejich program). Výstupem skriptu je
správn¥ formátovaný soubor XML, který je²t¥ pot°ebujeme transformovat do databáze.
Protoºe se nám hodí i koncové £asy po°ad·, pom·ºe nám pomocný skript z balíku XMLTV
tv_sort, který nejen chronologicky se°adí po°ady v rámci kanálu, ale také kaºdý po°ad doplní
koncovým £asem (podle po£áte£ního £asu chronologicky následujícího po°adu). Bohuºel tohle
selhává u posledních po°ad· v rámci dne, kdy následujícím po°adem je aº první ranní po°ad
dal²ího dne. Tyto situace se snaºí detekovat systém aº p°i vytvá°ení poºadavku na nahrání
a pokud po°ad za£íná mezi 1. a 5. hodinou ranní a trvá déle neº 4 hodiny, tak se koncový £as
nastaví jen na £as po£áte£ní + denovaná konstanta (výchozí hodnota je +2 hodiny). Pokud
koncové £asy nemáme v databázi v·bec (nap°. po pouºití modulu tv_grab_novinky_cz.php),
tak se koncový £as ur£uje také p°i vytvá°ení poºadavku na nahrání.
Takto p°edzpracovaný program jiº m·ºeme zpracovávat pomocí skriptu xmltv_to_db.php. Ten
sloºí pro kaºdý element <programme> 2 SELECT dotazy, INSERT pro vloºení a UPDATE pro
aktualizaci. První dotaz zjistí, zda v danou dobu na daném kanálu jiº existuje v databázi po°ad
se stejným jménem, a pokud ano, element je ignorován. Jinak se provede druhý dotaz, který
zji²´uje, zda neexistuje v tu dobu po°ad s jiným jménem. Pokud ano, pouºije se vygenerovaný
UPDATE, pokud ne, pouºije se INSERT. Pokud se ve vstupním souboru objeví nap°íklad po°ad
na kanálu, jehoº xmltv id nemáme v databázi DVBgrabu registrováno, vypí²e se varování a po°ad
se také nevkládá.
2.12
Právní aspekty získávání televizního programu z ve°ejn¥ dostupných
webových stránek
V zahrani£í je b¥ºné, ºe dostupnost XMLTV formátu programu je £áste£n¥ podporovaná i státem.
U nás tomu bohuºel tak není a kv·li tomu v XMLTV distribuci stahovací skript pro ƒeskou
KAPITOLA 2. POPIS SYSTÉMU
9
republiku v dohledné dob¥ asi nenajdeme. Dokonce tam jistou dobu byl jiº i obsaºen. Bohuºel
rma provozující servery, které slouºily jako zdroj programu pro jinou rmu, která zaji²´ovala
transformaci z HTML formátu do XMLTV, nebyla této aktivit¥ p°ízniv¥ naklon¥na, a tak byl
projekt £eského XMLTV pod hrozbou ºaloby zastaven.
Bohuºel i mn¥ jako tv·rci DVBgrabu byla zaslána ºádost o urychlené odstran¥ní na£ítání
televizního programu ze stránek http://www.ceskenoviny.cz, jejichº provozovatelem je ƒeská
tisková kancelá° (ƒTK), jinak by záleºitost °e²ilo právní odd¥lení ƒTK. Proto nová verze
DVBgrabu bude distribuována bez £eského XMLTV modulu. Správce systému je pak nucen pouºít skript tv_grab_novinky_cz.php (za p°edpokladu, ºe snad p°átel²t¥j²í provozovatel
http://www.seznam.cz nep°ijde s ºádostí o odstran¥ní) a nebo si zajistit xmltv zdroj svépomocí.
Doufejme, ºe si n¥který portál nabízející online TV program v HTML podob¥ co nejd°íve v²imne
na trhu tohoto nedostatku a doplní své portfolio sluºeb nap°íklad o placený p°ístup k XMLTV
formátu svého programu.
10
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
3 Vysílání do po£íta£ové sít¥
Pro DVBgrab pot°ebujeme n¥jaký dostate£n¥ stabilní zdroj televizního vysílání po lokální síti.
To m·ºe b¥ºet na druhém serveru, ale m·ºe být i úpln¥ nezávislé na DVBgrabu.
3.1
Digitální vysílání v ƒeské republice
V sou£asné dob¥ v ƒeské republice vysílají DVB signál organizace Czech Digital Group a.s.
(CDG), RADIOKOMUNIKACE a.s. (d°íve ƒESKÉ RADIOKOMUNIKACE a.s., zkracen¥
CRA) a ƒeský Telecom a.s. (CTc). Kaºdá organizace p°edstavuje jeden multiplex, coº v DVB
znamená balík televizních, rozhlasových a datových kanál·, který je vysílán v rámci jedné frekvence po celém území.
Multiplex CRA je nyní zam¥°en na po°ady ƒeské televize (ƒT1, ƒT2, ƒT24, ƒT4 Sport), dále
obsahuje TV Nova a 7 radiových programu ƒeského rozhlasu, CDG obsahuje televizi Prima, Top
TV, TA3, Ó£ko, 24cz, TV NOE a radio Proglas, Evropa 2 a Classic. CTc m¥l ƒeskou Televizi,
O£ko, Novu, nyní jiº jako Telefonica O2 vysílá pouze testovací datové toky DVB-T ve formátu
MPEG-4 a testují vysílání s vysokým rozli²ením HDTV.
3.2
Varianty digitálního vysílání
Varianta
Pouºití
Video kodek
Modulace
DV B − T
DV B − S
DV B − C
DV B − H
pozemní
MPEG-2
QFDM,QPSK,QAM+
satelitní
MPEG-2
QPSK+
kabelové
MPEG-2
QAM+
p°enosné za°ízení
MPEG-4 AVC
QFDM,QPSK,QAM+
Tabulka 3.1: Varianty DVB vysílání
Variantu volíme podle dostupnosti v na²í lokalit¥, v Praze je nejsnaz²í vyuºít variantu DVB-T
(pozemní).
Pokrytí Prahy signálem DVB-T je velmi dobré, p°esto se mohou objevit problémy s pouºitými
zesilova£i, které jsou obvykle vylad¥ny pro zesilování frekvencí b¥ºných pro analogové televizní
vysílání a frekvence DVB-T (nad 500MHz) ú£inn¥ o°ezávají. Proto je v p°ípad¥ ²patného p°íjmu
jako první pot°eba zkontrolovat pouºité zesilova£e.
Systém, který b¥ºí na Masarykov¥ koleji ƒVUT, pouºívá signál ze 2 DVB-T karet, jedna je
nalad¥na na multiplex CDG a druhá na CRA.
Grabovací systém bude samoz°ejm¥ fungovat na libovolné kombinaci digitálních, ale i jinak
získaných signál·, které se dají vysílat po lokální síti.
3.3
Programy na vysílání
Pro vysílání po síti se pouºívají programy z projektu VideoLAN [6]. Jejich pouºití je následující:
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
11
Obrázek 3.1: Vyuºití program· z projektu VideoLAN
3.4
Pot°ebný hardware a ovlada£e
Budeme pot°ebovat n¥jaké DVB-T karty, obvykle do slotu PCI.
Odzkou²ené a ov¥°ené jsou nap°íklad karty Hauppauge WinTV-NOVA-T (Technotrend Systemtechnik GmbH Technotrend-Budget, Philips Semiconductors SAA7146 rev 01).
Pokud chceme paraleln¥ vysílat kanály z více r·zných multiplex·, pot°ebujeme více t¥chto karet.
Kaºdá DVB-T karta má potom na svém tuneru nalad¥nu frekvenci multiplexu a paraleln¥
p°ijímá v²echny kanály tohoto multiplexu.
Ovlada£e t¥chto karet jsou k dispozici na stránkách projektu linuxtv [2] a také jsou sou£ástí
jádra systému °ady 2.6. V nov¥j²ích jádrech neº 2.6.9 se promítlo mnoho zm¥n v ovlada£ích,
proto je pot°eba stáhnout i nov¥j²í verzi rmware karty, která se nahrává p°i na£ítání ovlada£e.
Pro zprovozn¥ní vysílání je vhodné nainstalovat je²t¥ n¥kolik uºivatelských aplikací jako mediatv/linuxtv-dvb, linuxtv-dvb-apps, linuxtv-dvb-headers, libdvbpsi, dvbsnoop pro Gentoo nebo
dvb-utils, dvbsnoop, dvbstream, dvbtune, libdvb-dev, libdvbpsi3, libdvbpsi3-dev pro Debian.
3.5
Získání seznamu dostupných kanál·
Získání seznamu po°ad· v multiplexu popí²u jiº v této sekci, i kdyº daný postup lze zjednodu²it, pokud pouºijeme p°ímo VideoLanClient(VLC) místo sloºit¥j²í kombinace VideoLanServer(VLS)+miniSAPserver.
Pro zji²t¥ní dostupných kanál· lze pouºít nap°íklad p°íkaz scan z balíku dvb-utils. Nejd°íve je
t°eba p°ipravit soubor s výchozím nastavením tuneru, aby karta v¥d¥la, ve kterém multiplexu
12
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
Parametr
Typ multiplexu
Frekvence v Praze
Multiplex A Multiplex B Multiplex C
CRA
CDG
CTC
T
T
T
506 000 000
674 000 000
818 000 000
’í°ka pásma
8 MHz
8 MHz
8 MHz
Vysílací mód
8K
8K
8K
Ochranný interval
1/8
1/16
1/8
Kódový pom¥r(fec_hi)
2/3
2/3
2/3
Kódový pom¥r(fec_lo)
2/3
1/2
2/3
64 QAM
64 QAM
64 QAM
22,12 Mbit/s
23,42 Mbit/s
22,170 Mbit/s
ISO 6937
ISO 6937
ISO 8859-2
ne
ne
ne
Modulace
Celková bitová rychlost
Kódování £e²tiny pro EPG
Hierarchický mód
Tabulka 3.2: Parametry vysílání pro jednotlivé multiplexy
chceme kanály vyhledávat.
Výchozí nastavení pro r·zné multiplexy lze obvykle získat z www stránek provozovatele. Sou£asný stav viz tabulka 3.2.
Takºe výchozí nastavení pak vypadá následovn¥ (m·ºeme zadat v²echny multiplexy najednou
do jednoho souboru a n¥kdy je takový soubor jiº sou£ástí instala£ního balí£ku s programem pro
skenování):
#
#
T
T
T
DVB-T Praha (Prague, Czech Republic)
T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
506000000 8MHz 2/3 2/3 QAM64 8k 1/8 NONE
674000000 8MHz 2/3 1/2 QAM64 8k 1/16 NONE
818000000 8MHz 2/3 1/2 QAM64 8k 1/8 NONE
Výstup programu scan poté pro ƒeské radiokomunikace (CRA) vypadá nap°. takto:
CT1:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:513:641:1
CT2:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:514:642:2
CT24:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:515:643:3
Nova:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:516:644:4
Praha:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:658:18
Vltava:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:659:19
D-dur:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:661:21
Leonardo:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:662:22
Radio Cesko:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:663:23
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
13
a pro Czech Digital Group (CDG) nap°. takto:
CT 1:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2501:2502:5
CT 2:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:164:96:4
NOVA:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:205:206:3
TOP TV:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2601:2602:2
CT24:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:1026:1027:7
CRo 2:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2832:6
CRo 1:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2831:9
Proglas:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:180:11
Evropa 2:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:110:19
EXPRESRADIO:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:120:22
CLASSIC FM:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:130:23
Prima:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:161:84:1
MPEG-2 transport stream je balíkem elementárních kanál· (MPEG-2 ES Elementary stream)
a informa£ních tabulek.
Kaºdá sloºka je jednozna£n¥ ur£ena identika£ním £íslem PID (13 bitové identika£ní £íslo
sloºky, unikátní v rámci multiplexu). Podle PID se ur£uje, které pakety pat°í k sob¥.
• PAT Program Association Table
je první informa£ní tabulkou, která je vºdy vysí-
lána s PID 0x0. Obsahuje pro kaºdý kanál v multiplexu PID, kde je vysílána jeho PMT
tabulka.
• PMT Program Map Table
je potom seznam PID jednotlivých sloºek. Kaºdý kanál
má vysílánu vlastní PMT tabulku na vlastním PID.
• PCR Program Clock Reference zdroj £asového signálu pro dekodér.
• PIDu 0x1FFF vyhrazený pro vysílání prázdných paket·, které slouºí jenom na dopln¥ní
vysílání do ur£ité velikosti, aby byla dodrºena konstantní velikost (constant bitrate).
P°íkaz scan nám tedy vypsal informa£ní tabulky PAT a PMT. Kaºdý °ádek je tedy jednou tabulkou PMT. V prvním sloupci je název kanálu, následují parametry spole£né pro celý multiplex
a zajímavé jsou pak poslední £íselné sloupce odd¥lené dvojte£kou.
Úpln¥ poslední ur£uje PID této PMT tabulky, coº lze pouºít jako identikátor kanálu. P°edcházející £ísla jsou PID jednotlivých sloºek programu, a to v po°adí video, audio.
P°ehledn¥ je to zobrazeno na následujícím obrázku 3.2, p°evzatém z [1].
14
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
Obrázek 3.2: Tabulky tok· v MPEG-2
3.6
Metody vysílání
Nyní tedy umíme zjistit dostupné kanály a jejich konguraci. P°ed volbou vysílacího serveru se
je²t¥ musíme rozhodnout pro metodu vysílání. Pro provozování DVBgrabu je nejd·leºit¥j²í vysílání pomocí multicastu. Multicast je totiº nejefektivn¥j²í a díky tomu vlastn¥ jediný pouºitelný
pro v¥t²í lokální sít¥.
3.6.1 Unicast
• Popis vysílání pro konkrétní IP adresu
• Výhody snadná kongurace pro málo uºivatel·, moºnost denovat povolené adresy
• Nevýhody data se posílají tolikrát, kolik je uºivatel·, coº zna£n¥ zat¥ºuje sí´.
3.6.2 Multicast
• Popis vysílání pro skupinu IP
• Výhody do skupiny se klient
adres
m·ºe p°ihla²ovat a odhla²ovat pomocí IGMP (Internet
Group Management Protocol) paket·, takºe dostává data jen z t¥ch stanic, které sleduje
• Nevýhody
pro funk£ní a efektivní multicast vysílání je pot°eba, aby switche podporo-
valy IGMP snooping, coº je mechanismus p°eposílání packet· pouze na ty porty, ze kterých
p°i²el p°ihla²ovací paket do dané skupiny. Jinak se data ²í°í v rámci switche jako broadcast.
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
15
3.6.3 Broadcast
• Popis vysílání na úpln¥ v²echny IP v
• Výhody snadné
• Nevýhody zna£né zatíºení sít¥, data
3.7
síti
dostávají v²ichni a ze v²ech stanic.
Seznam kanál· pro uºivatele
Kdyº máme seznam po°ad· a p°id¥líme jim adresy, na kterých je budeme vysílat, je vhodné
vytvo°it také statický playlist. Ten se bude hodit uºivatel·m, kte°í nebudou pouºívat p°ehráva£
s podporou SAP playlistu. Playlist M3U je oby£ejný textový soubor obvykle s p°íponou .m3u
obsahující pro kaºdý po°ad jeho název (za EXTINF) a adresu (následující °ádek), viz ukázka:
#EXTM3U
#EXTINF:0,CRA_CT1
rtp://@239.194.12.1
...
#EXTINF:0,CRA6_CT1
rtp://@[ff08::701]
...
3.8
VideoLAN Server nebo VideoLAN Client?
Pro vysílání m·ºeme pouºít bu¤ VLS (VideoLan Server) nebo VLC (VideoLan Client). Zásadní
rozdíl je ve sloºitosti kongurace a udrºovanosti projektu. VLS není jiº n¥kolik let aktivn¥
vyvíjen, VLC uº podporuje v²echny jeho funkce a nyní i mnohem více.
VLS má sloºit¥jsí konguraci, kde je pot°eba denovat správn¥ seznam kanál· pro jednotlivé
karty v souborech .dvbrc.N. Také neobsahuje integrovaný SAP server jako VLC. To pro nás
znamená dal²í práci s kongurací SAP serveru. Vlastní kongurace v souboru vls.cfg je sice
p°ehledná, ale p°esto dost náchylná k chybám p°i úpravách. Velkou výhodou VLS je jeho pouºití
na serverech bez grackého prost°edí, protoºe ani jeho binární balí£ky nezávisí na ºádných
grackých knihovnách.
VLC má mnohem snaº²í konguraci a nepot°ebuje .dvbrc.N soubory, coº sice znamená, ºe
nem·ºeme denovat pro programy symbolické názvy, ale taky to u²et°í práci s vytvá°ením t¥chto
soubor·, pokud se skladba program· v multiplexu £ast¥ji m¥ní. VLC má integrovaný SAP server,
takºe je v²e schováno p°ehledn¥ v jednom souboru. Nevýhoda u binárních instala£ních balí£k·
se dá obejít bu¤ p°ekompilováním VLC do balí£ku bez podpory X serveru nebo nap°íklad
u distribuce Gentoo záleºí pouze na správné volb¥ USE ag· p°i instalaci.
3.9
Popis VideoLAN Server
Open source projekt, který umí vysílat do sít¥ mnoha r·znými zp·soby a z mnoha r·zných
zdroj·.
16
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
3.9.1 Zdroje
•
•
•
•
•
statické soubory na disku nebo n¥jakém médiu (ve formátu MPEG-1, MPEG-2, MPEG-4)
disky DVD v DVD mechanikách
digitální satelitní vysílání z DVB-S karet
digitální pozemní vysílání z DVB-T karet
p°ímé p°enosy z kamery nebo komprima£ní karty.
3.9.2 Výstupy
•
•
•
•
na konkrétní IP adresu unicast
na v²echny adresy v ur£ité síti broadcast
na v²echny po£íta£e, které se p°ihlásí k odb¥ru dané skupiny multicast
a to v²e jak ve variant¥ IPv4, tak v modern¥j²í IPv6.
Hardwarové nároky jsou p°ibliºn¥ Pentium 100 MHz a 32MB RAM pro vysílání jednoho televizního kanálu. Pokud jsou vysílány data ze soubor· na lokálním disku, tak je v¥t²ím omezením
£tecí rychlost disku a sí´ové p°ipojení.
VLS lze pouºívat jak ve verzi pro MS Windows, tak pro Linux. K dispozici jsou samoz°ejm¥
i zdrojové kódy.
Instala£ní binární i zdrojové balí£ky jsou ke staºení na adrese [6]. Linuxové distribuce obvykle
obsahují p°edp°ipravené instala£ní balí£ky (ov¥°eno pro Gentoo a Debian).
3.10
Kongurace VideoLAN Server
Tady budeme pot°ebovat znát PID tabulek PMT pro v²echny programy, coº bylo popsáno
ve zvlá²tní sekci.
Tyto údaje pot°ebujeme zkonvertovat do formátu kongura£ního souboru kanál· pro VLS
(.dvbrc). Tyto soubory obsahují na prvních °ádcích denici multiplexu a jeho parametr· viz.
tabulka 3.2. Kaºdý kanál má nastaveno jméno v parametru NAME a v SID identika£ní £íslo
toku s odpovídající tabulkou PMT.
Výsledek vypadá pro ƒeské radiokomunikace (CRA) nap°íklad takto:
LNB ID 1 TYPE 2
SAT ID 1 NAME "DVBT-Cra" LNBID 1 FMIN 150000000 FMAX 778000000
TRANSPONDER ID 1 SATID 1 TYPE 2 FREQ 506000000 BANDWIDTH 0 HP_RATE 2 \
LP_RATE 6 MODULATION 1 TRANSMISSION_MODE 1 GUARD_INTERVAL 2 HIERARCHY 0
CHANNEL ID 1 NAME "cra_ct1" SATID 1 TPID 1 SID 1 TYPE 0
CHANNEL ID 2 NAME "cra_ct2" SATID 1 TPID 1 SID 2 TYPE 0
CHANNEL ID 3 NAME "cra_ct24" SATID 1 TPID 1 SID 3 TYPE 0
CHANNEL ID 4 NAME "cra_nova" SATID 1 TPID 1 SID 4 TYPE 0
CHANNEL ID 5 NAME "cra_praha" SATID 1 TPID 1 SID 18 TYPE 0
CHANNEL ID 6 NAME "cra_vltava" SATID 1 TPID 1 SID 19 TYPE 0
CHANNEL ID 7 NAME "cra_ddur" SATID 1 TPID 1 SID 21 TYPE 0
CHANNEL ID 8 NAME "cra_leonardo" SATID 1 TPID 1 SID 22 TYPE 0
CHANNEL ID 9 NAME "cra_cesko" SATID 1 TPID 1 SID 23 TYPE 0
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
17
a pro Czech Digital Group (CDG) takto:
LNB ID 1 TYPE 2
SAT ID 1 NAME "DVBT-Cdg" LNBID 1 FMIN 150000000 FMAX 778000000
TRANSPONDER ID 0001 SATID 0001 TYPE 2 FREQ 674000000 BANDWIDTH 0 HP_RATE 2 \
LP_RATE 6 MODULATION 1 TRANSMISSION_MODE 1 GUARD_INTERVAL 2 HIERARCHY 0
CHANNEL ID 1 NAME "cdg_prima" SATID 1 TPID 1 SID 1 TYPE 0
CHANNEL ID 2 NAME "cdg_top" SATID 1 TPID 1 SID 2 TYPE 0
CHANNEL ID 3 NAME "cdg_nova" SATID 1 TPID 1 SID 3 TYPE 0
CHANNEL ID 4 NAME "cdg_ct2" SATID 1 TPID 1 SID 4 TYPE 0
CHANNEL ID 5 NAME "cdg_ct1" SATID 1 TPID 1 SID 5 TYPE 0
CHANNEL ID 6 NAME "cdg_cro2" SATID 1 TPID 1 SID 6 TYPE 0
CHANNEL ID 7 NAME "cdg_ct24" SATID 1 TPID 1 SID 7 TYPE 0
CHANNEL ID 8 NAME "cdg_cro1" SATID 1 TPID 1 SID 9 TYPE 0
CHANNEL ID 9 NAME "cdg_proglas" SATID 1 TPID 1 SID 11 TYPE 0
CHANNEL ID 10 NAME "cdg_e2" SATID 1 TPID 1 SID 19 TYPE 0
CHANNEL ID 11 NAME "cdg_expres" SATID 1 TPID 1 SID 22 TYPE 0
CHANNEL ID 12 NAME "cdg_classic" SATID 1 TPID 1 SID 23 TYPE 0
Tyto dva soubory pojmenujeme .dvbrc pro první DVB kartu a .dvbrc.1 pro druhou. Soubory
uloºíme do domovského adresá°e uºivatele, pod kterým budeme chtít VLS spou²t¥t. Pravd¥podobn¥ vytvo°íme speciálního neprivilegovaného uºivatele, nap°. vls s domovským adresá°em
/var/lib/vls.
Vlastní kongura£ní soubor VLS je obvykle /etc/videolan/vls.conf.
Na za£átku obsahuje spole£né nastavení, nap°. telnet rozhraní pro správu VLS po spu²t¥ní.
U této £ásti budou jist¥ sta£it komentá°e psané uvnit°.
#
# Nastavení aplikace
#
BEGIN "Vls"
LogFile
= "/var/log/vls"
ScreenLog
= "disable"
SystemLog
= "enable"
END
# log soubor
# logovat na obrazovku
# logovat do systémového logu
#
# Povolené p°íkazy pro telnetové uºivatele
#
BEGIN "Groups"
monitor
= "help|browse|logout"
master
= "help|browse|start|resume|suspend|stop \
|shutdown|logout|config|program|input|channel|show"
END
#
# Uºivatelé pro telnet
#
BEGIN "Users"
monitor
= "3BcKWoiQn0vi6:monitor"
master
= "JKg2TpPerilnw:master"
END
# heslo nastaveno na 'monitor'
# heslo nastaveno na 'bozo'
18
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
#
# Nastavení telnet rozhraní
#
BEGIN "Telnet"
Domain
= "Inet4"
LocalAddress = "127.0.0.1"
LocalPort
= "9999"
Use
= "true"
END
#
#
#
#
Inet4 nebo Inet6
Adresa lokálního rozhraní
Pouºitý port
Povolit telnet
Dále je obsaºena denice zdroj· dat a jejich kongurace.
#
# Zdroje tok· dat
#
BEGIN "Inputs"
dvb0
= "dvb"
dvb1
= "dvb"
END
#
# Konfigurace video vstup·
#
BEGIN "dvb0"
Frequency = "506000000"
DeviceNumber = "0"
SendMethod = "0"
IgnoreTimeout = "1"
TrickPlay = "normal"
END
BEGIN "dvb1"
Frequency = "674000000"
DeviceNumber = "1"
SendMethod = "0"
IgnoreTimeout = "1"
TrickPlay = "normal"
END
#
#
#
#
Video výstup z první DVB karty,
odpovídá .dvbrc souboru
Video výstup z druhé DVB karty,
odpovídá .dvbrc.1 souboru
#
#
#
#
#
#
Multiplex A CRA
Frekvence
Za°ízení /dev/dvb/adapter<i>
0 -- Posílat v²echny toky k danému programu,
1 -- posílat jen MPEG2 data
Ignorovat timeout
#
#
#
#
#
#
Multiplex B CDG
Frekvence
Za°ízení /dev/dvb/adapter<i>
0 -- Posílat v²echny toky k danému programu,
1 -- posílat jen MPEG2 data
Ignorovat timeout
Denice distribu£ních kanál·: v sekci Channels najdeme nejd°íve seznam distribu£ních kanál·
a dále pro kaºdý sekci s kongurací. Na ukázku jsou zobrazeny varianty jak pro pouºití IPv4,
tak IPv6.
#
# Seznam distribu£ních kanál·
#
BEGIN "Channels"
mcra_ct1
= "network"
mcra6_ct1
= "network"
...
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
19
END
#
# Konfigurace distribu£ních kanál·
#
BEGIN "mcra_ct1"
# Program CT1 z multiplexu CRA p°es IPv4
Type
= "multicast"
# Medota vysílání je multicast
TTL
= "1"
# Dosah vysílání je pouze po nejbliº²í
# router (pouze vnit°ní sí´)
DstHost = "239.194.12.1"
# Multicastova IP adresa,
# identifikátor multicast skupiny
DstPort = "1234"
# Port
Interface = "eth0"
# P°es které sí´ové rozhraní chceme posílat data
END
BEGIN "mcra6_ct1"
# Program CT1 z multiplexu CRA p°es IPv6
Domain
= "inet6"
# Typ IPv6
Type
= "multicast"
# Medota vysílání je multicast
TTL
= "1"
# Dosah vysílání je pouze po nejbliº²í
# router (pouze vnit°ní sí´)
DstHost = "ff08::701"
# Multicastova IP adresa,
# identifikátor multicast skupiny
# ff08 zna£í lokální multicast v ramci místní sít¥ a
# 701 je identifikátor skupiny
DstPort = "1234"
# Port
Interface = "eth0"
# P°es které sí´ové rozhraní chceme posílat data
END
...
A nakonec je²t¥ seznam p°íkaz· pro spou²t¥ní vysílání p°i startu VLS. Parametr rtp zaji²´uje
vysílání pomocí protokolu rtp, který obsahuje proti UDP navíc synchroniza£ní údaje, díky £emuº
lze vysílání p°ehrávat i MPlayerem.
#
# P°íkazy po spu²t¥ní
#
BEGIN "LaunchOnStartUp"
command0 = "start cra_ct1 mcra_ct1 dvb0 --rtp"
# Spu²t¥ní programu ƒT1 (v .dvbrc musí být p°esn¥ cra_ct1) ze zdroje dvb0
# p°es distribu£ní kanál mcra_ct1
command1 = "start cra_ct1 mcra6_ct1 dvb0 --rtp"
# Spu²t¥ní programu ƒT1 (v .dvbrc musí být p°esn¥ cra_ct1) ze zdroje dvb0
# p°es distribu£ní kanál mcra6_ct1
...
END
VLS je skv¥lý program pro serverové pouºití, nepot°ebuje gracké knihovny, jeho kongurace je
p°ehledná. Vývoj jde ale rychleji kup°edu v podobném projektu ze stejné dílny, který je zárove¬
jak klientským prohlíºe£em, tak streamovacím serverem. Tento produkt se jmenuje VideoLAN
Client, který bude popsán v po následující sekci.
20
3.11
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
MiniSAPserver
Op¥t open source projekt pro oznamování zm¥n ve skladb¥ vysílání pomocí protokolu SAP
(Session Announcement Protocol).
Uºivatelé mohou zvolit 2 p°ístupy. Bu¤ pouºijí staticky vygenerovaný soubor .m3u, který obsahuje seznam kanál·, které v síti vysíláme, ale p°i kaºdé zm¥n¥ musíme aktualizovat .m3u soubor
a uºivatelé si musí stáhnout aktuální verzi. Výhodou této varianty je okamºité na£tení playlistu
po startu p°ehráva£e.
Druhá moºnost je pouºít práv¥ SAP protokol (jak na stran¥ serveru tak klienta). V konguraci
serveru pro tento protokol je op¥t seznam kanál·, které vysíláme, ale pokaºdé, kdyº provedeme
zm¥nu, tak se tato zm¥na projeví ihned i v²em uºivatel·m, kte°í mají nastaveno pouºívání
playlistu získaného ze SAP protokolu. Bohuºel na£tení playlistu p°es SAP v klientu trvá i více
neº 30s.
SAP server periodicky vysílá aktuální playlist také pomocí multicast vysílání, podporuje jak
IPv4, tak IPv6 variantu.
MiniSAPserver lze provozovat pod opera£ním systémem Linux a Mac OS X.
Instalace je snadná, po staºení zdrojových kód· by m¥la sta£it obvyklá sekvence ./congure
&& make && make install. A moºná bude k dispozici i instala£ní balík p°ímo z distribuce.
Kongurace je celkem p°ímo£ará, v souboru /etc/sap.cfg má kaºdý kanál svou sekci viz. ukázka:
[program]
type=rtp
name=CRA CT1
user=Masarka
machine=zeus.mk.cvut.cz
playlist_group=Masarka
site=http://dvbgrab.mk.cvut.cz/stream
address=239.194.12.1
port=1234
program_ttl=32
program_ipversion=4
#
#
#
#
#
#
#
#
#
#
#
za£átek sekce
protokol vysílání RTP
název kanálu zobrazovaný uºivateli
jméno subjektu, který kanál vysílá
jméno serveru, ze kterého je kanál vysílán
sloºka, do které se daný kanál za°adí
stránky s informacemi o vysílání
IP adresa pro p°ihlá²ení kanálu
port, na který jsou posílána data
TimeToLive multicast paket·
pouºitá verze IP protokolu
Mini SAP Server je velmi snadno pouºitelný a pro uºivatele velmi pohodlný dopln¥k vysílání.
VLC má vysílání SAP informací dokonce zabudováno.
3.12
Popis VideoLAN Client
Dal²í projekt s otev°eným kódem, který podporuje mnoho platforem: Linux, Windows, Mac OS
X, BeOS, *BSD, Solaris, Familiar Linux, Yopy/Linupy and QNX. VLC nepracuje na Mac OS
9 a pravd¥podobn¥ ani nikdy nebude.
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
21
Umí p°ehrávat:
•
•
•
•
•
soubory z disk· a mechanik (formáty MPEG-1, MPEG-2, MPEG-4/DivX apod.)
DVD disky
VCD soubory
ze satelitních/pozemních karet digitálního vysílání DVB-S/DVB-T
z analogových karet p°es rozhraní v4l(video for linux)
Umí také vysílat stejn¥ jako VLS.
Instalace je velmi snadná. K dispozici jsou instala£ní balíky pro mnoho opera£ních systém·.
Kongurace klienta obecn¥ není pot°eba.
VLC je nejspolehliv¥j²ím p°ehráva£em pro p°ehrávání záznam· z DVBgrabu v prost°edí Microsoft Windows, protoºe je zaloºen na stejné implementaci kodek· FFmpeg/libavcodec jako komprima£ní nástroj mencoder.
Zvý²it pohodlí m·ºe vytvo°ení zástupce/skriptu, který p°i spu²t¥ní na£te námi pouºívaný statický playlist z .m3u souboru a zapne podporu získávání playlistu ze SAP událostí. Uºivatelé si
uloºí staticky playlist do svého domovského adresá°e jako .vlc.m3u a pak do denice Cíl v zástupci ve Windows resp. do n¥jakého startovacího skriptu v linuxu p°idají parametr -S sap pro
podporu SAP playlistu a nakonec p°idají cestu k uloºenému souboru .m3u. VLC pak po startu
hned obsahuje pouºitelný playlist ze souboru a po ur£ité prodlev¥ se doplní je²t¥ SAP playlist.
C:\Program Files\VideoLAN\vlc.exe -S sap %%HOMEPATH%%/.vlc.m3u
resp.
/usr/bin/vlc -S sap ~/.vlc.m3u
3.13
Kongurace VideoLAN Client pro pouºití na vysílání do sít¥
Aby nám na serveru, který nemusí obsahovat v·bec gracké prost°edí, necht¥l VLC vytvá°et
gracké okno aplikace, pouºíváme reºim provozu VideoLAN Manager (VLM). Ve²kerá kongurace je v jednom souboru, který uloºíme nap°íklad do /etc/videolan/vlm/vlm.cfg.
# Vytvo°ení nového zdroje dat
new CRA broadcast enabled
# Nastavíme typ zdroje na DVB
setup CRA input dvb:
# Nastavení DVB parametr· viz. tabulka.
setup CRA option dvb-adapter=0
setup CRA option dvb-frequency=506000000
setup CRA option dvb-bandwidth=8
setup CRA option dvb-transmission=8
setup CRA option dvb-guard=8
setup CRA option dvb-hierarchy=-1
setup CRA option dvb-modulation=64
22
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
# Chceme data nechávat v transport streamu a
# posílat je po jednotlivých programech
setup CRA option ts-es-id-pid
# Seznam identifika£ních £ísel program·, které nás zajímají
setup CRA option programs=1,2,3,4,5,10,11,12,13,14,15,16
# Nastavení výstup·
# Pouºijeme modul duplicate, který z multiplexu vybere toky
# odpovídající programu podle klauzule select a ty po²le i
# do modulu std, který je definován v klauzuli dst
# std modul nastavíme pro typ vysílání rtp, mux=ts znamená
# nekonvertovat, v url je multicastová IP a port
# sap zajistí vysílání SAP událostí pro daný program,
# group a name pak udávají, jak se bude program
# zobrazovat v klientu po povolení SAP playlistu
setup CRA output #duplicate
{
dst=std{access=rtp,mux=ts,url=239.194.12.1:1234, \
sap,group="Masarka-CRA",name="CT1"},select="program=1"
,dst=std{access=rtp,mux=ts,url=239.194.12.2:1234, \
sap,group="Masarka-CRA",name="CT2"},select="program=2"
,dst=std{access=rtp,mux=ts,url=239.194.12.3:1234, \
sap,group="Masarka-CRA",name="CT24"},select="program=3"
,dst=std{access=rtp,mux=ts,url=239.194.12.4:1234, \
sap,group="Masarka-CRA",name="CT4"},select="program=4"
,dst=std{access=rtp,mux=ts,url=239.194.12.5:1234, \
sap,group="Masarka-CRA",name="Nova"},select="program=5"
,dst=std{access=rtp,mux=ts,url=239.194.12.6:1234, \
sap,group="Masarka-CRA",name="CRO1"},select="program=10"
,dst=std{access=rtp,mux=ts,url=239.194.12.7:1234, \
sap,group="Masarka-CRA",name="CRO2"},select="program=11"
,dst=std{access=rtp,mux=ts,url=239.194.12.8:1234, \
sap,group="Masarka-CRA",name="CRO3"},select="program=12"
,dst=std{access=rtp,mux=ts,url=239.194.12.9:1234, \
sap,group="Masarka-CRA",name="CRO4"},select="program=13"
,dst=std{access=rtp,mux=ts,url=239.194.12.10:1234, \
sap,group="Masarka-CRA",name="Ddur"},select="program=14"
,dst=std{access=rtp,mux=ts,url=239.194.12.11:1234, \
sap,group="Masarka-CRA",name="Leonardo"},select="program=15"
,dst=std{access=rtp,mux=ts,url=239.194.12.12:1234, \
sap,group="Masarka-CRA",name="Cesko"},select="program=16"
}
Spou²t¥ní po startu zajistíme nap°íklad p°idáním spou²t¥cího skriptu do /etc/init.d/vlm, který
pouze na£te konguraci, nap°. z /etc/syscong/dvb:
VLM_CONFIG_FILE=/etc/videolan/vlm/vlm.cfg
VLM_LOG_FILE=/var/log/vlm.log
VLM_TELNET_PORT=7777
VLM_TELNET_PASSWORD=password
KAPITOLA 3. VYSÍLÁNÍ DO POƒÍTAƒOVÉ SÍT…
23
Pak spustí VLC v reºimu VLM (VideoLAN Manager) pouze s telnetovým rozhraním.
VLCSERVER=/usr/bin/vlc
daemon --user vlc "$VLCSERVER" -d -vvv --logfile $VLM_LOG_FILE --file-logging \
--vlm-conf $VLM_CONFIG_FILE --intf telnet --telnet-port $VLM_TELNET_PORT \
--telnet-password $VLM_TELNET_PASSWORD 2> /dev/null
Kontrolu, zda v²e správn¥ b¥ºí, m·ºeme provést p°ihlá²ením na telnet
p°íkazu
telnet server port a zadáním
show. Objeví se seznam zdroj· a jejich stav. Zadáním show název, zobrazíme podrobn¥j²í
údaje pro daný zdroj a pomocí
control název stop ho m·ºeme nap°íklad zastavit.
Nyní je, p°edpokládám, vid¥t rozdíl v jednoduchosti úprav kongurace VLS a VLC. Nap°íklad
p°idání nového televizního kanálu znamená ve VLC jeden nový °ádek, ve kterém nastavíme
select na zji²t¥né ID kanálu, zvolíme multicast IP adresu, skupinu a název pro SAP.
Zatímco u VLS p°idání jednoho kanálu znamená p°idání °ádku do odpovídajícího .dvbrc souboru. Odte¤ si musíme pamatovat, jaký název jsme mu p°i°adili. V souboru vls.conf p°idáme
nový distribu£ní kanál a zvolíme multicast adresu a port. Nyní uº si musíme pamatovat jak
název kanálu v .dvbrc, tak název distribu£ního kanálu ve vls.conf a IP adresu a port. To vyuºijeme p°i p°idávání p°íkazu na spu²t¥ní vysílání nového kanálu po startu VLS. A IP adresu
a port budeme je²t¥ jednou pot°ebovat p°i úprav¥ kongurace SAP serveru.
Ukázka kongura£ního souboru pro VLM v£etn¥ startovacího skriptu je v instala£ním balíku
DVBgrabu v podadresá°i service.
•
•
•
•
vlm je startovací skript sluºby do /etc/init.d/vlm
dvb je kongura£ní soubor sluºby do /etc/syscong/dvb
vlm.cfg je kongura£ní soubor pro VLC, standardn¥ do /etc/videolan/vlm/vlm.cfg
vlm.cfg.human.readable je stejný soubor jen dopln¥n o mezery a ukon£ení °ádk·, pro
vy²²í p°ehlednost, ale POZOR, mezery a konce °ádk· musí být p°ed pouºitím odstran¥ny.
3.14
MPlayer jako p°ehráva£ vysílané televize
MPlayer je dal²ím p°ehráva£em, který m·ºeme pouºít pro p°íjem vysílání z lokální sít¥. A zárove¬ je nejoblíben¥j²ím Linuxovým video p°ehráva£em. Podporuje velmi mnoho r·zných zdroj·
v mnoha formátech a samoz°ejm¥ také umí p°ijímat multicastové vysílání z lokální sít¥. Jedinou podmínkou je dodrºení protokolu vysílání rtp:// místo výchozího udp://. Neumí vyuºívat
playlist získávaný ze SAP protokolu, proto je pro pohodlné spou²t¥ní dobré vytvo°it spou²tecí
skript nebo spou²t¥cí skripty pro kaºdý televizní kanál zvlá²´.
Instalace je snadná, bu¤ pouºitím distribu£ního balíku, nebo op¥t kompilací zdrojových kód·
ze stránek [3].
Kongurace pomocí spou²t¥cích skript· m·ºe vypadat nap°íklad takto:
tv_nova.sh: mplayer -framedrop rtp://239.194.12.1:1234 pro p°íjem vysílání z multicastové
adresy 239.194.12.1. A skript pak pojmenujeme nap°íklad tv_nova.sh.
MPlayer je dobrý p°ehráva£, bohuºel nemá tak jednoduché a p°ehledné gracké prost°edí jako
VLC a nepodporuje SAP playlist.
24
KAPITOLA 4. PÍJEM MULTICASTOVÉHO VYSÍLÁNÍ Z VN…J’Í SÍT…
4 P°íjem multicastového vysílání z vn¥j²í sít¥
Na Internetu je dostupných i mnoho dal²ích televizních kanál·, které jsou vysílány pro ve°ejnost. P°íjem je ale problematický, protoºe musí být zaru£eno sm¥rování multicastu z ve°ejného
Internetu aº do na²í sít¥. Je t°eba vy°e²it kompatibilitu multicastových démon· na routerech
zaloºených na Linuxu s Cisco routery tak, aby v na²í síti a v síti poskytovatele p°ipojení byla
na kaºdém sousedním routeru spu²t¥na sluºba pro sm¥rování multicast dat. P°ípadn¥ lze vytvo°it tunel, kterým jsou n¥které multicastové skupiny vysílány jako klasické unicast pakety.
Sm¥rování multicast paket· a správu skupin obvykle poskytuje pim démon na cisco routerech,
na linuxových pak nap°íklad pimd nebo mrouted.
Pro opera£ní systém Linux se nej£ast¥ji pouºívají dva multicastové sm¥rovací démony pimd
a mrouted. Bohuºel se uº nevyvíjí a jejich sou£asné verze rozhodn¥ nejsou dokonalé.
4.1
pimd
Poslední verze, která se pouºívá, je alpha verze z roku 1999. Podporuje sm¥rovací protokol
DVMRP a MOSPF. Hodí se pro více vyuºité multicastové skupiny nebo pro sít¥ s velkým
p°enosovým pásmem.
Pokud jsou skupiny vyuºívané z°ídka, tak toto schéma p°estává být efektivní. Proto vznikla
odnoº pim démona:
PIM-SM
Pim démon v sparse módu. Udrºuje tabulku odb¥ratel· a zdroj· ur£ité skupiny a podle toho
vytvá°í distribu£ní stromy. Ko°en distribu£ních strom· se nazývá Rendezvous Point.
Implementace pim démona s otev°eným kódem
•
•
•
•
•
Pimd USC site zastaralý, samostatný PIM-SM, úprava jádra systému
PIM-SM GateD zastaralý, implementace od ISI
PIM-DM GateD implementace z Oregonské univerzity
Pimd-dense samostatná implementace z Oregonské univerzity
PIM-SM implementace z XORP projektu (implementace software sm¥rova£· s otev°eným kódem).
Více viz [5].
4.2
mrouted
Poslední pouºívaná verze je beta z roku 1999. Mrouted implementuje také DVMRP sm¥rovací
protokol. Podporuje také tunely skrz sm¥rova£e, které nepodporují multicast. Více viz [4].
KAPITOLA 5. TESTOVÁNÍ
25
5 Testování
V rámci p°edm¥tu Styk £lov¥ka s po£íta£em jsem provedl i test tohoto systému.
Kdyº byl systém provozován p°ibliºn¥ rok na Masarykov¥ koleji ƒVUT a m¥l registrováno cca
120 uºivatel·, tak jsem rozeslal v²em registrovaným neformální ºádost. šádost byla prvním
krokem, cht¥l jsem získat p°ehled, jaké se vyskytují chyby a nejasnosti v uºivatelském rozhraní.
Systém je koncipovaný p°eváºn¥ pro studentské prost°edí, proto nebylo do testu za°azeno více
osob ani osoby, které systém nikdy nepouºily (zdrojem e-mailových adres, na které byla rozesílána ºádost, byla práv¥ databáze uºivatel· DVBgrabu.
Na e-mail odpov¥d¥lo sice pouze asi 10 osob, p°esto byla nalezena n¥která vhodná vylep²ení.
5.1
P°ipomínky a reakce
P°ipomínka: V²echny díly seriálu by m¥lo být moºno objednat jedním tla£ítkem.
Reakce:
Nyní je moºnost vyhledat v televizním programu podle názvu, takºe v²echny díly
daného seriálu lze nalézt podle zadané £ásti názvu a pak objednat snadno a rychle p°ímo ze seznamu výsledk· hledání. To je univerzáln¥j²í, a navíc není pot°eba z programu detekovat, co
je a co není seriál a také není t°eba zaznamenávat tyto seriálové poºadavky mimo rozsah programu, který známe p°edem. Kdyº objednám seriál, který má 4 díly v programu, který uº je
na£ten, a dal²í 4 v programu, který se na£te aº p°i p°í²tí aktualizaci, tak bych musel udrºovat
dal²í tabulku dlouhodobých poºadavk·.
P°ipomínka: Odkazy na nahrané po°ady uve°ej¬ovat po p°ihlá²ení p°ímo na stránkách.
Reakce: Odkaz se p·vodn¥ pouze odeslal po nahrání na e-maily uºivatel·, kte°í si to objednali.
Pokud e-mail smaºou a odkaz si neuloºí, tak nemají moºnost se k záznamu dostat (kontrola IP
adresy uºivatele a generovaná £ást názvu po°adu). Tato p°ipomínka byla nakonec implementována, protoºe zna£n¥ zjednodu²ila pouºití systému. Seznam nahraných po°ad· pro jednotlivé
uºivatele jiº byl na webu k dispozici, tak byl pouze dopln¥n o odkazy na jejich staºení. Také
uºivatelské adresá°e jsou nyní zakládány s volbou na generování index· (sta£í zadat správný
adresá°, a pokud uºivatel má právo p°ístupu podle IP adresy, tak je mu vypsán i jeho obsah).
P°ipomínka:
Uºivatelé si ob£as neuv¥domují, ºe zadání správného e-mailu je podmínkou pro
pouºití systému. P°i registraci zadají n¥jakou hloupost a pak marn¥ £ekají, jak se dozví o úsp¥²ném nahrání po°adu.
Reakce:
Tady by mohlo sta£it výrazn¥j²í varování v registra£ním formulá°i, protoºe bohuºel
souhrnné informace o tom, jak to celé funguje (p·l strany textu na úvodní stránce), asi nikdo
ne£etl.
P°ipomínka:
Jeden £lov¥k si st¥ºoval, ºe mu na webu vadí seznam nahrávek v²ech uºivatel·
a p°ihlá²eného uºivatele. Prý by to m¥lo pat°it do administrativní £ásti webu.
Reakce:
S tím nesouhlasím, protoºe pokud n¥jaký po°ad nestihnu objednat, tak m·ºu zkon-
taktovat (e-mail, icq, jabber) osobu ze seznamu, která si jej objednala a zkusit se s ní domluvit
26
KAPITOLA 5. TESTOVÁNÍ
na zp°ístupn¥ní.
P°ipomínka: Stejnému £lov¥ku se zdálo, ºe hlavní stránka a ²est podstránek je zahlcení uºivatele.
Reakce:
S tím také nesouhlasím, protoºe já jako uºivatel a spousta dal²ích tyto podstránky
pouºívá, nap°íklad seznam uºivatelem nahraných po°ad· získá s dopln¥ním odkaz· na jejich
staºení dal²í velký význam. Dal²í výhodou zobrazovaného seznamu je lep²í p°ehled uºivatele,
protoºe po£et objednaných nahrávek za m¥síc je omezen.
P°ipomínka: Lep²í vysv¥tlení, co znamená nagrabovat
Reakce:
a nagrabovat do TS.
V úvodních informacích bylo napsáno, ºe po vybrání po°adu se objedná nahrávka
s komprimací do MPEG-4. Pokud uºivatel chce provád¥t na nahrávce dal²í úpravy, je pro n¥j výhodn¥j²í nahrávku nekomprimovat a zanechat ve formátu MPEG2-TS. Protoºe není na stránce
se seznamem po°ad· moc místa, tak je uveden pouze odkaz nagrabovat a po potvrzení dialogu Doopravdy chcete nahrát po°ad abc? se odkaz zm¥ní na zru²it grab a vedle se zobrazí
do TS, £ímº se zru²í objednávka bu¤ úpln¥ nebo se zru²í její komprimace (vyuºitelné pro cca
5% uºivatel·). Navrhované °e²ení bylo nahradit jednoduchý potvrzovací dialog s ANO, NE
kompletní novou podstránkou s formulá°em, který by zobrazoval detail zvoleného po°adu a obsahoval i popis, co je MPEG-4 a MPEG-TS a jak se o nahrání uºivatel dozví. Na formulá°i by
pak mohla být tla£ítka Zru² grab, Grabuj do MPEG-4, Grabuj do MPEG-TS a Storno.
Toto by sice bylo moºné, ale na p·vodním zp·sobu jsem oce¬oval rychlost pouºití. Klik na název
po°adu, enter na klávesnici pro výchozí volbu ANO a uº bylo objednáno. Takhle bude velmi
zdrºující £ekat neº se zobrazí formulá° se spoustou opakujících se informací (popis formát·, zp·sob doru£ení odkazu pro staºení), zvolit správné tla£ítko a po£kat na op¥tovné vykreslení celého
televizního programu. Celý systém se nakonec vy°e²il volbou preferované komprese v nastavení
uºivatelského prolu. Televizní program te¤ obsahuje pouze odkazy pro objednání a zru²ení.
P°ipomínka: Jeden uºivatel si také st¥ºoval na nemoºnost zm¥nit si dodate£n¥ e-mail adresu.
Reakce: Tato moºnost tam je schována
v menu nastavení. Bohuºel m¥ nenapadá výstiºn¥j²í
název pro podstránku, na níº se nastavují parametry uºivatelského ú£tu.
5.2
Vyhodnocení implementovaných p°ipomínek anketa
Pro zji²t¥ní, jak uºivatelé hodnotí provedené zm¥ny a n¥které pouze navrhované, jsem op¥t
rozeslal na seznam registrovaných £len· e-mail s ºádostí o vypln¥ní krátké ankety, kterou jsem
za£lenil do webového rozhraní DVBgrabu. Kaºdá odpov¥d se skládala z £íselného ohodnocení
1=Rozhodn¥ ANO aº 5=Rozhodn¥ NE a textového komentá°e. V anket¥ sv·j názor vyjád°ilo
p°ibliºn¥ 50 uºivatel·.
KAPITOLA 5. TESTOVÁNÍ
27
Anketa dopadla takto:
Otázka:
Odkazy na staºení grab· budou nyní dostupné p°ímo z menu Moje graby. Je tato
vlastnost pro Vás p°ínosná?
Odpov¥di:
V²ichni novou moºnost uvítali, pouze 2 ohodnotili spí²e ano, z toho jeden byl
v¥£ným nespokojencem.
Otázka: Nyní m·ºete objednávat seriály p°es vyhledání v TV programu a v seznamu výsledk·
rychlým klikáním na jednotlivé díly. Cht¥li byste mít i moºnost objednat v²echny díly seriálu
jedním tla£ítkem, které by ale dost problematicky poznávalo, co je a co není seriál, a také by
muselo sloºit¥ °esit objednávání seriál· na dobu del²í, neº na jakou se na£ítá TV program.
Pot°ebujete tuto funk£nost?
Odpov¥di: Op¥t se v¥t²ina shodla na ohodnocení spí²e ne a nevím, jen v¥£ný nespokojenec
by poºadoval i tuto funkci.
Otázka:
Je ze sou£asných text· uº z°ejmé, ºe správný e-mail je podmínkou pouºitelnosti
DVBgrabu?
Odpov¥di:
V²ichni potvrdili, ºe situace uº je napravena. V¥£n¥ nespokojený op¥t dopl¬uje,
ºe s odkazy na graby z menu je uº e-mail jenom dopl¬kovou podmínkou.
Otázka: Je ze sou£asných text· uº z°ejmé, co myslím MPEG-4 a transport stream TS a co je
výchozí volbou p°i grabování?
Odpov¥di:
Vyhodnocení je sporné, ale spí²e pozitivní reakce, sou£ástí komentá°· byly i dva
pouºitelné nápady na vylep²ení.
Otázka:
P°íjdou Vám menu seznam mých, plánovaných, hotových grab· zbyte£ná nebo je
ob£as rádi vyuºíváte? Takºe tyto menu zachovat nebo ne?
Odpov¥di:
V²ichni dotázaní poºadují zachování, jen v¥£n¥ nespokojený p°idává, ºe je nepo-
t°ebuje.
Otázka: V²imli jste si v menu volby Nastavení
a hodila se Vám?
Odpov¥di: Op¥t pozitivní odezva.
Otázka: Chybí Vám tu n¥jaká funkce? P°ípadn¥ do komentá°e napi²te jaká.
Odpov¥di: Nikdo nic nepostrádal.
Otázka: Libovolný vzkaz tv·rci DVBgrabu, nám¥ty na vylep²ení atd.
Odpov¥di: Pár slov chvály a n¥kolik neuskute£nitelných návrh·.
28
5.3
KAPITOLA 5. TESTOVÁNÍ
Vyhodnocení ankety
Uºivatelé byli dotazování na konkrétní body a konkrétní funkce, protoºe moºnost vyjád°it se
k systému jako celku m¥li v prvním kole e-mail·. Také se projevil prol testované osoby v¥£ný
nespokojenec, který nebyl spokojen vcelku s ni£ím, ale vzhledem k tomu, ºe svým názorem
zna£n¥ vy£níval mimo pr·m¥r, mohl být jeho názor brán jako neobjektivní.
5.4
Záv¥r z testování
I p°es ú£ast pouze n¥kolika málo uºivatel· se poda°ilo dát dohromady n¥kolik návrh·, které mohou daný systém zlep²it, zp°ehlednit a urychlit. I tato jednoduchá forma testování se rozhodn¥
vyplatila. Tato metoda vyºadovala minimální úsilí navíc. Také bylo objeveno n¥kolik drobných
chyb v programu.
Kdyby byl test proveden na r·znorodém vzorku uºivatel· (nejenom studenti technické ²koly),
mohly se objevit i úpln¥ jiné problémy, ale toto jsem netestoval, protoºe v dob¥ testu jsem
nehodlal uve°ejnit systém i pro jiné cílové skupiny uºivatel·.
KAPITOLA 6. ZÁV…R
29
6 Záv¥r
Aplikace DVBgrab je v sou£asné dob¥ úsp¥²n¥ pouºívána v minimáln¥ 5 instalacích p°eváºn¥
na kolejích ƒVUT.
Za ú£elem zaji²t¥ní jejího dal²ího zlep²ování jsem ji zaregistroval na portálu opensource projekt·
http://sourceforge.net, kde byla komisí p°ijata a tak je od 8. prosince 2006 dostupná její instalace
ze stránek http://dvbgrab.sourceforge.net. Na servery sourceforge byl také p°esunut vývojový
repozitá° pro verzovací systém subversion.
V budoucnu by se dalo implementovat navrhované vyst°ihování reklamy a získávání televizního
programu p°ímo z MPEG-2 signálu, místo komplikovaného na£ítání z webových zdroj·.
30
KAPITOLA 6. ZÁV…R
KAPITOLA 7. LITERATURA
31
7 Literatura
[1] Informa£ní stránky o dvb vysílání v ƒeské republice.
[2] Stránky projektu linuxtv.
http://www.digitalnitelevize.cz.
http://www.linuxtv.org.
[3] Stránky projektu mplayer.
http://www.mplayerhq.hu.
[4] Stránky projektu mrouted.
http://freshmeat.net/projects/mrouted.
[5] Stránky projektu pimd usc.
[6] Stránky projektu videolan.
[7] Stránky projektu xmltv.
[8] Stránky sdruºení xiph.
http://netweb.usc.edu/pim.
http://www.videolan.org.
http://xmltv.org/wiki/.
http://www.xiph.org/.
32
KAPITOLA 7. LITERATURA
DODATEK A.
INSTALACE A ÚDRšBA
33
A Instalace a údrºba
Aplikace lze provozovat jako 2 odd¥lené celky, kterým m·ºeme °íkat frontend a backend.
A.1
Frontend
Je rozhraní mezi aplikací a uºivatelem, v tomto p°ípad¥ tedy webová aplikace b¥ºící na Apache
serveru s PHP modulem. Na stejném serveru m·ºe b¥ºet i databáze.
A.2
Backend
Je ta £ást aplikace, která b¥ºí na pozadí a zaji²´uje vlastní vyhotovování nahrávek. Ze serveru,
kde b¥ºí backend, se také poté distribuují výsledky. Pokud bychom nem¥li dostatek místa, je
moºné aplikaci dále rozd¥lit na dal²í server, který by se staral o distribuci a nahrávky by se
po uloºení ukládaly na distribu£ní server t°eba pomocí NFS sdílení. Naopak pokud budeme
chtít, m·ºe b¥ºet backend na stejném serveru jako frontend.
Obrázek A.1: Komponenty DVBgrabu
34
DODATEK A.
A.3
INSTALACE A ÚDRšBA
Pot°ebné knihovny a pomocné programy
A.3.1 Apache
Apache jako webový server budeme pot°ebovat jak na backend tak na frontend serveru.
Minimáln¥ pro backend server je dobré pouºít bu¤ verzi 1.x nebo aº 2.2, protoºe verze 2.0 m¥la
problémy se soubory v¥t²ími nez 2GB, které jako graby £asto vznikají.
A.3.2 PHP
Na webovém serveru je pot°eba modul do apache. Na záznamovém sta£í PHP interpret p°ístupný
z p°íkazového °ádku. Obvykle instalace obsahuje oba. Aplikace byla otestována jak na PHP verze
4 tak 5. V PHP musí být povoleny n¥které roz²í°ení, viz. dále.
A.3.3 php-pear-Log
Logovací systém, obdoba log4j pro Javu. Je pot°eba na obou serverech a jsou p°es n¥j zapisovány
ve²keré záznamy do logovacích soubor·. Logovací soubory se pouºívají 4 a jsou v podadresá°i
log.
•
•
•
•
dvbgrab.log obecné hlá²ky systému
dvbgrab.log.sql ve²kerý SQL kód, který je volán
dvbgrab.log.sys ve²keré p°íkazy opera£ního systému, které jsou volány z PHP
dvbgrab.log.clean logování výstupu z údrºbového skriptu.
Logování SQL a systémových p°íkaz· m·ºe generovat pom¥rn¥ velké logy, proto by m¥lo být
po odlad¥ní aplikace vypnuto v dolib.inc.php.
A.3.4 php-json
Podpora pro JSON (JavaScript Object Notation) do PHP. JSON je pouºit pro dotazy na detail
televizního po°adu nebo grabu v seznamu grab·. Je to alternativní notace, která je vrácena
na volání XMLHttpRequestu z javascriptu. Toto roz²í°ení usnad¬uje generování JSON odpov¥di
ve skriptu, který z databáze detail na£ítá a zpracování p°ijaté odpov¥di ve webové stránce.
A.3.5 php-adodb
Knihovna pro abstraktní p°ístup k r·zným databázím. V²echna volání do databáze p°ekládá
ze své syntaxe do syntaxe pouºitého databázového stroje.
DODATEK A.
INSTALACE A ÚDRšBA
35
A.3.6 XMLTV
Pokud chcete pouºít XMLTV modul pro na£ítání televizního programu, bude pot°eba nainstalovat tento balík. Bu¤ v n¥m p°ímo najdete stahovací skript pro poºadované programy, nebo se
bude hodit alespo¬ skript tv_sort.
A.3.7 Databáze
DVBgrab by m¥l fungovat s libovolnou databází, která je podporována v ADOdb. Otestovaný
je na PostgreSQL a MySQL, také skripty pro zaloºení databáze jsou p°ipraveny v syntaxi
pro MySQL a PostgreSQL.
A.4
Staºení DVBgrabu
DVBgrab je dostupný na na sourceforge.net. K dispozici jsou jak jednotlivé uve°ejn¥né verze,
tak £tení z vývojového repozitá°e subversion.
Odkaz na jednotlivé verze naleznete na stránkách projektu http://dvbgrab.sourceforge.net/.
Pro export z repozitá°e subversion pouºijte následující:
Star²í verze
dvbgrab-1.0
svn export --username anonymous \
https://dvbgrab.svn.sourceforge.net/svnroot/dvbgrab/tags/dvbgrab-1.0 dvbgrab
Aktuální verze
dvbgrab-2.0
svn export --username anonymous \
https://dvbgrab.svn.sourceforge.net/svnroot/dvbgrab/tags/dvbgrab-2.0 dvbgrab
Vývojová verze
svn export --username anonymous \
https://dvbgrab.svn.sourceforge.net/svnroot/dvbgrab/trunk dvbgrab
A.5
Zaloºení databáze
V podadresá°i sql jsou p°ipraveny skripty convert.sh, mysql.sql, postgres.sql, data.sql.
• convert.sh
je pro konverzi databázových dat z dvbgrab-1.0 na dvbgrab-2.0, p°esto
tato konverze není doporu£ena a je bezpe£n¥j²í p°evést pouze uºivatelské ú£ty. Ob¥ verze
DVBgrabu nechat spu²t¥né n¥jakou dobu paraleln¥ (starý DVBgrab nechat dostupný
t°eba pod jiným názvem) a aktuální poºadavky nechat vy°e²it v p·vodní verzi a aº budou
zpracovány, tak starou verzi zru²it a ponechat pouze novou
• mysql.sql
zaloºí v²echny pot°ebné tabulky pro DVBgrab na MySQL
36
DODATEK A.
• postgres.sql zaloºí v²echny pot°ebné tabulky pro DVBgrab
• data.sql do tabulek vloºí n¥kolik výchozích záznam·.
INSTALACE A ÚDRšBA
na PostgreSQL
Do tabulky param vloºí datum poslední aktualizace uºivatelských ú£t· (n¥kdy v minulosti).
Do tabulky tvgrabber p°idá dva záznamy skript· na stahování televizního programu. Tyto záznamy lze dále upravovat p°es webové kongura£ní rozhraní, ale m·ºeme je upravit jiº tady.
Minimáln¥ by bylo dobré zvolit n¥jaké náhodné £asy spou²t¥ní v cronu, aby se v²echny instalace DVBgrabu nep°ipojovaly na servery s programem sou£asn¥. Do tabulky encoder p°idá p¥t
záznam·, jeden pro MPEG-2 a £ty°i pro MPEG-4 s r·zn¥ velkým rozli²ením záznamu.
Pak do channel p°idá televizní kanály (ƒT1, ƒT2, Nova, Prima). Zde je dobré zkontrolovat IP
adresy a porty, ze kterých má systém dané kanály ukládat a také se ujistit, ºe p°ípadný xmltv
modul pouºívá stejné ID kanálu jako je v této tabulce. Pokud p°idáváme nový kanál, tak ur£íme
také název souboru s logem a logo uloºíme do adresá°e images.
Nakonec do tabulky news m·ºeme p°idat n¥kolik zpráv uºivatel·m, které se budou zobrazovat
ve webovém rozhraní v sekci novinky.
A.6
Kongurace DVBgrabu
Staºený adresá° uloºíme na webový server do zvolené cesty (nap°: /var/www/dvbgrab). U webového serveru apache m·ºeme nastavit virtuální server, který pak adresá° s DVBgrabem uve°ejní
pod jinou URL, neº je název serveru, takºe t°eba http://dvbgrab.domena.cz.
Jako výchozí pouºijeme distribu£ní kongura£ní soubor cong.php.dist, který p°ekopírujeme
jako cong.php. Zkontrolujeme, ºe odkaz ADOdb ukazuje na knihovnu php-adodb, p°ípadn¥
upravíme cíl odkazu, aby odpovídal umíst¥ní na²í ADOdb (podle distribuce).
Chceme-li pouºít webové kongura£ní rozhraní, je t°eba nastavit právo na zápis i pro uºivatele, pod kterým b¥ºí webový server. To m·ºeme zajistit spu²t¥ním skriptu congure.sh.
Nyní jiº m·ºeme za£ít pouºívat administra£ní rozhraní, které by m¥lo být dostupné na URL
http://dvbgrab.domena.cz/setup.php. P°ípadn¥ m·ºeme v²e nastavit p°ímo editací souboru
cong.php.
Podrobn¥j²í popis jednotlivých voleb kongura£ního souboru:
• db_name Ur£uje název databáze, kterou jsme pro DVBgrab zaloºili.
• db_type Ur£uje typ databázového serveru, jeden z (access, ado, ado_access,
ado_ms-
sql, db2, odbc_db2, vfp, fbsql, ibase, rebird, borland_ibase, informix, informix72,
ldap, mssql, mssqlpo, mysql, mysqlt, maxsql, oci8, oci805, oci8po, odbc, odbc_mssql,
odbc_oracle, odbtp, odbtp_unicode, netezza. pdo, postgres, postgres64, postgres7, postgres8, sapdb, sqlanywhere, sqlite, sqlitepo, sybase, sybase_ase).
•
•
•
•
db_host Jméno po£íta£e, na kterém b¥ºí databáze.
db_user Jméno databázového uºivatele.
db_pass Heslo pro p°ístup do databáze.
auth_db_used Ur£uje, zda uºivatelé budou mít moºnost pouºívat heslo z n¥jaké jiné
externí databáze. To znamená, ºe pokud máme t°eba databázi uºivatel· lokální sít¥ a v ní
jiº hesla pro n¥jaké jiné sluºby, tak m·ºeme ov¥°ovat uºivatele tam.
DODATEK A.
INSTALACE A ÚDRšBA
37
Registrace poté ov¥°í, zda takový uºivatel existuje v externí databázi. Pokud existuje,
musí zadat stejné heslo, jako má uºivatel zvoleného jména v externí databázi. Pokud
zadá správné, m·ºe být zaregistrován a v databázi DVBgrabu je pak místo jeho hesla
uloºeno pouze slovo extern, které zna£í, ºe uºivatel vyuºívá externí heslo. Pokud heslo
neodpovídá externí databázi, je registrace zamítnuta. Pokud uºivatel s daným jménem
v externí databázi neexistuje, registrace m·ºe být provedena a heslo se ukládá do databáze
DVBgrabu. Hodnota 1 znamená pouºívat externí databázi, hodnota 0 nepouºívat.
Pro uºivatele s externím heslem také platí omezení, ºe nelze p°es DVBgrab m¥nit heslo
a ani si poslat nov¥ vygenerované v p°ípad¥ jeho zapomenutí (to by m¥ly °e²it systémy
nad externí databází).
• auth_db_used_only
Ur£uje, zda se mohou zaregistrovat a pouºívat DVBgrab i jiní
uºivatelé, neº ti s externím heslem. Tím m·ºeme omezit DVBgrab jen na uºivatele, kte°í
jsou registrováni v na²í externí databázi (t°eba pouze registrovaní uºivatelé lokální sít¥).
Hodnota 1 znamená pouze ti s externím heslem, hodnota 0 i jiní.
• auth_db_name Název externí databáze v databázovém stroji.
• auth_db_type Typ databáze pro externí ov¥°ování, m·ºe nabývat
stejných hodnot
jako db_type.
•
•
•
•
auth_db_host Jméno po£íta£e, na kterém b¥ºí databáze externího ov¥°ování.
auth_db_user Jméno databázového uºivatele s p°ístupem do externí databáze.
auth_db_pass Heslo tohoto uºivatele pro p°ístup do databáze.
auth_db_select SQL dotaz na ov¥°ení hesla uºivatele, v tomto °et¥zci se nahradí
dva textové °et¥zce dvbgrab_username je nahrazeno zadaným uºivatelským jménem
a dvbgrab_password je md5 zadaného hesla. Pokud tento select vrátí alespo¬ jeden °ádek,
uºivatelské jméno a heslo je p°ijato.
• auth_db_user_select
SQL dotaz na uºivatele, jestli existuje v externí databázi.
V tomto °et¥zci se nahradí pouze dvbgrab_username. Pokud se vrátí alespo¬ jeden °ádek,
uºivatel v externí databázi existuje. Vrácené °ádky by m¥ly mít strukturu uºivatelské
jméno, heslo v MD5, uºivatelský e-mail, ip adresa. Pokud n¥jaké sloupce nem·ºeme podle
externí databáze ur£it, vrátíme v odpovídajícím sloupci NULL.
• error_status
Mnoºství informací o vzniklé chyb¥:
0 Kaºdá chyba je vypsána do stránky.
1 Kaºdá chyba je odeslána na chybový e-mail.
2 Kaºdá chyba je ignorována. Toto je výchozí nastavení.
• error_email E-mail, kam budou odesílány informace o chybách webového rozhraní.
• admin_email E-mail, kam budou odesílány informace o chybách v grabovacím systému
a ze kterého budou e-maily chodit uºivatel·m.
• report_email E-mail, kam bodou odesílány souhrné informace o vyuºití systému.
• proxy_server IP adresa HTTP proxy serveru, pokud musí být pouºit pro p°ístup
k vn¥j²ím www stránkám (pro stahova£e televizního programu).
•
•
•
•
proxy_port Port pro HTTP proxy.
grab_history Kolik dn· se mají uchovávat nagrabované po°ady pro staºení.
tv_days Na kolik dn· dop°edu se má na£ítat televizní program.
midnight Kterou hodinu budeme povaºovat za p·lnoc p°i rozd¥lování po°ad·
do jed-
notlivých dn·. (Televizní den potom chápeme nap°íklad od ²esté hodiny ranní do ²esté
hodiny dal²í den.
• hour_frac_item Do jak velikých úsek· budeme seskupovat seznam po°ad·. 24 by m¥lo
být d¥litelné hodnotou beze zbytku. To umoº¬uje vertikální zarovnavaní v²ech televizních
kanál·.
• grab_quota
Kolik grab· m·ºe zadat uºivatel týdn¥.
38
DODATEK A.
INSTALACE A ÚDRšBA
• user_inactivity_limit Po kolika dnech neaktivity bude uºivatelský ú£et zru²en.
• dvbgrab_log Do jakého souboru se mají ukládat informace o pr·b¥hu grabování.
• grab_date_start_shift O kolik minut se má posunout za£átek nahrávání po°adu,
proti plánovanému za£átku televizního po°adu.
• grab_date_stop_shift O kolik minut se má posunout konec nahrávání po°adu, proti
plánovanému konci televizního po°adu.
• record_time_after_last
Jak dlouho nahrávat zvolený po°ad, pokud neznáme násle-
dující (t°eba poslední po°ad v noci má následující aº druhý den ráno). Zadáváme v sekundách.
• hostname Název po£íta£e, ze kterého distribuujeme hotové nahrávky. P°ípadn¥ to m·ºe
být i celá úvodní £ást URL (pokud nemáme virtuální host v apache nastaven do uºivatelského adresá°e). Nekon£í lomítkem, takºe nap°: http://grab.domena.
• grab_storage
Adresá°, do kterého se budou nahrávat po°ady. Je to sdílený adresá°
v²ech uºivatel·. Nekon£í lomítkem.
• grab_storage_size
Kolik GB prostoru máme vyhrazeno pro nahrané po°ady. (Ome-
zení velikosti pro adresá° grab_storage).
• grab_storage_min_size
Minimální mnoºství volného místa na grabovacím disku,
p°i kterém za£neme promazávat star²í graby.
• grab_root
Adresá°, kam se budou ukládat odkazy na hotové po°ady. Musí být p°í-
stupný pro http server. V tomto adresá°i se budou zakládat uºivatelské adresá°e. Nekon£í
lomítkem.
• grab_backend_lang
Jazyk pouºívaný v backend skriptech (cz, sk, en, fr, ..). Tento
se pouºije pouze v p°ípad¥, ºe se zpráva posílá správci DVBgrabu nebo uºivateli, který
nemá jest¥ uloºen sv·j naposledy pouºitý jazyk.
• grab_backend_strip_diacritics P°íznak, zda se má z nahraných soubor· odstra¬ovat diakritika, nebo jestli sou£ástí názvu nahrávky je pouze ID £íslo záznamu. Diakritika
na n¥kterých souborových systémech nemusí být podporována nebo nastavena na UTF-8,
ve kterém máme názvy po°ad·. Proto se pouºívá odstran¥ní diakritiky, které ale nelze vy°esit úpln¥ univerzáln¥ pro v²echny znaky z UTF-8. Pro £e²tinu funguje dob°e, v £ín²tin¥
by bylo lep²í pouºít jen ID. Název po°adu v£etn¥ diakritiky pak máme v p°idruºeném,
popisném XML souboru. Hodnota 0 ur£uje pouºití ID, hodnota 1 název po°adu.
V poslední £ásti je denice stahova£· televizního programu. P°eddenované m·ºeme povolovat
nebo zakazovat. Také m·ºeme denovat nový. Kaºdý stahova£ má 3 d·leºité parametry:
• tvg_name Jméno stahova£e.
• tvg_cron_time ƒas naplánovaného
spou²t¥ní pomocí cron démona. Zadává se p°ímo
syntaxe cronu, tzn. 5 £ísel udávajících v po°adí minutu, hodinu, den v m¥síci, m¥síc, den
v týdnu. Místo £ísla m·ºeme pouºít bu¤ hv¥zdi£ku (zna£í, ºe na daném údaji nezáleºí)
nebo */N, kde N ur£uje násobek jednotky, ve které se p°íkaz má spoust¥t (*/5 u minut
znamená kaºdý celý násobek 5 minut). Hodnota 0 23 * * 6 potom znamená, ºe se stahova£
má spou²t¥t kaºdou sobotu, v 23:00. Tyto údaje volíme nejlépe na n¥jakou no£ní dobu,
kdy servery poskytovatele nebudou tolik zatíºeny. Také se je snaºíme volit pokud moºno
náhodn¥, aby se minimalizovala pravd¥podobnost, ºe v²echny instalace DVBgrabu stahují
ze stejných server· ve stejný okamºik.
• tvg_cron_cmd
P°íkaz, který má cron démon spou²t¥t. Obvykle bude za£ínat nasta-
vením pracovního adresá°e ke stahovacím skript·m, aby stahovací skripty mohli na£ítat
pomocné knihovny z DVBgrabu na základ¥ jejich relativních cest.
DODATEK A.
INSTALACE A ÚDRšBA
39
Pokud jsme s kongurací jiº spokojeni, pouºijeme tla£ítko Nastavit. To aktualizuje soubor
cong.php a vypí²e nám informaci o aktuální konguraci pro cron démon. V té nahradíme
BACKEND_DIR za skute£ný adresá°, odkud budou spou²t¥ny backend skripty a daný výpis
si zkopírujeme do schránky. Na záznamovém serveru pouºijeme p°íkaz crontab -e na editaci
kongurace cron démona a vloºíme text ze schránky. Tím máme zaji²t¥no pravidelné volání
údrºbového skriptu, zasílání informací o vyuºívání DVBgrabu a spou²t¥ní stahova£· televizního
programu.
Pokud máme záznamový server zvlá²´, je pot°eba p°esunout adresá° backend tam. To je nejlep²í
ud¥lat pomocí archivátoru tar, který nám symbolické odkazy z adresá°e backend na sdílené
soubory nahradí jejich skute£nou kopií. Vzniklý archiv tar pak rozbalíme na cílovém serveru
a podadresá° adodb bu¤ nahradíme správným symbolickým odkazem nebo ponecháme ten
nakopírovaný z prvního serveru.
Automatické spou²t¥ní DVBgrabu p°i startu systému zaji²´uje skript service/dvbgrab, který
upravíme podle aktuálního umíst¥ní skriptu dvbgrab_service a nakopírujeme do adresá°e podle
distribuce (nap°. /etc/init.d/dvbgrab). Poté sta£í naplánovat, ve kterých runlevelech se má
sluºba spou²t¥t a kde zastavovat.
A.7
Údrºba záznamového serveru
O údrºbu se stará automaticky spou²t¥ný skript clean.php.
A.7.1 Mazání neaktivních uºivatel·
Maºe uºivatele, kte°í se po dobu n¥kolika dní (podle volby user_inactivity_limit) nep°ihlásili
k DVBgrabu a ani si nic neobjednali. To zajistí zru²ení uºivatele a uvoln¥ní jeho IP adresy
po jeho odst¥hovaní z koleje (pokud p°edem sám nepouºije funkci na okamºité zru²ení ú£tu).
Také to ru²í v²echny jeho poºadavky a jeho uºivatelský adresá°. O zru²ení ú£tu se uºivateli
po²le e-mail.
A.7.2 Aktualizace uºivatelských ú£t·
P°i zm¥n¥ hesla nebo stahovací IP adresy uºivatelem je v databázi nastaveno nové datum
poslední zm¥ny. Tento skript p°i kaºdém spu²t¥ní p°egeneruje .htaccess soubory pro v²echny
uºivatele, kte°í m¥nili svá nastavení mezi posledním spu²t¥ním skriptu a aktuálním £asem. Poté
posune datum poslední aktualizace na aktuální £as.
A.7.3 Kontrola neznámých uºivatelských ú£t·
Skript zkontroluje, zda pro v²echny adresá°e existuje odpovídající databázový uºivatel, pokud
ne, mohou být smazány, p°ípadn¥ alespo¬ vypsány na obrazovku.
40
DODATEK A.
INSTALACE A ÚDRšBA
A.7.4 Mazání nepot°ebných .ts soubor·
V²echny graby se ukládají do souboru s .ts koncovkou. P°i kaºdém spu²t¥ní skriptu je u t¥chto
soubor· zkontrolováno, zda k nim existuje nejaký nevy°ízený poºadavek na komprimaci. Pokud
ne, je .ts soubor smazán. Pokud ano, je do logovacího souboru zapsáno, který formát je²t¥ chybí
p°ipravit.
A.7.5 Kontrola volného místa
V grabovacím adresá°i se sleduje mnoºství vyuºitého prostoru a volné místo.
Nejstar²í nahrávky se za£nou mazat p°i p°ekro£ení maximální povolené velikosti grabovacího
adresá°e (podle grab_storage_size), nebo pokud je volného místa mén¥, neº je op¥t nakongurovaná konstanta (grab_storage_min_size).
Pokud je nutné mazat i graby, které jsou nagrabovány krat²í dobu, neº je plánované uchovávání
grab· (grab_history), je správci zaslán varovný e-mail.
A.7.6 Mazání starých dat
V databázi nepot°ebujeme uchovávat televizní program n¥kolik let dozadu a zárov¥n je dobré
zobrazovat na webu i hotové graby po jejich smazání. Proto jsou z databáze smazány jen data
star²í neº je trojnásobek doby, po kterou se uchovávají graby (3 x grab_history dní). Maºou se
jak záznamy o uºivatelských poºadavcích, tak poºadavky na formát, tak vlastní graby a televizní
program.
A.8
Ru£ní údrºba uºivatel·
Ob£as je nutné ru£n¥ ru²it uºivatele, kte°í se nap°íklad odst¥hují a nezru²í p°itom sv·j ú£et.
Pokud jejich IP adresu dostane nový uºivatel, který by se cht¥l zaregistrovat na DVBgrabu
d°ív, neº uplyne lh·ta na automatické zru²ení p·vodního ú£tu z d·vodu neaktivity, registrace
selºe z d·vodu koniktu IP. V t¥chto p°ípadech je nejlep²ím °e²ením ru£n¥ nastavit datum poslední aktivity p·vodního ú£tu nap°íklad rok dozadu, a tím je zaji²t¥no zru²ení ú£tu údrºbovým
skriptem, v£etn¥ zru²ení jeho adresá°e a odeslání informa£ního e-mailu.
Pro hromadné informování uºivatel· je moºné pouºít skript backend/send_user_info.php,
ve kterém upravíme text zprávy a jeho spu²t¥ním roze²leme zprávu v£etn¥ p°ihla²ovacích údaj·
kaºdému uºivateli DVBgrabu. Toto je vhodné pouºít nap°íklad po konverzi databáze z DVBgrabu verze 1 na verzi 2, kdy do²lo ke zm¥nám v pravidlech pro znaky v uºivatelských jménech.
A.9
Údrºba backend skript·
Ve²keré spou²t¥ní a zastavování grabovacích nebo komprima£ních smy£ek by se m¥lo provád¥t
p°es skript dvbgrab_service, který je sou£ástí instala£ního balíku. V tomto skriptu zkontrolujeme cestu k adresá°i s backend skripty.
DODATEK A.
INSTALACE A ÚDRšBA
41
Skript dvbgrab_service podporuje tyto parametry:
•
•
•
•
•
•
•
•
•
•
start nastartuje záznamovou i komprima£ní smy£ku
startg nastartuje pouze záznamovou smy£ku
starte nastartuje pouze komprima£ní smy£ku
stop zastaví ob¥ smy£ky
stopg zastaví pouze záznamovou smy£ku
stope zastaví pouze komprima£ní smy£ku
restart restartuje ob¥ smy£ky
restartg restartuje pouze záznamovou smy£ku
restarte restartuje pouze komprima£ní smy£ku
status zobrazí, jestli smy£ky b¥ºí. Poté pro jednotlivé
komprima£ní formáty seznam
grab·, které jsou ve front¥ a také, které graby se práv¥ ukládají
Zastavování komprima£ní sloºky je dopln¥no o obnovování fronty na komprimaci (skriptem
backend/encode_queue_restore.php), coº po zastavení smy£ky vrátí stav poºadavk· ze stavu
Komprimuje se na stav Nahraný, díky tomu se mohou po op¥tovném spu²t¥ní smy£ky op¥t
vybrat ke zpracování.
Zobrazit
frontu
na
komprimaci
a
aktuáln¥
ukládané
graby
lze
i
ru£n¥
pomocí
skriptu
backend/encode_queue_print.php.
Pro spou²t¥ní a vypínání DVBgrabu p°i startu a zastavování opera£ního spou²t¥ní máme skript,
který tento dvbgrab_service volá. M¥l bý být v /etc/init.d/dvbgrab.
42
DODATEK A.
INSTALACE A ÚDRšBA
DODATEK B. UšIVATELSKÁ PÍRUƒKA
43
B Uºivatelská p°íru£ka
Uºivatelská p°íru£ka v£etn¥ snímk· obrazovky bude pozd¥ji umíst¥na na stránkách projektu
http://dvbgrab.sourceforge.net/, protoºe prost°edí má £erné pozadí, coº by nebylo moc vhodné
pro tisk.
B.1
Registrace
P°ed prvním pouºitím je t°eba si zaregistrovat sv·j uºivatelský ú£et. Registrace se provádí
na úvodní stránce aplikace. Ve formulá°i registrace je t°eba vyplnit:
B.1.1 Uºivatelské jméno
P°ípustné jsou pouze malé alfanumerické znaky bez diakritiky (malá písmena abecedy a-z
a 0-9). Tímto uºivatelským jménem se budete poté p°ihla²ovat a bude také zobrazeno u Vámi
objednaných grab·. Pokud takové uºivatelské jméno jiº existuje, bude vypsána chyba.
Pokud se pouºívají sdílená hesla s jinými projekty (nap°íklad s heslem, které máte nastaveno
u správc· sít¥), tak zde zadávejte stejné sdílené uºivatelské jméno. Nap°íklad na Masarykov¥
koleji má Petr Novák uºivatelské jméno na e-mail a stránky koleje novakp a heslo 12345. Kdyº
bude chtít vyuºívat stejné heslo i na stránkách DVBgrabu, tak musí zadat op¥t uºivatelské jméno
novakp a heslo 12345. Tím se ov¥°í, ºe je to doopravdy Petr Novák a p°i°adí se mu takzvan¥
externí heslo (nebude se ukládat v databázi DVBgrabu). Pokud si poté na stránkách koleje
zm¥ní své heslo na 54321, tak se tato zm¥na okamºit¥ projeví i v DVBgrabu. Tito uºivatelé pak
nemají v DVBgrabu dostupnou funkci pro poslání nového vygenerovaného hesla po zapomenutí
starého a také si ho nemohou v menu nastavení m¥nit (to by m¥lo být zaji²t¥no jinde).
B.1.2 Uºivatelské heslo
Pro pouºité znaky platí stejné omezení jako u uºivatelského jména (malé alfanumerické znaky
bez diakritiky). Heslo m·ºe být libovolné, jen uºivatelé, kte°í chtejí pouºívat externí heslo viz.
p°edchozí odstavec, musejí zadat svoje aktuální. Heslo se pro kontrolu zadává dvakrát. Ti, kte°í
nemají externí heslo, si mohou v p°ípad¥ zapomenutí nechat poslat nové na e-mail, který je
následující poloºkou.
B.1.3 E-mail
Uºivatelský e-mail, na který e-mail budou zasílána oznámení o úsp¥²ném nahrání po°adu (v£etn¥
odkaz· na jeho staºení), p°ípadn¥ o chybách. Proto je nutné uvést e-mail platný. Na tento e-mail
bude také zasláno heslo, pokud o to poºádáte po jeho zapomenutí.
44
DODATEK B. UšIVATELSKÁ PÍRUƒKA
B.1.4 IP adresa pro stahování
Ta je vypln¥na automaticky IP adresou, ze které se registrujete. V menu nastavení je pak
umoºn¥no ji dodate£n¥ zm¥nit. Z jedné IP adresy m·ºe být zaregistrován maximáln¥ jeden
uºivatel. Pokud aplikace vypí²e chybu, ºe jiº n¥kdo byl z této adresy registrován, je nutné napsat
tomuto uºivateli zprávu, a´ si zm¥ní IP adresu na svou vlastní, pokud nereaguje, kontaktujte
správce aplikace (ten m·ºe kolidující ú£et zru²it).
B.1.5 Video kodek
Zde se nastavuje Vámi preferovaný zp·sob komprese hotových nahrávek. Seznam povolených
formát· ur£uje správce aplikace. K dispozici je obvykle MPEG-2, coº je formát s nízkou kompresí
vhodný spí²e pro dal²í úpravy neº pro uchování. Hodina po°adu je poté p°ibliºn¥ 1GB velká.
MPEG-4 varianty poté zmen²ují velikost na p°ibliºn¥ 500MB na hodinu a jejich parametr scale
ur£uje, jakým pom¥rem bude zmen²eno m¥°ítko (MPEG-4 scale 0.125 znamená, ºe výsledné
video bude mit velikost 1/8 originálu a výsledný soubor bude tedy mnohem men²í).
Zm¥ny preferovaného kodeku jsou moºná v menu nastavení a platí pravidlo, ºe na objednaný
grab se pouºije ten kodek, který byl nastaven v dob¥ jeho objednání. Pokud máte MPEG-2
a objednáte po°ad ABC a poté zjistíte, ºe si ho chcete nechat nahrát v MPEG-4, tak musíte
zm¥nit nastavení preferovaného kodeku, objednávku po°adu ABC zru²it a znovu objednat.
B.1.6 Icq, Jabber
Pokud chcete nechat ostatním uºivatel·m na sebe kontakt, vypl¬te prosím i tyto kolonky.
Pokud se registrace z nejakého d·vodu nepoda°í, je vypsána informace s d·vodem. Pokud se
poda°í, je vypsáno, ºe uºivatel byl úsp¥²n¥ registrován a je automaticky p°ihlá²en.
B.2
P°ihlá²ení
Pokud se uºivatel hlásí z jiného po£íta£e nebo prohlíºe£e neº ze kterého se registroval, p°ípadn¥
pokud vypr²ela platnost p°ihlá²ení, musí zadat znovu své p°ihla²ovací jméno a heslo. Zadané
údaje se uloºí do cookies prohlíºe£e a pamatují se po dobu 2 let. Uºivatelské jméno a heslo
se také v cookies prohlíºe£e vymaºe, pokud pouºijete odkaz na odhlá²ení z DVBgrabu. Proto
pokud se p°ihla²ujete z po£íta£e, který vyuºívá více uºivatel·, je nutné se vºdy p°ed odchodem
z DVBgrabu odhlásit (odkaz v pravém horním rohu).
Pokud zapomenete své heslo, je moºné si nechat poslat nov¥ vygenerované na zaregistrovaný
e-mail. Sta£í si správn¥ pamatovat své uºivatelské jméno a e-mail, se kterým jste se registroval. Po p°ihlá²ení s novým heslem je vhodné si heslo zm¥nit na lépe zapamatovatelné v menu
nastavení.
DODATEK B. UšIVATELSKÁ PÍRUƒKA
B.3
45
Objednání grabu
Nej£ast¥j²í £inností je objednávání grabu, to se provádí v menu TV program. TV program se
zobrazuje na n¥kolik dní dop°edu, p°epínání dne se provádí volbou v horní £ásti stránky. V programu se také dá vyhledávat zadáním £ásti názvu po°adu nebo jeho popisu. Jak v p°ehledu
programu tak ve výsledcích hledání se graby objednávají kliknutím na název po°adu a potvrzením dialogového okna. Poté zvolený televizní po°ad zm¥ní barvu svého pozadí (znázor¬ující,
ºe grab je v naplánovaném stavu) a zobrazí se odkaz na zru²ení grabu. Po£et grab· za týden je
omezen, aktuální po£et objednaných grab· a limit je vid¥t v pravém horním rohu. Úpln¥ stejn¥
se dají objednávat také graby, které uº n¥kdo objednal p°ed Vámi. Uºivatelem naplánované
graby jsou od ostatních odli²eny ikonou televize v levé £ásti po°adu. Dal²í informace o po°adu
se zobrazují ve vyskakujícím oknu, které se zobrazuje po najetí my²i na název po°adu. V tomto
dopl¬kovém okn¥ se zobrazují jak detaily po°adu, tak i informace o naplánovaném grabu, pokud
je po°ad n¥kým objednán.
Po°ad lze objednat maximáln¥ 30 minut po jeho za£átku, samoz°ejm¥ pokud nikdo p°edtím
nem¥l tento po°ad objednaný, bude po°ad nahráván aº od okamºiku objednání.
Formát, ve kterém bude daný po°ad uloºen, je ur£en podle uºivatelem preferovaného kodeku,
který má nastaven v dob¥ objednávání (více viz. sekce Video kodek u registrace uºivatele).
B.4
Ru²ení grabu
Ru²it se dají pouze graby, které je²t¥ nebyly odvysílány. Zru²ení se provede v p°ehledu televizních
po°ad· kliknutím na odkaz zru²it grab. Na aktuáln¥ naplánované graby se lze rychle p°epnout
z menu Moje graby.
B.5
Sledování stavu
Grab po objednání prochází n¥kolika stavy, nejd°íve je pouze naplánovaný.
Aktuální stav grabu je znázorn¥n pomocí barvy pozadí a p°esn¥ji podle textu, který je sou£ástí
detailního vyskakujícího okna.
Návaznost jednotlivých stav· grabu:
• Naplánovaný
• Nahrává se od prvního objednání libovolným uºivatelem, aº po za£átek nahrávání.
do tohoto stavu by se m¥l dostat pár minut p°ed o£ekávaným za£átkem
po°adu.
• Nahraný
n¥kolik minut po o£ekávaným koncem po°adu by se m¥l stav p°epnout do to-
hoto stavu (od stavu Nahrává se je odli²en jen textem v okn¥ s detailem).
• Komprimuje se
po n¥jaké dob¥, m·ºe trvat i n¥kolik hodin neº se zkomprimují star²í,
se daný po°ad dostane na °adu a za£ne jeho komprimace do zvoleného formátu.
• Zkomprimovaný
po dokon£ení komprimace, tento stav je op¥t odli²en jen textem
v detailu a obvykle netrvá dlouho.
• Hotový
grab je uve°ejn¥ný v uºivatelském adresá°i a uºivateli byl zaslán oznamující
e-mail, taky by se m¥l zobrazit odkaz na staºení v menu Moje graby.
46
DODATEK B. UšIVATELSKÁ PÍRUƒKA
• Smazaný
graby se na záznamovém serveru uchovávají jen po správcem denovanou
dobu a ta m·ºe být je²t¥ zkrácena v p°ípad¥, ºe dochází volné místo na disku, p°i smazání
grabu se jejich stav tedy p°epíná na tento.
• Prome²kaný
první chybový stav zna£ící, ºe záznamový server pravd¥podobne nebyl
v·bec v provozu v dob¥ vysílání po°adu. Tyto graby jiº nebude moºné získat.
• Neúsp¥ch
druhý chybový stav, který m·ºe znamenat pouze chybu aº p°i komprimaci,
pokud je to chyba odstranitelná, je moºné, ºe správce chybu odstraní a po°ad bude pozd¥ji
uve°ejn¥n a ve stavu Hotový.
• Nedenovaný
poslední chybový stav, který nastává pouze p°i vyjime£ných situacích.
V²echny chybové stavy jsou vyzna£eny stejnou barvou pozadí.
B.6
Stahování grabu
Graby je nejjednodu²²í stahovat kliknutím na odkaz, který p°ijde v oznamovacím e-mailu. Dále
je moºné stahovat své graby ze seznamu v Moje graby, kde je u hotových grab· v posledním
sloupci uveden odkaz. Poslední moºností je p°ímý p°ístup na URL s uºivatelským adresá°em
(nap°. http://graby.domena/novakp), kde se také zobrazí v²echny uºivatelovy hotové soubory.
Ke kaºdému grabu jsou vºdy 2 soubory, avi nebo mpg s vlastní nahrávkou a XML, ve kterém
jsou dal²í informace.
Bezchybné staºení lze zkontrolovat výpo£tem MD5 staºeného souboru a porovnáním s MD5
sou£tem uvedeným v XML souboru, p°ípadn¥ alespo¬ velikost staºeného souboru by se m¥la
rovnat velikosti uvedené tamtéº.
V XML souboru si také m·ºete zkontrolovat za£átek a konec po°adu a jeho nahrávání.
XML soubor je ve webovém prohlíºe£i zobrazován v p°ehledné podob¥ tabulky, která je z XML
souboru vytvo°ena podle XSL ²ablony.
Ta je v uºivatelském adresá°i vygenerována (podle jazyku, který uºivatel pouºívá na webovém
rozhraní DVBgrabu) v souboru dvbgrab.xsl. Pokud chcete stejn¥ zobrazovat i staºené XML
soubory, zkopírujte k nim do adresá°e i tento soubor.
Jméno souboru má následující strukturu, DVB- jako p°edpona, pak datum nahrávání ve formátu Ymd-Hi (rok, m¥síc, den, hodiny, minuty) tak, aby se adresá° s nahrávkami dal °adit
chronologicky podle abecedy. Dále následuje jméno kanálu (po odstran¥ní diakritiky) a název
po°adu, bu¤ po odstran¥ní diakritiky nebo jenom ID záznamu. Seriály také mohou obsahovat
v názvu sekci denující £íslo série, epizody a £ásti, p°ípadn¥ i celkový po£et (nap°. S2/5E8P1/2
zna£í, ºe jde o osmý díl druhé epizody z p¥ti, £ást první ze dvou).
B.7
P°ehrávání grabu
Graby je nejlep²í p°ehrávat v programu VLC (VideoLAN Client zdarma ke staºení na
http://www.videolan.org/), protoºe ten vyuºívá stejné kodeky jako DVBgrab. V Linuxu problémy s kodeky obvykle nejsou.
DODATEK B. UšIVATELSKÁ PÍRUƒKA
B.8
47
Zm¥ny nastavení ú£tu
Ve webovém rozhraní je moºno m¥nit n¥kolik parametr· uºivatelského ú£tu.
P°ihla²ovací jméno m¥nit nelze, chcete-li jiné, musíte ú£et zru²it a zaloºit si nový.
Zm¥na hesla není moºná u externích hesel, viz. sekce registrace.
Zm¥na stahovací IP adresy se nemusí projevit ihned. Pokud se zm¥na neprojeví do 24 hodin,
kontaktujte správce.
Zm¥ny video kodeku se projevují podle popisu v sekci registrace.
O v²ech provedených zm¥nách je zasílán informa£ní e-mail na uºivatelovu aktuální adresu.
B.9
Zru²ení ú£tu
Pokud uº DVBgrab nechcete nebo nebudete moci vyuºívat, zru²te prosím sv·j uºivatelský ú£et
v dolní £ásti stránky p°ístupné p°es menu nastavení. To uvolní va²í stahovací IP adresu uºivateli,
který ji t°eba dostane po Vás. Jinak bude Vá² ú£et zru²en aº po t°eba 30 dnech neaktivity. P°i
ru²ení ú£tu se taky automaticky zru²í v²echny naplánované graby a uºivatelský adresá° s graby
na staºení.
48
DODATEK B. UšIVATELSKÁ PÍRUƒKA
DODATEK C. SNÍMKY OBRAZOVKY
C Snímky obrazovky
Obrázek C.1: Ukázka p°ihlá²ení
Obrázek C.2: Ukázka programu
49
50
DODATEK C. SNÍMKY OBRAZOVKY
Obrázek C.3: Ukázka seznamu grab·
Obrázek C.4: Ukázka nastavení ú£tu
DODATEK D. FORMÁTY PRO UKLÁDÁNÍ AUDIO-VIDEO
51
D Formáty pro ukládání audio-video
Audio-video data se ukládájí v souborovém a p°ená²ejí v sí´ovém formátu, obecn¥ tomu °íkáme kontejner. Kontejner zaji²´uje synchronizaci r·zných sloºek (audio, video, titulky) a m·ºe
podporovat nap°íklad r·zné kapitoly v rámci jednoho souboru (známé z DVD). Kontejner umí
pracovat s ur£itými typy audio a video kodek·. Kodeky ur£ují, jakým zp·sobem jsou data
digitaln¥ uloºena.
D.1
Organizace ovliv¬ující audio-video formáty sou£asnosti
• MPEG Motion Pictures Expert Group je název standardiza£ní skupiny ISO. V normách
je v r·zných £ástech vºdy obsaºena denice jak kontejneru, tak audio i video kodek·.
• VCEG Video Coding Experts Group, skupina pro návrh audio-video standardu skupiny
ITU-T.
• Firmy Microsoft, Apple a dal²í
• Neziskové organizace a dobrovolníci vytvá°ející svobodné implementace, ob-
vykle kompatibilní s n¥kterým standardem.
D.2
Nejznám¥j²í kontejnery
• MPEG-1
Je nejstar²ím standardem, vyuºívá se nap°íklad u Video CD (VCD). Jeho
kvalita je zhruba srovnatelná s kvalitou záznamu na analogové VHS kazet¥. Sou£ástí toho
standardu je i známý audio kodek MP3, coº je zkratka za MPEG-1 Part 3 Layer 3 (MPEG1 Audio Layer 3). P°ehrávání a nahrávání tohoto formátu je hardwarov¥ nejmén¥ náro£né
a také je to formát nejvíce kompatibilní.
• MPEG-2
Nástupce MPEG-2 nov¥ p°iná²í podporu pro prokládané video a 2 r·zné
kontejnery pro vkládání audio-video dat.
• MPEG-2 TS
Transport stream neboli kontejner pro p°ená²ení signálu po mén¥ spo-
lehlivém kanálu, pouºívá se nap°íklad u DVB vysílání.
• MPEG-2 PS
Program stream je naopak navrºen pro pouºití na spolehlivém médiu
jako je DVD a SuperVideo CD (SVCD).
• MPEG-2 VOB
Roz²í°ení MPEG-2 pouºívané na DVD discích. Umoº¬uje denovat
jednotlivé kapitoly, podpora pro titulky ve formátu VobSub a také pro ne-MPEG audio
kodeky, jako je £asto pouºívaný AC3 pro prostorový zvuk 5.1.
• MPEG-3 P·vodn¥ denovaný pro televizní vysílání s vysokým rozli²ením HDTV. Místo
tohoto formátu se pro HDTV pouºívá mírn¥ vylep²ený MPEG-2.
• MPEG-4 MP4 Nejnov¥j²í formát z rodiny MPEG standard·. Nejv¥t²ím rozdílem proti
p°edch·dc·m je pouºití kodek· s vysokou kompresí pro audio i video. Také je zahrnuta
podpora pro systém ochrany autorských práv DRM (Digital Rights Management). Pouºívá
se nej£asteji pro uchování audio-video na po£íta£i a tam, kde je t°eba zajistit co nejmen²í
datový tok, t°eba u DVB vysílání pro p°enosná za°ízení (DVB-H). Denuje 2 skupiny
video kodek· s vysokou kompresí MPEG-4 ASP a MPEG-4 AVC.
• AVI
Audio Video Interleave, souborový kontejner navrºený rmou Microsoft podobný
formátu MPEG-4.
• ASF
Advanced Systems Format, d°íve Advanced Streaming Format, p°enosový kontej-
ner navrºený rmou Microsoft.
• QuickTime
Kontejner od rmy Apple. Pouºívá p°ípony .mov a .qt. Byl základem pro
tvorbu standardu MP4.
52
DODATEK D. FORMÁTY PRO UKLÁDÁNÍ AUDIO-VIDEO
• OGG/OGM Svobodná varianta vyvinutá v organizaci Xiph.Org [8].
• Matroska Dal²í svobodná varianta s popisem sloºek ve formátu EBML
(Extensible
Binary Meta Language binární obdoba XML). Podobá se QuickTime, MP4 a ASF.
•
•
•
•
•
D.3
3GP P°eváºn¥ pro p°enosná za°ízení jako telefony a PDA navrºený organizací 3GPP.
NUT Z projektu MPlayer/FFmpeg.
FLV Video z Flash playeru od Adobe.
RealMedia
...
Nejpouºívan¥j²í video kodeky
• MPEG-1 Video
Nejstar²í a vhodný spí²e pro video s nízkým rozli²ením, podporuje
pouze neprokládané video (progressive scan).
• MPEG-2 Video
Kompatibilní s MPEG-1 Video, ale p°i toku více neº 3Mbit/s jiº
efektivn¥j²í a také podporuje prokládané video (interlaced) známé z televizního vysílání.
Denuje r·zné proly (typy snímk· P, I, B; rozloºení YUV a kanál·) a úrovn¥ (rozli²ení, framerate, bitrate). Kombinací prol· a level· získáme ²kálu r·zn¥ kvalitních variant
pouºitelných od bezdrátových za°ízení po kvalitní za°ízení pro vysoké rozli²ení (HD).
• MPEG-4 ASP
Advanced Simple Prole, odpovídá standardu VCEG H.263 (imple-
mentace XviD, DivX, 3ivx, QuickTime, libavcodec).
• MPEG-4 AVC
Advanced Video Coding, vznikl spoluprácí skupin MPEG a VCEG
a odpovídá H.264 (implementace x264, libavcodec). Pouºíván pro DVD s vysokým rozli²ením (HD DVD) a pravd¥podobn¥ pouºitý pro Blu-ray video disky. Lze také pouºít pro
vysílání DVB ve vysokém rozli²ení.
•
•
•
•
•
D.4
Theora Svobodný kodek kvalitativn¥ srovnatelný s MPEG-4 ASP i MPEG-4 AVC.
WMV Windows Media Video, odpov¥d Microsoftu na kodeky MPEG-4 ASP.
RealVideo
MJPEG
...
Nejpouºívan¥j²í audio kodeky
• MPEG-1 Layer 2 Audio Niº²í komprese.
• MPEG-1 Layer 3 Audio Vy²²í ztrátová komprese,
roz²í°ená podpora v p°ehráva£ích,
známý jako MP3.
• AAC
Advanced Audio Coding, denovaný v MPEG-2 £ást 7 a MPEG-4 £ást 3 (podle
implementace).
•
•
•
•
•
•
•
•
AC3 Adaptive Transform Coder 3, aº 6 kanálový zvuk Dolby Digital.
FLAC Free Lossless Audio Codec, svobodná alternativa bezeztrátového audio kodeku.
Vorbis Svobodná náhrada kodeku MP3, také se ztrátovou kompresí.
Speex Svobodný se ztrátovou kompresí optimalizován pro uchování a p°enos lidské °e£i.
WMA
RealAudio
ATRAC
...
DODATEK E.
SLOVNÍK POJM—
53
E Slovník pojm·
DVB Digital Video Broadcasting digitální vysílání
GRAB Záznam z televize nebo jiného zdroje
QAM Quadrature Amplitude Modulation Kvadraturní amplitudová modulace
OFDM Orthogonal Frequency Division Multiplex Ortogonální frekven£n¥ d¥lený multiplex
QPSK Quaternary Phase-Shift Keying Kvadraturní klí£ování fázovým posuvem
FEC Forward Error Correction Metoda zji²´ování a opravy chyb vzniklých p°i p°enosu, která
vyuºívá vkládání dopl¬kových kontrolních bit·
VLS VideoLAN Server program pro vysílání multimediálních dat do lokální sít¥
VLC VideoLAN Client multimediální p°ehráva£ s moºností vysílat do lokální sít¥
VLM VideoLAN Manager p°ehráva£ VLC v neinteraktivním vysílacím reºimu
IGMP Internet Group Management Protocol protokol na správu skupin u multicastové formy
vysílání
MPEG
Xiph
Motion Pictures Expert Group pracovní skupina ISO pro vývoj multimediálních
formát· a ozna£ení rodiny kodek·
Xiph.Org sdruºení pro podporu vývoje svobodných formát· a protokol·
54
DODATEK E.
SLOVNÍK POJM—
DODATEK F.
OBSAH PILOšENÉHO CD
55
F Obsah p°iloºeného CD
dp:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
dp_bibliography.bib
dp_cd.tex
dp_format.cls
dp_formaty.tex
dp_instalace.tex
dp_macro.tex
dp_ocekavame.tex
dp.pdf
dp_pojmy.tex
dp_popis.tex
dp_pouziti.tex
dp_prijem.tex
dp_testovani.tex
dp.tex
dp_udrzba.tex
dp_vysilani.tex
dp_zaver.tex
images
Makele
dp/images:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
dvbgrab.dia
dvbgrab.eps
dvbgrab.png
LogoK336.eps
PATaPMT.eps
scrNastaveni.eps
scrNastaveni.png
scrPrihlaseni.eps
scrPrihlaseni.png
scrProgram.eps
scrProgram.png
scrSeznam.eps
scrSeznam.png
videolan.eps
dvbgrab:
•
•
•
•
•
account.inc.php
account.php
actions.php
adodb
authenticate.php
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
authentication.php
backend
cong.php
cong.php.dist
congure.sh
const.php
css
docs
dolib.inc.php
dvbgrab_service
footer.php
grabinfoJS.php
grabinfo.php
header.inc.php
header.php
charset.inc.php
images
index.php
lang
language.accept.inc.php
language.inc.php
legend.inc.php
listtv.php
log
loggers.inc.php
menu.php
news.php
plan.php
project-web
screenshot1.png
screenshot1.xcf
screenshot2.png
screenshot3.png
screenshot4.png
search.php
secure.sh
sendPass.php
service
setup.php
sql
status.inc.php
telinfoJS.php
telinfo.php
tvgrabbers
tvprog.php
users
view.inc.php
56
DODATEK F.
dvbgrab/backend:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
adodb
clean.inc.php
clean.php
cong.php
dolib.inc.php
encode_loop.php
encode_process.php
encode_queue_print.php
encode_queue_restore.php
encoders
grab_loop.php
grab_process.php
charset.inc.php
lang
loggers.inc.php
print_xsl_template.php
send_user_info.php
status.inc.php
mpeg2.sh
mpeg4-full.sh
mpeg4-medium.sh
mpeg4.sh
dvbgrab.css
AUTHORS
COPYING
COPYRIGHT
fr.gif
grab.gif
grab2.gif
loading.gif
logos
minus.gif
plus.gif
sk.gif
top.black.png
top.full.png
top.gif
top.half.png
top.png
top.xcf
dvbgrab/images/logos:
•
•
•
•
•
•
•
•
•
ct1p.gif
ct1.png
ct2p.gif
ct2.png
novap.gif
nova.png
ockop.gif
primap.gif
prima.png
dvbgrab/lang:
•
•
•
•
lang.cs.inc.php
lang.en.inc.php
lang.fr.inc.php
lang.sk.inc.php
dvbgrab/log:
dvbgrab/project-web:
CHANGES
INSTALL
README
TODO
dvbgrab/images:
•
en.gif
mpeg4-small.sh
dvbgrab/docs:
•
•
•
•
•
•
•
dot.xcf
send_daily_report.php
dvbgrab/css:
•
dot.gif
output.inc.php
dvbgrab/backend/encoders:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
OBSAH PILOšENÉHO CD
cs.gif
•
•
•
•
•
•
•
css
footer.php
header.inc.php
header.php
images
index.php
menu.php
DODATEK F.
OBSAH PILOšENÉHO CD
dvbgrab/project-web/css:
•
dvbgrab.css
dvbgrab/project-web/images:
•
top.png
dvbgrab/service:
•
•
•
•
•
dvbgrab
README
vlm
vlm.cfg
vlm.cfg.human.readable
dvbgrab/sql:
•
•
•
•
convert.sh
data.sql
mysql.sql
postgres.sql
dvbgrab/tvgrabbers:
•
•
•
func.inc.php
tv_grab_novinky_cz
xmltv_to_db.php
dvbgrab/tvgrabbers/tv_grab_novinky_cz:
•
•
tv_grab_novinky_cz.php
uget.inc.php
dvbgrab/users:
•
index.php
57
58
DODATEK F.
OBSAH PILOšENÉHO CD