Přenos a komprese audio/video dat pro integrovanou výuku

Transkript

Přenos a komprese audio/video dat pro integrovanou výuku
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
Přenos a komprese audio/video dat
pro integrovanou výuku VUT a
VŠB-TUO
Garant předmětu:
Ing. Petr Číka, Ph.D.
Autoři textu:
Ing. Petr Číka, Ph.D.
BRNO 2014
Vznik těchto skript byl podpořen projektem č. CZ.1.07/2.2.00/28.0062
Evropského sociálního fondu a státním rozpočtem České republiky.
Autor
Ing. Petr Číka, Ph.D.
Název
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
Vydavatel
Vysoké učení technické v Brně
Fakulta elektrotechniky a komunikačních technologií
Ústav telekomunikací
Technická 12, 616 00 Brno
Vydání
první
Rok vydání
2014
Náklad
elektronicky
ISBN
978-80-214-5061-5
Tato publikace neprošla redakční ani jazykovou úpravou
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
3
Obsah
1 Úvod
5
2 Protokoly pro distribuci
multimediálních dat v síti Internet
6
2.1
Teoretický úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2
Laboratorní úloha – Analýza multimediálních protokolů pomocí programu
Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3
2.2.1
Cíle úlohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.2
Zadání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.3
Pokyny k vypracování . . . . . . . . . . . . . . . . . . . . . . . . . 18
Laboratorní úloha – IP televize, streamování, video na vyžádání, protokoly
RTP, RTCP, SDP, RTSP, SAP . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.1
Cíl úlohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2
Zadání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.3
Pokyny k vypracování . . . . . . . . . . . . . . . . . . . . . . . . . 21
3 Videokonference a standard H.323
25
3.1
Teoretický úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2
Laboratorní úloha – Videokonference . . . . . . . . . . . . . . . . . . . . . 38
3.2.1
Cíl úlohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.2
Zadání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.3
Pokyny k vypracování . . . . . . . . . . . . . . . . . . . . . . . . . 38
4 Internetová/video telefonie, protokol SIP
44
4.1
Teoretický úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2
Laboratorní úloha – Konfigurace softwarových VoIP telefonů . . . . . . . . 52
4.3
4.2.1
Cíl úlohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.2
Zadání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.3
Pokyny k vypracování . . . . . . . . . . . . . . . . . . . . . . . . . 52
Laboratorní úloha – Konfigurace hardwarových VoIP telefonů . . . . . . . 59
4
FEKT Vysokého učení technického v Brně
4.4
4.3.1
Cíl úlohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.2
Zadání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.3
Pokyny k vypracování . . . . . . . . . . . . . . . . . . . . . . . . . 59
Laboratorní úloha – VoIP pobočková ústředna Asterisk a její možnosti . . 66
4.4.1
Cíl úlohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.4.2
Zadání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.4.3
Pokyny k vypracování . . . . . . . . . . . . . . . . . . . . . . . . . 67
5 Standardy pro kompresi obrazu a videa
72
5.1
Teoretický úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2
Laboratorní úloha – komprese statických obrazů a videosekvencí, JPEG,
MPEG, H.26x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2.1
Cíl úlohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2.2
Zadání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2.3
Pokyny k vypracování . . . . . . . . . . . . . . . . . . . . . . . . . 81
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
1
5
ÚVOD
Tato skripta byla vytvořena pro výuku laboratorních cvičení předmětu Multimediální
služby vyučovaného v bakalářském studijním oboru Teleinformatika Fakulty elektrotechniky a komunikačních technologií Vysokého učení technického v Brně.
Skripta obsahují teoretické základy k jednotlivým laboratorním úlohám, jejich zadání a
pokyny k vypracování. Jsou rozdělena do pěti kapitol věnujících se protokolům využívaných při distribuci multimediálních dat, video telefonii a videokonferencím, internetové
telefonii, kompresí digitálních statických obrazů a videosekvencí.
6
2
FEKT Vysokého učení technického v Brně
PROTOKOLY PRO DISTRIBUCI
MULTIMEDIÁLNÍCH DAT V SÍTI INTERNET
2.1
Teoretický úvod
Při distribuci multimediálních dat v síti Internet se v současné době používá řada technik,
avšak pouze hrstka z nich je standardizovaných. V této kapitole se budeme zabývat pouze
standardními protokoly, které jsou využívány pro distribuci multimediálního obsah. Jedná
se o protokoly RTP, RTCP, SDP, RTCP, SAP.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
7
Protokol RTP (Real–time Transport Protocol)
RTP (Real-time Transport Protocol) je protokol aplikační vrstvy TCP/IP modelu definovaný v RFC 3550 [15]. Využívá se pro přenos multimediálních dat v datových sítích, v
současné době po Internetu. Je nezávislý na protokolech nižší vrstvy, nejčastěji využívá
protokol UDP (User Datagram Protocol). Hlavička protokolu (obrázek 2.1) obsahuje:
1. Version (verze) (2b),
2. Padding (výplň) (1b),
3. Extension (rozšíření) (1b),
4. CSRC Count (počet přispívajících zdrojů) (4b),
5. Marker (1b),
6. Payload Type (typ zátěže) (7b),
7. Sequence Number (sekvenční číslo) (16b),
8. Timestamp (časové razítko) (32b),
9. Synchronization Source (SSRC) Identifier (Identifikátor zdroje),
10. Contributing Source (CSRC) Identifier (Identifikátor přispívajícího zdroje),
11. Payload Data (užitečná data),
Údaje v hlavičce protokolu RTP – popis
1. Version (verze) identifikuje verzi protokolu, RFC 3550 definuje verzi 2.
2. Padding (výplň) identifikuje stav, kdy byl doplněn určitý počet oktetů na konec
užitečných dat. Tyto oktety nenesou žádnou informace. Poslední oktet výplně nese
informaci o počtu přidaných oktetů.
3. Extension (rozšíření) identifikuje rozšíření hlavičky. Pokud je bit nastaven na 1,
standardní hlavička paketu RTP je doplněna rozšířením.
4. CSRC Count (počet přispívajících zdrojů) indikuje počet zdrojů, které svými
daty přispívají do aktuálního paketu.
5. Marker se používá k oznámení určité události, např. poslední paket přenášeného
snímku, změna audio kodeku během VoIP hovoru apod.
6. Payload Type (typ zátěže) (7b) specifikuje typ užitečných dat přenášených
RTP paketem. Přesná interpretace pole typ zátěže definuje profil RTP, který svazuje
8
FEKT Vysokého učení technického v Brně
4b
V
P X
4b
CSRC
count
8b
M
16b
Payload type
Sequence Number
Timestamp
Synchronization source (SSRC) identifier
Contributing source (CSRC) identifier
…
Payload data
Padding
Obrázek 2.1: Standardní hlavička protokolu RTP
čísla typů zátěže s různými datovými formáty. V profilech jsou definovány statické
tabulky primárně provazující čísla zátěže s audio či video kodeky. Výchozí nastavení
je specifikované v doporučení RFC 3551. Typy zátěže v rozsahu hodnot 0 - 95 jsou
staticky definované, v rozsahu 96 - 127 jsou dynamicky přiřazeny při zahájení relace,
většinou za pomoci protokolu SDP (Session Decribtion Protocol).
7. Sequence Number (sekvenční číslo) se používá k identifikaci paketů a k poskytnutí přehledu o doručených paketech. Přijímač díky němu detekuje pakety přijaté
mimo pořadí či pakety ztracené. Sekvenční číslo s každým příchozím paketem inkrementuje o hodnotu 1. Pokud dosáhne své maximální hodnoty, nuluje se. Důsledkem
malého počtu bitů dochází k nulování sekvenčního čísla velmi často. V typické VoIP
aplikaci, kdy jsou posílány pakety obsahující hovorová data déky 20 milisekund, se
sekvenční číslo nuluje přibližně každých 20 minut. Počáteční hodnota sekvenčního
čísla je náhodná a z důvodu bezpečnosti by neměla začínat nulou.
8. Timestamp (časové razítko) označuje okamžik přehrávání prvního oktetu dat v
paketu.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
9
9. Synchronization Source (SSRC) Identifier (Identifikátor zdroje synchronizace) identifikuje zdroj vysílání RTP paketů. Jedná se o 32 bitové číslo náhodně
generované zdrojem, které je využíváno po celou dobu trvání relace.
10. Contributing Source (CSRC) Identifier (Identifikátor přispívajícího zdroje)
identifikuje účastníky relace v případě, že do jednoho RTP paketu přispívá více
zdrojů. Každý přispívající zdroj je identifikován 32 bitovým číslem odpovídajícím
SSRC účastníka. Počet CSRC záznamů je specifikován polem CSRC Count.
11. Payload Data (data) obsahuje užitečná data.
10
FEKT Vysokého učení technického v Brně
Protokol RTCP (RTP Control Protocol)
Protokol RTCP (RTP Control Protocol) slouží ke sledování kvality služeb v rámci RTP
relací, identifikaci jednotlivých účastníku RTP relace a k odhadu velikosti RTP relace.
Je definován společně s protokolem RTP v RFC 3550 [15]a používá stejně jako RTP pro
přenos protokol UDP avšak s rozdílným číslem portu. Standardně je port o jedna vyšší
než u RTP. Pakety RTCP jsou posílány periodicky.
Typy paketů RTCP
Doporučení RFC 3550 [15] definuje následující typy paketů RTCP:
• Sender Report (SR)
Aktivní účastníci relace (vysílače) posílají pomocí zpráv SR statistické informace o
přenosu.
• Receiver Report (RR)
Pasivní účastníci relace (přijímače generují na základě SR statistiky příchozích paketů RTP. Informace o těchto statistikách nese RR.
• Source Description (SDES)
Popisuje relaci, vždy obsahuje CNAME, může obsahovat i další údaje o relaci.
• Goodbye (BYE)
Indikuje odchod účastníka z relace.
• Application specific (APP)
Využívá se k testování nových funkcionalit.
Výpočet zpoždění, kolísání zpoždění
Při měření kvality služeb se využívají informace ze zpráv SR a RR. Pro výpočet průměrného zpoždění v přijímačích streamu RTP jsou potřeba následující informace, kde I značí
skevenční číslo paketu:
• 𝑆(𝐼) – Časové razítko odchozího paketu RTP paketu.
• 𝑅(𝐼) – Čas příchodu RTP paketu.
• 𝐷(𝐼) – Rozdíl časů dvou po sobě odeslaných paketů přijatých přijímačem a odeslaných vysílačem.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
11
• 𝐽(𝐼) – Průměrné kolísání zpoždění příchozích RTP paketů.
Zpoždění 𝐷(𝐼) se získá pomocí vztahu
𝐷(𝐼) = (𝑅(𝐼) − 𝑅(𝐼 − 1)) − (𝑆(𝐼) − 𝑆(𝐼 − 1)).
(2.1)
Kolísání zpoždění se získá průběžně s každým příchozím datovým paketem pomocí
vztahu
𝐽(𝐼) =
1
15
𝐽(𝐼 − 1) + |𝐷(𝐼)|.
16
16
(2.2)
Pakety SDES jsou využívány zdroji vysílání pro poskytnutí informací o nich samotných.
Pakety jsou složeny z hlavičky a dalších informací, kde každá z nich začíná jednoznačným
identifikátorem zdroje. Typy zpráv SDES podle RFC 3550 najdete v tabulce 2.1.
HODNOTA
NÁZEV
0
END
1
CNAME
POPIS
Konec seznamu SDES
Kanonické jméno (Canonical Name): jednoznačné
jméno v rámci jedné RTP relace
2
NAME
Reálné jméno uživatele
3
EMAIL
Emailová adresa
4
PHONE
Telefonní číslo
5
LOC
6
TOOL
Název aplikace generující stream RTP
7
NOTE
Zpráva popisující současný stav zdroje
Geografická poloha
Tabulka 2.1: Informace v paketech SDES
12
FEKT Vysokého učení technického v Brně
Protokol SDP (Session Describtion Protocol)
Protokol SDP (Session Describtion Protocol) slouží k přenosu údajů o multimediální relaci potřebných při navazování spojení a je definován v doporučení RFC 4566 [5]. K přenosu využívá například protokoly SAP (Session Announcement Protocol), SIP (Session
Initiation Protocol), RTSP (Real Time Streaming Protocol), e-mail použitím či HTTP
(Hypertext Transport Protocol).
Popis relace pomocí protokolu SDP obsahuje
1. název relace a její účel,
2. čas, po který je relace aktivní,
3. média obsažená v relaci,
4. informace potřebné k příjmu (adresy, porty, formáty, atd.),
5. informace o šířce pásma relace,
6. kontaktní informace na osobu zodpovědnou za relaci.
Protokol SDP je složen z řádků, obsahujících položky < 𝑇 𝑌 𝑃 >=< 𝐻𝑂𝐷𝑁 𝑂𝑇 𝐴 >, kde
𝑇 𝑌 𝑃 je zastoupen malým písmenem definujícím popisovanou informaci a 𝐻𝑂𝐷𝑁 𝑂𝑇 𝐴
definuje parametry dané informace.
Každý SPD popis je složen ze třech částí:
1. popis relace,
2. popis času,
3. popis médií.
Soupis všech typů a hodnot je uveden v následujícím textu, kde typy označené „*“ patří
mezi typy volitelné. Veškeré textové popisy by měly splňovat standard ISO 10646 a kódování UTF8.
Popis relace
• v= (protocol version)
• o= (owner/creator and session identifier).
• s= (session name)
• i=* (session information)
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
• u=* (URI of description)
• e=* (email address)
• p=* (phone number)
• c=* (connection information)
• b=* (bandwidth information)
• z=* (time zone adjustments)
• k=* (encryption key)
• a=* (zero or more session attribute lines)
Popis času
• t= (time the session is active)
• r=* (zero or more repeat times)
Popis médií
• m= (media name and transport address)
• i=* (media title)
• c=* (connection information - optional if included at session-level)
• b=* (bandwidth information)
• k=* (encryption key)
• a=* (zero or more media attribute lines)
13
14
FEKT Vysokého učení technického v Brně
Protokol RTSP (Real Time Streaming Protocol)
Protokol RTSP (Real Time Streaming Protocol) je určen pro sestavení a řízení relace
skládající se z jednoho nebo více multimediálních toků a je definovaný v doporučení RFC
2326 [16]. Jinými slovy se protokol RTSP využívá k ovládání multimediálních toků a je
znám pod pojmem síťový dálkový ovladač.
Adresace v RTSP
Zprávy RTSP jsou využívány k odkazování se na multimediální toky. URL adresa RTSP
má tvar rtsp://host:port/absolutní cesta.
RTSP využívá transportní protokol TCP a port 554 a pracuje na bázi klient-server
(žádost vs. odpověď).
Metody využívané protokolem RTSP a jejich funkce jsou:
1. Metoda DESCRIBE slouží k vyžádání popisu prezentace či multimediálních dat
identifikovaných požadovanou adresou URL.
2. Metoda OPTIONS se využívá ke získání dostupných metod určitého zařízení.
3. Metoda ANNOUNCE v případě vyslání klienta na server obsahuje popis prezentace nebo multimediálních dat identifikovaných dle požadované URL, v případě
vysílání od serveru ke klientovi aktualizuje v reálném čase popis relace.
4. Metoda SETUP specifikuje, jakým způsobem budou multimediální data přenášena.
5. Metoda PLAY oznamuje serveru, aby začal přehrávat daný multimediální tok.
6. Metoda PAUSE oznamuje serveru, aby přerušil vysílání multimediálních dat.
7. Metoda TEARDOWN oznamuje serveru, aby ukončil vysílání multimediálních
dat a rozvázal s klientem spojení.
8. Metoda GET_PARAMETERS požaduje získání zvoleného parametru. Pokud
je metoda prázdná, testuje, zda opačná strana je či není k dispozici(obdoba operace
ping).
9. Metoda SET_PARAMETERS požaduje nastavení určitých parametrů prezentaci specifikované pomocí URI.
10. Metoda REDIRECT oznamuje klientovi nutnost přesměrovat se na jiný server.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
11. Metoda RECORD spouští záznam multimediálního vysílání.
15
16
FEKT Vysokého učení technického v Brně
Protokol SAP (Session Announcement Protocol)
Protokol SAP Session Announcement Protocol slouží k oznamování multicastových relací
a je definován v RFC 2974 [6]. Vysílací server pravidelně odesílá informace o relacích na
známou multicastovou adresu a port právě prostřednictvím protokolu SAP. Zpráva SAP
nenese žádné informace o počtu zúčastněných stran v relaci, pouze oznamuje, že určitá
relace existuje . Obsahuje popis relace, zpravidla protokolem SDP, a může obsahovat
autentizační hlavičku.
Zpráva SAP využívá vždy port 9875, životnost paketu (TTL) je zpravidla nastavena na
255. Bitová rychlost pro odesílání SAP zpráv je standardně nastavena na 4000 bit/s.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
17
Adresace v IP sítích
Dle využití existují celkem 3 typy IP adres (obrázek 2.2):
• Individuální (UNICAST) – Datagramy jsou směrovány pouze na jednu stanici v
síti.
• Všeobecné (BROADCAST) – Využívají se pro vyslání jedné zprávy všem dosažitelným stanicím (většinou adresa 255.255.255.255 – lokální všeobecné směrování).
Nevýhodou tohoto vysílání je nadměrná zátěž sítě.
• Skupinové (MULTICAST) – Data se směrují do skupiny, do které jsou připojeny
pouze stanice, které mají o dané vysílání zájem.
UNICAST
MULTICAST
Skupina
BROADCAST
Obrázek 2.2: UNICAST vs. MULTICAST vd. BROADCAST
18
FEKT Vysokého učení technického v Brně
2.2
Laboratorní úloha – Analýza multimediálních
protokolů pomocí programu Wireshark
2.2.1
Cíle úlohy
Cílem laboratorní úlohy je seznámit se s volně dostupným softwarovým analyzátorem
síťového provozu s názvem Wireshark a analyzovat základní síťové toky.
2.2.2
Zadání
1. Naučte se zachytit síťový provoz programem Wireshark.
2. Naučte se filtrovat zachycený síťový provoz dle různých kritérií.
3. Naučte se analyzovat zachycený a filtrovaný provoz a jednotlivé pakety na všech
vrstvách TCP/IP modelu.
4. Na konkrétním případu analyzujte VoIP hovor.
2.2.3
Pokyny k vypracování
Jak zachytit komunikaci na lokálním síťovém rozhraní?
Spusťte zachytávání paketů a poté se připojte pomocí IE na adresu http://www.vutbr.cz.
Jakmile se vám načte webová stránka, ukončete zachytávání a analyzujte výměnu paketů.
Vzhledem k tomu, že na síťové kartě probíhá mnoho procesů, je vhodné provoz filtrovat.
1. Spusťte program Wireshark.
2. Zvolte Capture-Interfaces. Vyberte síťové rozhraní, které chcete analyzovat a stiskněte tlačítko Start – Odstartuje se zachytávání provozu na síťovém rozhraní.
3. Pro ukončení zachytávání zvolte Capture-Stop.
Jak filtrovat provoz?
Síťový provoz můžete filtrovat dle mnoha kritérií. Nejčastěji filtrujeme dle protokolů nebo
dle IP adresy. Základní filtry jsou přednastavené pod tlačítkem Filter, ostatní potom
volíme pod tlačítkem Expression....
Filtrace podle IP adresy:
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
19
1. Stiskněte tlačítko Filter.
2. Zvolte filtr podle IP adresy - IP address 192.168.0.1
3. Definujte IP adresu, kterou chcete analyzovat.
4. Stiskněte tlačítko OK.
Vyzkoušejte filtraci i dle jiných kritérií.
Analýza síťového provozu
K analýze síťového provozu slouží funkce v záložce Statistics-Flow Graph. Zde vyberte
all packets a TCP flow. Poté se vám zobrazí okno s grafem jednotlivých toků TCP. Při
označení jednotlivých zpráv je označen příslušný paket v okně analyzátoru.
Úkoly
Nalezněte, v jaké části došlo k výměně zpráv Three-way handshake při navazování spojení
s webovou stránkou http://www.vutbr.cz.
V IP hlavičce zjistěte hodnoty následujících polí:
• TTL,
• protokol vyšší vrstvy,
• údaje o fragmentaci (bylo fragmentováno, jedná se o poslední fragment, popř. jaký
je offset fragmentu).
V TCP hlavičce zjistěte hodnoty následujících polí:
• zdrojový a cílový port,
• sekvenční číslo,
• příznaky.
Analýza VoIP hovoru
Stáhněte si z e-learningu soubor voip.pcap a otevřete jej ve Wiresharku. V tomto souboru
je uložen síťový provoz jednoho hlasového VoIP hovoru prostřednictvím protokolu SIP. K
analýze je vhodné využít záložku Telephony.
20
FEKT Vysokého učení technického v Brně
Volba SIP
Celkové statistiky SIP zpráv.
Volba VoIP Calls
Zobrazí seznam všech hovorů. Je možné zobrazení grafu signalizace, popřípadě přehrání
jednotlivých RTP streamů.
Volba RTP
Vyberte show all streams. Zobrazí všechny RTP streamy. Důležitá je záložka Analyze,
která zobrazuje podrobné statistiky vybraného streamu.
Otázky
• Kolik hovorů bylo uskutečněno?
• Jaké IP adresy mezi sebou komunikovaly?
• Jaké transportní protokoly a jaké porty byly ke komunikaci využity?
• Jaký typ multimediálních dat byl přenášen? (Payload Type)
• Jaké bylo SSRC volajícího a volaného?
• Kolik paketů má nastaveno marker bit a k čemu tento bit slouží?
Jak stanovit typ paketu?
Wireshark umí analyzovat protokoly a přiřadit jim správný typ. Například v případě
multimediálního toku přenášeného protokolem RTP Wireshark podle struktury protokolu
pozná, že se jedná o RTP. V případě, že si není jist, označí jej jako protokol transportní
vrstvy - v tomto případě UDP. Pokud však víte, že se jedná o data s RTP hlavičkou,
můžete tuto skutečnost manuálně nastavit. To lze udělat tak, že označíte paket, který
chcete dekódovat pravým tlačítkem - vyberete Decode as... a vyberete příslušný protokol.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
2.3
21
Laboratorní úloha – IP televize, streamování, video na vyžádání, protokoly RTP, RTCP, SDP,
RTSP, SAP
2.3.1
Cíl úlohy
Cílem cvičení je zprovoznit vysílání dat na multicastovou a unicastovou adresu, video na
vyžádání. Zachytit průběh komunikace - protokol RTP (Real-time Transport protokol),
RTCP (RTP Control Protokol), RTSP (Real-time Streaming Protocol), SDP (Session Describtion Protocol) SAP (Session Announcement Protocol).
2.3.2
Zadání
1. Zprovozněte vysílání na unicastovou adresu.
2. Zprovozněte vysílání na multicastovou adresu.
3. Zprovozněte službu video na vyžádání.
2.3.3
Pokyny k vypracování
Instalace potřebného software
1. Stáhněte si na disk D do adresáře s Váším loginem (který si vytvoříte) aktuální verzi
VLC přehrávače z adresy (http://www.videolan.org).
2. Do téhož adresáře si stáhněte demonstrační video z e-learningu.
3. Spusťte virtuální prostřední VMware Player – Pracovat budete ve virtuálním prostředí s názvem W7 - editujte jej.
4. Nastavte sdílení disku do virtuálního prostředí. Zvolte Edit virtual machine settingsOptions-Shared Folders. Zvolte Always enabled, přidejte disk D a zaškrtněte Map as
network drive in Windows guests.
5. Spusťte virtuální prostředí a v případě, že se Vás program zeptá, zda jste přesunuli
nebo kopírovali toto prostředí, zvolte, že jste ho zkopírovali.
6. Do virtuálního prostředí nainstalujte stažený software VLC (VideoLAN).
22
FEKT Vysokého učení technického v Brně
7. Zjistěte si IPv4 adresu Vašeho virtuálního prostředí a zapište si ji (například příkazem ipconfig v příkazovém řádku). Adresa bude mít tvar 192.168.1.x
8. Rozdělte se do dvojic.
9. Pro zajištění 100procentní funkcionality nebo v případě nefunkčnosti jakékoli služby
restartujte po každé úloze aplikaci VLC.
Vysílání multimediálních dat na UNICASTOVOU adresu
První z dvojice
1. Spusťte přehrávač VLC seznamte s jeho základními funkcemi.
2. Zprovozněte vysílání na UNICASTOVOU adresu (vysílání na kolegův PC – nikdo
jiný toto vysílání nemůže přijmout):
• V záložce Média-Proud... vyberete zdroj pro vysílání – vyberte jeden ze stažených video souborů dostupný na disku. Následně zvolte Pustit proudem a
nastavte parametry přenosu:
– Nový cíl - RTP / MPEG Transport Stream - Přidat.
– Zadejte UNICASTOVOU IP adresu druhého PC + port (zvolte libovolný
z dynamického rozsahu).
– Deaktivujte překódování.
– Stiskněte tlačítko Stream.
Druhý z dvojice
• Spusťte přehrávač VLC seznamte s jeho základní funkcionalitou.
• Otevřete stream, který Vám kolega poslal.
• Média – Otevřít síťový proud – zadejte adresu pro příjem toku rtp –
rtp://VašeIPAdresa:Port.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
23
Nyní si vyměňte role a vysílejte z druhého počítače. Přenášený tok zachyťte
ve Wiresharku a analyzujte data na síťové, transportní a aplikační vrstvě.
Vysílání na MULTICASTOVOU adresu
• Stejným způsobem, jakým jste zprovoznili vysílání na UNICASTovou adresu lze
zprovoznit i vysílání na adresu MULTICASTovou. Zopakujte si, jaký je rozsah multicastových adres a následně každý vyšlete jedno z videí na multicastovou adresu.
Sdělte ostatním adresu vysílání a port. Vyzkoušejte připojit více uživatelů k jedné
skupině. Zopakujte si, jak se chová multicastové vysílání a zopakujte si jeho výhody
a nevýhody.
Protokol SAP – Session Announcement Protocol
Nyní si vyzkoušíte posílání zpráv oznamujících multicastové vysílání. Ty jsou potřebné
v lokálních sítích proto, aby si každý uživatel nemusel pamatovat cesty k jednotlivým
vysílaným streamům. Software VLC podporuje v rámci multicastového přenosu i vysílání
SAP zpráv. SAP zprávy se vysílají na smluvenou multicastovou adresu a známý port.
Při vytváření multimediálního streamu – viz předchozí odstavce lze u každého vysílaného
obsahu zadat jeho název (Název proudu). Zadejte tedy název vysílaného obsahu a pusťte
streamování. V případě, že budete vysílat více videí, bude vysílána ke každému videu
jedna SAP zpráva. Na klientské straně zobrazte Seznam skladeb a zvolte Síťové proudy.
Zde byste měli SAP zprávy zachytávat.
Spusťte program Wireshark, kde zachyťte veškeré posílané SAP zprávy. Na
jaké adrese a jaké informace jsou v SAP zprávě obsaženy? Jaký transportní
protokol a port SAP zprávy využívají?
Video na vyžádání (VoD – Video on Demand)
Video na vyžádání je takové video, kdy klient ovládá své video na vzdáleném serveru a
má ho kdykoli k dispozici. Přenos ze serveru na klientskou stanicí probíhá buď přes unicastovou nebo přes multicastovou adresu. V našem případě budeme využívat unicastovou
adresu. Ke vzdálenému ovládání multimediálních dat slouží protokol RTSP (Real-time
Streaming Protocol).
24
FEKT Vysokého učení technického v Brně
Vytvořte spojení definované obrázkem 2.3.
Uživatel
Koncové zařízení
HTTP
žádost, odpověď,
soubor popisu
Webový server
Webový prohlížeč
Soubor popisu
Prohlížeč
multimediálního
obsahu
Audio/video data
Streamovací server
Obrázek 2.3: Video na vyžádání - obecné schéma
V případě programu VLC pod systémem Windows je nejvhodnější pracovat v záložce
Nástroje-Nastavení VLM. Ve správci médií vyberte Video on Demand (VoD). Zde nastavujete pouze název a vstupní soubor.
Na klientské straně se k danému vysílání přihlásíte tak, že otevřete adresu
rtsp://adresa_Serveru:standardní_port_pro_RTSP/název_vysílání. Spusťte vysílání.
Spusťte program Wireshark a zaznamenejte, jaké zprávy se během řízení multimediálního streamu posílají. Zjistěte, jaká adresa je pro audio signál a jaká
pro video, na jaké adrese můžete tyto toky řídit, jaký kodek je použit pro
audio a video, atd. Zkontrolujte, zda vše odpovídá teorii. Jaký protokol se
používá s protokolem RTSP pro popis médií?
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
3
25
VIDEOKONFERENCE A STANDARD H.323
3.1
Teoretický úvod
Videokonference jsou v současné době používány jako moderní nástroj při komunikaci.
Pod pojmem videokonference si můžeme představit klasický video hovor bod, bod, ale
také vícebodové hovory, kdy je spojeno 3 a více účastníků.
Standard H.323
Standard H.323 definuje možnosti multimediálních komunikací v rámci sítě Internet. Je
široce rozšířený zejména u videokonferenčních spojení. Byl standardizován společností
ITU-T již v roce 1996, současně (datováno k roku 2014) je využívána 7. verze tohoto
standardu. Standard H.323 popisuje infrastrukturu audio-vizuálních služeb v paketově
orientovaných sítích, které nemohou zajistit garantovanou kvalitu služeb. Definuje prvky
sítě a protokoly, které lze v rámci komunikace použít. Základní protokoly, které standard
H.323 definuje, jsou na obrázku 3.1.
Prvky sítě H.323
Standard H.323 definuje 4 základní prvky sítě:
1. terminál (Terminal),
2. brána (Gateway),
3. gatekeeper (Gatekeeper),
4. vícebodová řídící jednotka (Multipoint Controller Unit) .
Terminál
Terminál slouží k obousměrné komunikaci v reálném čase. Terminál H.323 může být osobní
počítač nebo samostatné hardwarové zařízení. Podporuje vždy hlasovou komunikaci, volitelně může podporovat video i datovou komunikaci. Terminál je jedinou povinnou součástí
architektury H.323.
Terminály se dělí na:
26
FEKT Vysokého učení technického v Brně
Audio data
Video data
Řídící data koncové stanice
Specifikováno v H.323
Kodeky
Kodeky
G.7xx
H.26x
Hovorová
signalizace
H.225.0
RAS
signalizace
H.225.0
Signalizace
pro řízení
médií
RTP/RTCP
Transportní vrstva – TCP/UDP
Obrázek 3.1: Základní protokoly definované standardem H.323
1. softwarové H.323 terminály (obrázek 3.2),
2. hardwarové H.323 terminály stolní (obrázek 3.3),
3. hardwarové H.323 terminály do jednacích místností (obrázek 3.4),
4. hardwarové H.323 terminály – teleprezence (obrázek 3.5),
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
Obrázek 3.2: Softwarový terminál
Obrázek 3.3: Hardwarový terminál – stolní
27
28
FEKT Vysokého učení technického v Brně
Obrázek 3.4: Hardwarový terminál – jednací místnost
Obrázek 3.5: Hardwarový terminál – teleprezenční místnost
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
29
Komponenty terminálu a jejich vztahy jsou zobrazeny na obrázku 3.6.
Definováno v H.323
Zdroj videa
Kodeky videa
H.261, H.263,
H.264
Zdroj audia
Kodeky audia
G.711, G.722,
G.723, G.728,
G.729
Zdroj
aplikačních dat
T.120, ...
Zpoždění
Vrstva
H.225.0
Síťové
rozhraní
Řízení systému
Řízení H.245
Uživatelské
rozhraní
řízení systému
Řízení hovoru
H.225.0
Řízení RAS
H.225.0
Obrázek 3.6: Obecný terminál H.323
Identifikace terminálů v síti H.323 :
• Sada číslic dle doporučení E.164 – založeno na standardu ITU-T E.164, který
popisuje číslovací plán pro mezinárodní telekomunikační síť. Maximální doporučený
počet číslic je 14.
• H.323 ID – textový alias, například konferencniMistnost. H323ID je použitelné
pouze lokálně v rámci jednoho gatekeeperu.
• URL ID – formát h323:uzivatel@nazevHostitele, například h323:cika@gk.
vutbr.cz. Tento formát je vhodný například pro webově založené vytáčení.
• MobileUIM – se využívá v bezdrátových sítích (blíže popsáno v ITU-T H.246).
• E-mail ID – identifikuje terminál pomocí e-mailové adresy.
• Transportní adresa – identifikuje terminál prostřednictvím adresy daného zařízení.
30
FEKT Vysokého učení technického v Brně
Brána
Brána v síti H.323 poskytuje propojení s ostatními komunikačními sítěmi sítěmi, například
s analogovou telefonní sítí PSTN (Public Switched Telephone Network), SIP sítí, mobilními sítěmi apod. Vzájemné propojení je zajištěno překladem signalizačních protokolů,
přeformátováním a překódováním médií a informací mezi sítěmi připojenými k bráně.
Brána není využívána při propojení dvou či více terminálů H.323 v rámci sítě H.323.
Gatekeeper
Gatekeeper poskytuje služby pro správu a řízení hovorů. Gatekeeper je stejně jako brána a
MCU volitelnou součástí H.323. Pokud je však zapojen v síti, potom musí všechny koncové
body využít jeho služby. Oblast, kterou pokrývá jeden gatekeeper se nazývá ZÓNA. V
případě výskytu více gatekeeperů existuje více zón. Komunikaci mezi zónami zajišťuje
gatekeeper.
V případě, že je v síti gatekeeper implementován, stará se o:
• Překlad adres – Překládá aliasy na IP adresy.
• Řízení přístupu – Řídí přístup koncových bodů do sítě H.323. K tomu používá
zprávy RAS, Admission Request (ARQ), Confirm (ACF) a Reject (ARJ).
• Řízení šířky pásma – Poskytuje podporu k řízení šířky pásma používáním zpráv
Bandwith Request (BRQ), Confirm (BCF) a Reject (BRJ). Například pokud má
síťový manažer daný možný počet současných spojení v síti H.323, potom gatekeeper
zamítne jakékoli další spojení přesahující tento počet.
• Management zóny – Poskytuje management pro registrované terminály, brány a
jednotky MCU.
Volitelné funkce gatekeeperu:
• Signalizace hovorů – Gatekeeper může směrovat signalizaci hovorů mezi koncovými body H.323. V konferenci typu bod-bod může gatekeeper spravovat hovorovou
signalizaci H.225, nebo může být tato signalizace směrována přímo mezi terminály.
• Autorizace hovorů – Gatekeeper může povolit nebo zamítnout jakýkoli hovor.
Rozhodnutí pro zamítnutí může být z důvodu přístupových práv nebo časové nedostupnosti k určitému terminálu nebo bráně.
• Management hovorů – Gatekeeper smí udržovat informace o všech aktivních
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
31
hovorech.
Jednotka MCU
MCU (Multipoint Controller Unit) jednotka umožní přijímat a přeposílat veškeré multimediální toky od účastníků ve vícebodových konferencích. Je složená ze dvou částí:
1. Multipoint Controller (MC) – je obsažena vždy pouze jednou.
2. Multipoint Processor (MP) – může být obsažen více než jednou.
Multipoint Controller řídí aktivní konferenci, stará se o signalizaci a výměnu zpráv s
koncovými body a řídí veškeré zdroje pro hlas a video. MC nezpracovává žádné multimediální streamy.
Multipoint Processor pracuje se všemi multimediálními streamy. Klasická jednotka
MCU obsahuje jeden MP na zpracování hlasových signálů a jeden MP pro zpracování
video signálů. MP generuje odchozí streamy a posílá je zpět k účastníkům konference.
Při komunikaci 3 a více terminálů se používá MCU jednotka, ve které se vytvoří virtuální
konferenční místnost. Ta se nastavuje dle svého chování do módů:
1. Voice-Activated – V módu Voice-activated je jednotkou MCU posílán obraz právě
hovořícího uživatele. Toho specifikuje podle hladiny hluku (podle toho, kdo právě
hovoří). Výjimkou je hovořící uživatel (aktivní), ten dostává od jednotky MCU obraz předchozího hovořícího uživatele. Tato výjimka je dána tím, že každý koncový
terminál umožňuje uživateli vidět sama sebe.
2. Continuous Presence – Konference typu Continuous Presence (CP) mohou zobrazit dva i více účastníků současně. Multimediální procesor v tomto režimu upraví
všechny vstupní video sekvence a rozdělí je do jednotlivých částí výsledného videa.
Během tohoto procesu může být původnímu videu zmenšena přenosová rychlost
nebo změněno rozlišení. Při rozdělení obrazovky záleží na jednotce MCU, jaké režimy povolí.
3. Lecture Mode – V tomto módu je vždy hlavním hovořícím lektor, který je v
hlavním okně. Připojení studenti jsou v módu Continuous Presence a v případě, že
mluví, objeví se v postranních oknech.
32
FEKT Vysokého učení technického v Brně
Signalizace v síti H.323
K signalizaci se využívají protokoly:
• H.225 call signaling – poskytuje inicializaci spojení mezi účastníky
• H.225 RAS - (Registration, Admission, Status) – poskytuje řízení šířky pásma,
registraci a lokalizaci uživatelů.
• H.245 media control – poskytuje mechanizmy pro dohodnutí typů kodeků a vlastností koncových bodů.
Signalizace RAS
H.225-RAS je protokol používaný mezi koncovými body (terminál, brána) a gatekeeperem.
RAS je používán k registraci, ke kontrole přístupu, kontrole šířky pásma, zjištění stavu a
k rozvázaní komunikace mezi koncovými body a gatekeeperem. Tento signalizační kanál
je otevřen mezi koncovým bodem a gatekeeperem ještě před otevřením ostatních kanálů
a využívá nespolehlivého přenosového protokolu UDP, portu 1718.
H.225 RAS umožňuje:
• nalezení gatekeeperu,
• registraci koncového bodu,
• lokalizaci koncového bodu,
• zajištění přístupu,
• informace o stavu,
• informace o šířce pásma.
Nalezení gatekeeperu je manuální nebo automatický proces koncových bodů používaný
k nalezení gatekeeperu. V manuální metodě koncové body konfigurují IP adresu gatekeeperu. Registrace může být okamžitá, avšak pouze k předem definovanému gatekeeperu. K
registraci je používán protokol UDP a port 1719. U automatické metody dochází k tomu,
že koncový bod se připojí do multicastové skupiny na adresu 224.0.1.41 na port 1718 a
naslouchá, zda se v síti vyskytuje nějaký gatekeeper. Pokud ano, přihlásí se k němu. K
tomu jsou využívány zprávy:
• Gatekeeper Request (GRQ) – Zpráva posílaná na multicastovou adresu pro
nalezení gatekeeperu.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
33
• Gatekeeper Confirm (GCF) – Odpověď na zprávu GRQ nesoucí adresu gatekeeperu.
• Gatekeepe Reject (GRJ) – Odpověď informující koncový bod, že gatekeeper neakceptuje jeho požadavek k registraci.
Registrace koncového bodu je proces umožňující připojení koncového bodu k zóně a
k informování gatekeeperu o jeho IP adrese a aliasu. K tomu je možné využít celkem 6
zpráv:
• Registration Request (RRQ)
• Registration Confirm (RCF)
• Registration Reject (RRJ)
• Unregistred Request (URQ)
• Unregistred Confirm (UCF)
• Unregistred Reject (URJ)
Funkce lokalizace koncového bodu je využívána koncovými body a gatekeepery ke
zjískání kontaktních informací. Lokalizační zpráva je poslána ke gatekeeperu nebo na
multicastovou adresu. Gatekeeper odpovídá kontaktem na užvatele dle jeho databáze.
Pro lokalizaci může být využito třech zpráv:
• Location Request (LRQ) – zpráva posílána ke gatekeeperu pro získaní kontaktních informací pro jeden nebo více aliasů.
• Location Confirm (LCF) – zpráva posílána gatekeeperem potvrzující LRQ, obsahuje adresu koncového bodu.
• Location Reject (LRJ) – zpráva posílána gatekeeperem zamítající LRQ, zpravidla v případě, když požadovaný koncový bod není u gatekeeperu registrován.
Zajištění přístupu poskytuje základní řízení přístupu a informaci o řízení šířky pásma.
Gatekeeper autorizuje přístup do sítě H.323 potvrzením nebo zamítnutím žádosti o přístup. Žádost o přístup obsahuje požadovanou šířku, kterou může gatekeeper v odpovědi
redukovat. Při zajištění přístupu mohou být využity následující zprávy:
• Admission Request (ARQ) – zpráva posílána koncovým bodem ke gatekeeperu
34
FEKT Vysokého učení technického v Brně
při zahájení hovoru.
• Admission Confirm (ACF) – zpráva posílána gatekeeperem při povolení hovoru.
• Admission Reject (ARJ) – zpráva posílána gatekeeperem při zamítnutí hovoru.
Informace o stavu slouží k monitorování stavu uživatele (Online, offline, ...). Zpráva
je typicky posílána každých 10 sekund. K monitorování stavu je využívání následujících
zpráv:
• Information Request (IRQ) – zprávu posílá gatekeeper ke koncovému bodu pro
vyžádání stavu.
• Information Request Response (IRR) – zpráva posílána koncovými body ke
gatekeeperu jako odpověď na IRQ. V případě, že to gatekeeper požaduje, je tato
zpráva posílána koncovými body periodicky.
• Status Enquiry – zpráva posílána pro získání stavu probíhajícího hovoru. Typicky
ji posílá gatekeeper k ověření, zda je hovor ještě aktivní.
Informace o šířce pásma je v využívána při posílání zpráv ARQ/ACF/ARJ. Šířka
pásma může být měněna i v průběhu hovoru. Využívá následující zprávy:
• Bandwith Request (BRQ) – zpráva posílána koncovými body ke gatekeeperu při
požadavku zvýšení nebo snížení šířky pásma dané relace.
• Bandwith Confirm (BCF) – zpráva posílána gatekeeperem potvrzující BRQ.
• Bandwith Reject (BRJ) – zpráva posílána gatekeeperem zamítající BRQ.
Hovorová signalizace H.225
Hovorová signalizace H.225 je užívaná pro inicializaci a ukončení spojení dvou koncových
bodů H.323. Hovorová signalizace zahrnuje výměnu zpráv H.225 přenášených přes TCP.
Zprávy H.225 jsou posílány mezi koncovými body i v případě, že v síti není žádný gatekeeper. Pokud gatekeeper existuje, jsou tyto zprávy přenášeny buď přímo mezi koncovými
body, nebo jsou směrovány přes gatekeeper. Signalizace H.225 využívá protokol transportní vrstvy TCP a port 1720.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
35
Běžně užívané signalizační zprávy H.225
Zpráva Setup je používána k inicializaci hovoru. Před samotným vysláním této zprávy
musí být navázáno spojení TCP. Během zpracování zprávy Setup může být během stanoveného časového intervalu hovor ukončen. Nejdůležitější informace přenášená v této
zprávě je informace o typu spojení (audio, audio+video, ...). Volitelně může být uvedené
číslo volaného ve formátu E.164.
Zpráva Call Proceeding je volitelná zpráva vysílána volanou stranou, která indikuje,
že volaná strana zpracovává hovor.
Zpráva Alerting je volitelná zpráva, která potvrzuje, že žádost o sestavení hovoru je na
volané straně indikována (zvuková nebo grafická signalizace).
Zpráva Setup ACK je potvrzovací zpráva na zprávu Setup vysílaná volanou stranou k
volající straně.
Zpráva Connect je vysílaná volajícím k volanému a indikuje zahájení hovoru. Od této
chvíle je v případě placeného hovoru hovor účtován.
Zpráva Notify umožňuje koncovým bodům výměnu informací během hovoru.
Zpráva Release Complete je vyslána jak volajícím, tak i volaným, a to při požadavku
na ukončení hovoru.
Směrování hovorové signalizace může být zajištěno dvěma způsoby:
• Přímá signalizace koncových bodů – zprávy hovorové signalizace jsou posílány
přímo mezi dvěma koncovými body.
• Signalizace řízená gatekeeperem – veškeré zprávy hovorové signalizace jsou
posílány přes gatekeeper.
Řídicí signalizace H.245
Řídící signalizace poskytuje mechanizmus pro dohodnutí typů přenášených médií a vytvoření přenosových kanálů pro RTP. Díky zprávám H.245 si koncové body mohou vyměnit
informace o používaných kodecích a o jejich schopnostech. Signalizační zprávy H.245 jsou
přenášeny po sestavení hovoru protokolem H.225 a používají transportní protokol TCP.
36
FEKT Vysokého učení technického v Brně
Běžně užívané signalizační zprávy H.225
Zpráva Terminal Capability Set (TCS) obsahuje informace o schopnostech vysílací
strany:
• Seznam podporovaných audio a video kodeků s jejich parametry, způsob jejich paketizace a Payload Type pro RTP.
• Podporovaný typ DTMF (Dual-tone multi-frequency).
• Informace, zda je podporován fax T.38, signalizace DTMF podle RFC 2833 a řízení
vzdálené kamery (FECC - Far-End Camera Control).
Zpráva Simultaneous Capability Set je volitelnou zprávou nesoucí informaci, které
kodeky mohou pracovat v jeden okamžik (společně). Existují terminály, které nemohou
současně použít některé z kodeků a to například z důvodu výkonnosti procesoru apod.
Zpráva User Input Indications je využívána pro přenos číslic ke vzdálenému koncovému bodu (například DTMF).
Zpráva Master-Slave Determination (MSD) stanovuje, který z koncových bodů
bude řídit relaci. Koncové stanice si vymění zprávy MSD s náhodně vygenerovaným číslem v položce Terminal Type. Koncový bod s nejvyšším číslem se stane master, ostatní
získají status slave. V případě, že je v síti použita jednotka MCU, přebírá status master
ona.
Zpráva Open Logical Channel (OLC) slouží k otevření logického kanálu pro přenos
dat mezi koncovými body. OLC je posílána po dohodnutí parametrů pomocí zpráv MSD.
Otevřený kanál je vždy pouze jednosměrný. Logický kanál je vytvořený po zaslání zprávy
OLC ACK od volajícího k volanému a je určený pro přenos multimediálních dat.
Zpráva Open Logical Channel Acknowledgment (OLC ACK) je posílána jako
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
37
potvrzení na zprávu OLC a potvrzuje otevření logického kanálu.
Zpráva Close Logical Channel (CLC) zavírá logický kanál při ukončení spojení.
Zpráva Close Logical Channel Acknowledgment (CLC ACK) potvrzuje uzavření
logického kanálu při ukončení spojení.
Zpráva End Session Command indikuje konec relace H.245. Po odeslání této zprávy
koncový bod přestává vysílat. Tato zpráva nemá žádné potvrzení.
38
FEKT Vysokého učení technického v Brně
3.2
3.2.1
Laboratorní úloha – Videokonference
Cíl úlohy
Cílem laboratorní úlohy je zprovoznit dvoubodovou a vícebodovou videokonferenci, zachytit a prostudovat signalizaci H.323, seznámit se s videokonferenčním systémem AVAYARADVISION, jeho komponentami, administrací uživatelů, konfigurací klientů a dalšími
funkčními částmi systému. Seznámit se s hardwarovými terminály AVAYA-RADVISION
pasivními softwarovými terminály RADVISON a aktivními softwarovými terminály LifeSize.
3.2.2
Zadání
1. Nastavte videokonferenční systém.
2. Nastavte HW i SW terminály pro videokonference.
3. Zprovozněte dvoubodovou videokonferenci a analyzujte protokoly H.323.
4. Zprovozněte vícebodovou videokonferenci a vyzkoušejte si funkce moderování.
3.2.3
Pokyny k vypracování
Videokonferenční systém, který budete v laboratoři používat, se skládá z MCU jednotky SCOPIA Elite 5110 (viz Scopia_Elite.pdf), Gatekeeperu ECS (viz Gatekeeper
ECS.pdf), řídícího softwaru Scopia Management (viz Scopia_Management.pdf), softwarových terminálů Scopia Desktop (viz Scopia_Desktop.pdf) a SW a HW terminálů. Vše
konfigurujte pomocí Internet Exploreru!!!
• Pracujte ve dvojicích
– 1. dvojice: login/heslo bmds1/bmds*1234
– 2. dvojice: login/heslo bmds2/bmds*1234
• Komponenty videokonferenčního systému jsou:
– Jednotka MCU (Multipoint Conferencniong Unit)
– Gatekeeper
– SCOPIA Management Administration
https://147.229.144.209:8445/iview
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
39
– SCOPIA Desktop Server
http://147.229.144.209
Scopia Management Administration
V této části laboratorní úlohy se zběžně seznamte s managementem systému.
• Přihlaste se do SCOPIA Management Administration a prostudujte zónu VUT ECS
GK (Záložka Devices).
• Zjistěte, na jaké IP adrese se nachází jednotka MCU. Dále zjistěte v záložce Settings,
jaké služby MCU jednotka nabízí, jejich maximální bitové rychlosti a maximální
podporované rozlišení. V tomto rozhraní můžete dále sledovat síťová zatížení v průběhu konference a nastavení gatekeeperu včetně přihlášených uživatelů. Zjistěte, zda
je ke gatekeeperu přihlášen nějaký koncový bod.
• Zopakujte si, k čemu slouží gatekeeper.
• V záložce Meetings můžete sledovat probíhající konference.
• V záložce Endpoints je seznam registrovaných terminálů. Zjistěte, které terminály
jsou on-line.
• V laboratořích budete používat terminál VC240 - 1 a VC240 - 2. Zjistěte jejich H323
ID a číslo E164 a IP adresu.
Průběh registrace H.323 terminálu ke gatekeeperu
• Spusťte program Wireshark a spusťte monitorování síťového provozu, spusťte analýzu síťového provozu na síťové kartě, která je připojená do veřejné sítě.
• Spusťte SW klienta Polycom RealPresence Desktop.
• Přihlášení na úvodní obrazovce přeskočte.
• Zaregistrujte terminál ke gatekeeperu:
1. Zvolte Settings.
2. V záložce H.323 zkontrolujte zapnutí H.323 protokolu a povolte registraci ke
gatekeeperu.
3. Zadejte potřebné údaje o gatekeeperu. H.323 Alias a Extension zvolte libovolně
s tím, že alias je jméno, a extension je klapka.
40
FEKT Vysokého učení technického v Brně
4. Proveďte registraci.
5. Průběh registrace je zachycen v programu Wireshark (použijte filtr na IP adresu). Zjistěte, jaké zprávy se během registrace přenáší, a vyčtěte z nich, jakým
způsobem se dá registrovaného uživatele zavolat (aliasy) – poznamenejte si je –
jsou dostupné taktéž v položce Endpoints v nastavení gatekeeperu – dostupné
přes Scopia Management Administration. Poorovnejte Vámi získané poznatky
s obrázkem 3.7.
VOLAJÍCÍ A
Gatekeeper
VOLANÝ B
REGISTRACE TERMINÁLŮ U GATEKEEPERU
RRQ, E.164 čí
slo = 5522
RCF
o =663
RRQ, E.164 čísl
RCF
3
Obrázek 3.7: Registrace terminálu u Gatekeeperu
6. Jaký transportní protokol a jaký port je při registraci využíván?
7. Jaký protokol aplikační vrstvy je při registraci využíván?
Přímé volání bez gatekeeperu
1. Vyzkoušejte s kolegou přímé volání mezi klienty – bez gatekeeperu.
2. Je nutné odhlásit se z gatekeeperu – volání typu point to point.
3. Pro spojení využijte IP adresu kolegy.
4. Průběh hovoru zachyťte a analyzujte. Ve Wiresharku sestavte graf signálových toků
a srovnejte jej s Vašimi teoretickými znalostmi. Jakým způsobem proběhla výměna
zpráv H.245, klasicky (obrázek 3.8) nebo ve zkráceném mód (obrázek 3.9)?
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
VOLAJÍCÍ
41
VOLANÝ
TCS (G.722, H.264)
MSD
TCS (G.722, H.264)
MSD
TCS ACK
TCS ACK
MSD ACK
OLC G.722
OLC H.264
OLC G.722
OLC H.264
OLC ACK
OLC ACK
Flow Control
Miscellaneous Command
OLC ACK
OLC ACK
Audio/video RTP
CLC Audio
CLC ACK
CLC Video
CLC ACK
End Session Command
Obrázek 3.8: H.245 – klasická výměna zpráv
5. Zjistěte, jaký byl použit kodek pro přenášené audio a video, jaký byl Payload Type
(PT) v RTP.
6. Najděte, v jaké zprávě se přenáší informace, kdo bude v hovoru master a kdo slave.
Podle čeho se stanoví master?
42
FEKT Vysokého učení technického v Brně
VOLAJÍCÍ
VOLANÝ
H.225 Setup (OLC/Reverse Channel Info)
Alerting
Connect (OLC/Reverse Channel Info)
RTP
Obrázek 3.9: H.245 – zkrácený mód výměny zpráv
Přímé volání s gatekeeperem
1. Vyzkoušejte s kolegou přímé volání mezi klienty – s gatekeeperem.
2. Je nutné přihlásit se ke gatekeeperu.
3. Pro spojení využijte registrované ID kolegy.
4. Průběh hovoru zachyťte a analyzujte. Ve Wiresharku sestavte graf signálových toků
a srovnejte jej s Vašimi teoretickými znalostmi.
5. Jaké zprávy se zde objevily navíc od předešlého kroku?
6. K čemu je výměna těchto zpráv?
Vícebodové konference s použitím MCU
1. Vícebodové konference jsou organizovány administrátorem videokonferenčního systému tak, že se vytvoří virtuální místnost, do které vstupují uživatelé na vyzvání.
Místnost je definována technickými parametry, číslem místnost, může být zabezpečena PINem, atd.
2. Virtuální místnosti se vytváří v uživatelském portálu na adrese https://147.229.
144.209:8445. Přihlaste se na tento portál stejnými údaji jako na Scopia Management.
3. Stiskněte tlačítko Schedule.
4. Do konference můžete přizvat uživatele pomocí e-mailu, nebo můžete přímo vyvolat
registrovaný terminál.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
43
5. Nastavení záložky Message:
• V okně Schedule a Meeting zadejte do pole To: e-maily uživatelů, které chcete
do konference přizvat – zadejte tedy vlastní e-maily.
• Do pole Subject zadejte název konference.
• Zadejte datum a čas zahájení konference a délku konference.
• V záložce Where: zvolte typ konference – postupně vyzkoušejte všechny typy
a srovnejte je.
6. Nastavení záložky Endpoints:
• Vyberte hardwarové terminály, které chcete přizvat do konference. K dispozici
máte terminál VC240-1 a VC240-3.
7. Záložka Availability monitoruje vytížení MCU jednotky a přizvaných terminálů.
8. Nastavení záložky Advanced:
• Meeting PIN – číselné heslo pro vstup do místnosti.
• Meeting host - automaticky se přidává Váš login.
• Moderator PIN – číselné heslo pro přístup k moderování konference.
• Video Layout – zde můžete nastavit počáteční rozložení obrazovky.
• Reserved ports – zde můžete rezervovat porty na MCU jednotce v případě, že
víte počet účastníků a jejich kapacitu pro připojení – nechejte prázdné
9. Pro vytvoření místnosti stiskněte ikonu Send.
10. Dojde k rozeslání e-mailu všem stranám a v daný čas je konference vytvořena. Pokud
byly přizvány některé hardwarové terminály, jsou automaticky vytočeny v daný čas.
Příchozí hovor tedy zvedněte.
11. Připojte se do konference pomocí pasivních terminálů Scopia Desktop - postupujte
dle manuálu v příchozím e-mailu.
12. Vyzkoušejte si nabízené funkce terminálů, dále si vyzkoušejte moderování konference
jak z pozice pasivního klienta, tak i z pozice Managera na webovém portálu.
44
FEKT Vysokého učení technického v Brně
4
INTERNETOVÁ/VIDEO TELEFONIE, PROTOKOL SIP
4.1
Teoretický úvod
Signalizační protokol SIP (Session Initiation Protocol) zajišťuje inicializaci, změnu a ukončení interaktivní multimediální relace, popřípadě posílání krátkých zpráv (Instant Messaging). Je textově založený a velmi se podobá protokolu HTTP a SMTP (Simple Mail
Transfer Protocol). V současnosti je definován v doporučení RFC 3261 (červen 2002) [13].
Prvky v SIP sítích
V sítích SIP jsou definovány 4 základní síťové elementy:
1. User Agent User Agent (UA) existuje ve 2 variantách:
• Varianta KLIENT, User Agent Client (UAC) – generuje a posílá žádosti a
přijímá a zpracovává odpovědi.
• Varianta SERVER, User Agent Server (UAS) – přijímá a zpracovává žádosti
a generuje odpovědi, které posílá zpět.
2. Proxy server je mezilehlá entita, která je v sítích SIP zodpovědná za přeposílání
žádostí na cílový UAS nebo odpovědi na UAC. Primární funkcí PROXY serveru v
SIP sítích je tedy směrování. Mimo to může také zajišťovat autentizaci a autorizaci
uživatelů.
3. Redirect server je speciální typ UAS, který generuje odpovědi třídy 3xx, které v
sobě nesou adresu volaného. Jeho hlavním úkolem je tedy odeslat zpět UAC adresu,
na které se volaný nachází (přesměrovat).
4. Registrar server přijímá pouze žádosti o registraci SIP REGISTER od UAC a aktualizuje podle nich lokalizační databázi koncových UA, které jsou v rámci domény
spravovány. Registrar udržuje v databázi SIP URI (Uniform Resource Identifier) a
IP adresy. Tato databáze se nazývá Lokační služba. Lokační služba není součástí
SIPu, obsahuje tabulky s AOR (veřejná identita uživatele) a s kontaktními adresami
uživatelů.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
45
Adresace v sítích SIP
SIP adresa jednoznačně identifikuje uživatele v síti SIP a je definována prostřednictvím
URI (Uniform Resource Identifier).
SIP URI má tvar sip:uzivatel@domena(host):port, pole uživatel může být například
jméno nebo telefonní číslo, specifikace portu je volitelná, implicitně je číslo portu
nastaveno na 5060.
Praktické příklady SIP URI jsou následující:
• sip:[email protected],
• sip:[email protected].
Další možnost je využití zabezpečeného SIPu – SIPS. Formát SIPS URI je podobný
formátu SIP URI sips:uzivatel@domena(host):port. SIPS umožňuje každému zařízení zabezpečenou komunikaci se serverem s využitím SSL/TSL (Secure Socket Layer) /
(Transport Layer Security). Implicitní port pro zabezpečenou komunikaci je 5061.
Signalizační zprávy SIP
Signalizační zprávy SIP jsou děleny do dvou kategorií na
• ŽÁDOSTI,
• ODPOVĚDI,
a mají následující strukturu:
• startovací řádek,
– pro žádosti:
METODA_Požadované URI_verze SIP,
– pro odpovědi:
verze SIP_trojciferný kód odpovědi_textová fráze,
• jeden nebo více řádků hlavičky,
• prázdný řádek indikující konec hlavičky,
• volitelné tělo zprávy.
46
FEKT Vysokého učení technického v Brně
Žádosti SIP
Žádosti SIP jsou generovány klientem (UAC) a posílány na server (UAS). V doporučení
RFC 3261 je definováno celkem 6 základních typů žádostí:
1. Metoda INVITE slouží k zahájení nebo modifikaci spojení. Žádost obsahuje veřejnou
identitu volaného UAS. Jakmile UAS žádost přijme, generuje dočasné odpovědi,
alternativně i odpovědi finální.
Zpráva INVITE se může použít k výměně a dohodnutí parametrů v rámci relace.
Jedná se zejména o použité kodeky (audio/video), IP adresy a porty k příjmu RTP
paketů apod. K tomu se využívá protokol SDP.
Zpráva INVITE se také používá pro modifikaci spojení. Říká se jí „re-INVITE“.
Příkladem modifikace je například přidání videa do původní audio konference.
2. Metoda ACK potvrzuje, že UAC přijal finální odpověď na zprávu INVITE. ACK je
používána pouze s žádostí INVITE. Zpráva nesoucí metodu ACK může obsahovat
popis dostupných prostředků a médií iniciátora relace pouze v případě, že tyto
informace nebyly přeneseny v metodě INVITE.
3. Metoda OPTIONS je používána pro dotázání se UAS na jeho schopnosti. Tím jsou
získány informace o podporovaných metodách, podporovaných kodecích apod.
4. Metoda BYE slouží k ukončení probíhající relace.
5. Metoda CANCEL slouží ke zrušení nevyřízené žádosti (jako je například INVITE).
Metoda CANCEL nemá vliv na předchozí metody, které již byly potvrzeny finálními
odpověďmi.
6. Metoda REGISTER se využívá k registraci klientů a k identifikaci jejich současné
polohy (adresy). UAC generuje žádost REGISTER, která obsahuje následující informace:
• Veřejnou identitu vyjádřenou jako SIP URI. Ta je obsažena v poli To hlavičky.
• Lokaci uživatele vyjádřenou jako SIP URI. Ta je obsažena v poli Contact
hlavičky.
Potvrzení registrace je provedeno odpovědí 200 OK. Po potvrzení je daný uživatel
svázán se svou pozicí v Lokační službě. Registrace je pouze dočasná a musí být
pravidelně obnovována.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
47
Odpovědi SIP
Odpovědi SIP indikují stav žádosti, kterou klient (UAC) poslal na server (UAS). Odpovědi SIP jsou číslovány od 100 fo 699 a jsou seskupeny do šesti kategorií 1xx, 2xx, ..., 6xx
a klasifikovány jako dočasné a finální. Dočasná odpověď indikuje průběh (zpracovávání)
žádosti, neindikuje však její vyřízení. Vyřízení žádosti indikuje odpověď finální.
Kategorie odpovědí
• 1xx – dočasná odpověď
Pokud zpráva začíná číslem jedna, je to pro agenta signál, že jeho žádost byla doručena ke druhému agentovi a ten pracuje na jejím zpracování. Zprávy 1xx nejsou
konečné, což znamená, že nevypovídají nic o úspěšnosti zpracování vyslaného požadavku.
• 2xx – ÚSPĚCH – finální odpověď
Odpovědi začínající číslem dvě informují příjemce o tom, že jeho zpráva byla úspěšně
zpracována.
• 3xx – PŘESMĚROVÁNÍ – finální odpověď
Tyto odpovědi posílá redirect server. Informuje tak UAC o adrese, na které se nachází požadované URI (případně požadovaná služba). Zprávu o přesměrování může
posílat i UAS a to v případě, že má nastavené přesměrování hovoru.
• 4xx – CHYBA NA STRANĚ KLIENTA – finální odpověď
Odpovědi z této kategorie indikují, že žádost nemůže být splněna. Důvod nemožnosti
zpracování žádosti je pak popsán v odeslané odpovědi. To, že se jedná o chybu na
straně klienta, znamená ve většině případů, že žádost měla špatný formát (např.
chybělo některé povinné pole v hlavičce apod.). V této kategorii je definováno více
než třicet odpovědí.
• 5xx – CHYBA NA STRANĚ SERVERU – finální odpověď
Do této kategorie patří odpovědi, které značí, že žádost nemůže být zpracována z
důvodu chyby na serveru. Odpověď většinou obsahuje pole Retry-After, ve kterém
je zapsán časový interval, který udává, kdy je možné se opět pokusit o zaslání
žádosti.
• 6xx – GLOBÁLNÍ CHYBA – finální odpověď
48
FEKT Vysokého učení technického v Brně
Odpovědi z této skupiny může zaslat server v případě, že žádost nemůže být zpracována nikde v síti. Pokud user agent dostane takovouto odpověď, znamená to, že
by neměl opakovat vysílání žádosti do té doby, než uplyne doba obsažená v poli
Retry-After.
Transakce a dialog
Signalizace mezi dvěma UA může být provedena jednou nebo více transakcemi. Každá
transakce začíná vysláním žádosti inicializovanou UAC a končí finální odpovědí přijatou
od UAS. Transakce je jednoznačně identifikován položkami Call-ID, via-branch,
local tag, remote tag a CSeq. Výsledkem transakce je sestavení, modifikace nebo
ukončení relace.
Dialog je definován jako vztah mezi dvěma či více UA setrvávající po celou dobu relace.
Dialog je jednoznačně identifikován položkami Call-ID, tag volajícího a tag
volaného. Během jednoho dialogu může být vyřízeno několik transakcí. Každé transakci
v rámci jednoho dialogu je inkrementována hodnota CSeq.
Rozšíření SIPu
IETF definuje rozšíření základních mechanizmů v SIPu, díky kterým může být protokol
SIP využíván pro zjišťování aktuálního stavu uživatele (presence), Instant Messaging (IM),
a různé rozšíření při vlastním hovoru.
Preference volajícího a volaného
Preference UAC jsou indikovány ve zprávách INVITE nebo SUBSCRIBE přidáním řádků
Accept-Contact, Reject-Contact, Request-Disposition. a detailně popsány v RFC
3841 [14].
Parametrem Request-Disposition volající specifikuje serveru, jakým způsobem by měl
se zprávou zacházet. Zda jako proxy nebo redirect server. V případě proxy serveru uživatel
může dále specifikovat, zda má být zpráva distribuována na všechny lokace uživatele
paralelně, nebo sekvenčně.
Během registrace může uživatel indikovat svoje schopnosti jako je podpora audia, videa
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
49
a IM. V průběhu hledání uživatele se proxy server pokouší vybrat stanici volaného podle
preferencí volajícího. Příkladem je například zprává INVITE nebo SUBSCRIBE, které
mohou nést v hlavičce tyto parametry:
• Accept-Contact:*;video;require;explicit – indikuje, aby zpráva INVITE byla
poslána na koncový bod podporující video přenos.
• Accept-Contact:*;mdgserver;require;explicit – indikuje, že se uživatel chce
připojit přímo do hlasové schránky volaného.
• Accept-Contact:*;mobility=’mobile’ – hovor je sestaven pouze s bezdrátovým
telefonem volaného.
• Request-Disposition:proxy;parallel – indikuje, že by server měl žádost distribuovat na více kontaktů (forking) paralelně.
• Reject-Contact:*;msgserver – indikuje, aby zpráva INVITE nebyla poslána na
koncový bod, který má aktivovanou hlasovou schránku.
Notifikace událostí
RFC 3265 [11] popisuje rozšíření SIPu umožňující UA přihlášení k odběru oznámení jiného
SIP zařízení. Příkladem síťové události je registrace nebo odregistrování se ze serveru,
uložení vzkazu do hlasové schránky, změna statusu uživatele apod.
Metody SUBSCRIBE a NOTIFY
RFC 3265 zavádí 2 nové metody – SUBSCRIBE a NOTIFY. SIP entita se stává odběratelem oznámení jakmile pošle zprávu SUBSCRIBE pro specifický typ události. V
hlavičce žádosti definuje nový řádek Event, ve kterém je uvedena třída a typ požadované události. Pole Event je pro zprávu SUBSCRIBE povinné. Příkladem jsou například Event:presence, kdy je požadavek na indikování statusu uživatele nebo například
Event:reg, kdy je indikován stav registrace uživatele.
UAS, který zpracovává žádost SUBSCRIBE, pracuje jako tzv. oznamovač. V případě
změny stavu posílá žádosti NOTIFY zpět k odběrateli.
Další novou metodou je metoda PUBLISH definovaná v RFC 3903 [9], která slouží k
informování stavů uživatele.
50
FEKT Vysokého učení technického v Brně
Metoda REFER
Metoda REFER, RFC 3515 [18], slouží k přeposlání hovoru k jinému účastníkovi.
Příklad použití je následující: Lukáš volá Alešovi a rozhodne se, že by Aleš měl mluvit s
Danou. Lukáš pošle instrukce k UA Alešovi pomocí zprávy s metodou REFER, díky níž
Alešovu UA poskytne kontaktní informace na Danu. Aleš poté díky získaným informacím
může Danu zavolat.
V případě, že jeden z účastníků chce hovor přepojit k jinému, indikuje, že příjemce by měl
kontaktovat třetí stranu použitím kontaktu uvedeného v žádosti. V případě, že Lukáš udělil souhlas, Aleš se pomocí získaného pokusí zavolat Daně. O stavu spojení poté informuje
Lukáše.
Metoda REFER může být poslána v rámci vytvořeného dialogu k zajištění přesměrování
hovoru. V tomto případě je v hlavičce parametr Refer-To, který specifikuje SIP URI
cílové stanice.
Metoda REFER může být poslána i mimo probíhající dialog. Využití této funkce je například ve službě klikni a volej. V tomto případě uživatel klikne v online adresáři na
uživatele, kterému chce volat. Aplikační server pošle na telefon uživatele zprávu REFER
s adresou volané strany. Po přijetí zprávy REFER telefon volaného začne vyzvánět a poté
vytvoří hovor zasláním zprávy INVITE na kontakt uvedený v hlavičce zprávy REFER v
poli Refer-To.
Dalším uplatněním zprávy REFER je například u konferenčních hovorů. Klient může
poslat zprávu REFER k účastníkovi a požádat ho o poslání žádosti INVITE na konferenční
URI.
Prezence a Instant Messaging
Prezence umožňuje uživatelům publikovat jejich dostupnost a zobrazovat zprávy nebo
ikony u své osoby v rámci tzv. statusu. Instant Messaging (dále IM) slouží k posílání
textových zpráv mezi uživateli v reálném čase.
RFC 3856 popisuje rozšíření SIPu, které umožňuje sdílet informace o prezenci [12]. Pro
zjištění stavu jiného uživatele může být použita metoda SUBSCRIBE. Místo přímého
kontaktu uživatele se svým protějškem může být zpráva SUBSCRIBE poslána na tzv.
presence server, který přijímá žádosti o zjištění stavů uživatelů a publikuje jejich stavy.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
51
Prezence server je síťový server který přijímá žádosti SUBSCRIBE a na základě nich se
dotazuje ostatních uživatelů na jejich aktuální stav. Uživatelé informují o změně stavu
presence server zprávou NOTIFY.
Pro IM byla v RFC 3428 [1] definována nová žádost MESSAGE umožňující přenos zpráv.
Zpráva MESSAGE nese vlastní zprávu ve formátu MIME.
52
FEKT Vysokého učení technického v Brně
4.2
Laboratorní úloha – Konfigurace softwarových
VoIP telefonů
4.2.1
Cíl úlohy
Seznámit se s konfigurací softwarového telefonu X-Lite, ověřit teoretické znalosti o protokolu SIP, SDP a RTP, zachytit různé SIP zprávy síťovým analyzátorem Wireshark.
4.2.2
Zadání
• Navažte dvoubodové VoIP spojení pomocí SIP URI a ověřte funkčnost služby bez
použití proxy serveru.
• Navažte dvoubodové VoIP spojení a ověřte funkčnost služby s použitím proxy serveru.
• Zachyťte průběh spojení a ukončení spojení dvou koncových bodů (VoIP telefonů).
• Přehrajte uskutečněný hovor v programu Wireshark.
• Zjistěte, jaký audio kodek byl pro spojení použit.
4.2.3
Pokyny k vypracování
Nainstalujte do virtuálního prostředí softwarový VoIP telefon X-Lite. Instalační soubory
naleznete v e-learningu.
Konfigurace SW telefonu X-Lite, volání bez PROXY serveru
• Při spuštění programu X-Lite se Vám ve vyskakovacím okně nabídne vytvoření SIP
účtu. Stiskněte tlačítko Add a vytvořte SIP účet. Pro vytvoření SIP účtu v programu
X-Lite pro použití bez PROXY serveru nastavte následující hodnoty:
1. userID – zadejte čtyřmístné číslo (Vaše klapka),
2. Domain – zadejte IP adresu Vašeho PC,
3. v části Domain Proxy nechte odškrtnutý checkbox Register with domain and
receive calls,
4. v záložce Advanced zaškrtněte políčko Send outgoing request directly to target,
5. v záložce Topology nastavte Range of ports used for signaling na 5060 - 5061,
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
53
• připojte do virtuálního prostředí VMware usb kameru kameru. Na vrchní liště zvolte
Removable Device-Logitech Složené zařízení-připojit,
• v programu X-lite nastavte jako mikrofon právě toto USB zařízení,
• vytočte Vašeho kolegu zadejte SIP URI ve tvaru sip:username@ip-adresa:port,
kde username je uživatelské jméno Vašeho kolegy, ip-adresa je IP adresa stroje
Vašeho kolegy a port je port, na kterém naslouchá instalace X-Lite Vašeho kolegy.
Poté stiskněte tlačítko Call.
Sledování síťového provozu
• Spusťte síťový analyzátor Wireshark a zapněte sledování síťového provozu.
• Zaznamenejte fázi sestavení a ukončení hovoru.
• V programu Wireshark vytvořte graf signálových toků a podrobně jej prostudujte
srovnejte ho s teoretickým grafem signálových toků na obrázku 4.1.
Ales
Lukas
INVITE
transakce
200 OK
ACK
transakce
dialog
relace
BYE
transakce
200 OK
volající
volaný
Obrázek 4.1: Základní SIP komunikace bez PROXY serveru
• Specifikujte pakety, které nesou hlasová data.
• Zachyťte sestavení neúspěšného hovoru – volaný hovor nepřijímá nebo volající ukončí
54
FEKT Vysokého učení technického v Brně
hovor ještě než volaný zvedne sluchátko. Jaká metoda SIP zprávy je v tomto případě
využita?
Otázky
1. Jaké zprávy musí být vyměněny pro úspěšné navázání hovoru? Jaké pro jeho ukončení?
2. Ve které metodě/ách SIP zpráv se posílají informace o schopnostech VoIP telefonů?
Jaký protokol se k přenosu používá?
3. Jakou odpověď posílá klient v případě, že hovor zamítnete?
4. Jaký protokol transportní vrstvy síťového modelu TCP/IP a jaký port je standardně
využíván zprávami SIP?
5. Z protokolu RTP zjistěte, jaký kodek je použit pro kódování přenášeného hlasu.
6. Pokuste se v programu Wireshark přehrát zaznamenaný hovor (Lze pouze v případě,
že Wireshark zná daný kodek – například PCMU – nastavte)
Testování hlasových kodeků
V této části cvičení je vašim úkolem otestovat dostupné hlasové kodeky, zjistit jejich
přenosové rychlosti a posoudit kvalitu přenášeného hlasu. Na typu použitého kódování se
dvě stanice nejčastěji domlouvají prostřednictvím protokolu SDP. Zde platí pravidlo, že
preferovaný kodek je v popisu SDP vždy uveden jako první. V programu X-Lite se na
první místo vždy vloží kodek s nejvyšší kvalitou PESQ a tento fakt nelze nijak ovlivnit.
Můžete však kodeky deaktivovat a nechat vždy pouze jeden na testování. To provedete
v menu Softphone-Preferences-Audio Codecs a v seznamu Enabled Codecs necháte pouze
jeden vybraný kodek. Poznamenejte si, jakých přenosových rychlostí jednotlivé kodeky
dosahovaly a obodujte na stupnici 1-5, kdy 5 je nejvyšší skóre, jejich kvalitu. Kvalitu
srovnejte s udávanou PESQ.
Spuštění a nastavení REGISTRAR a PROXY serveru
Nastavuje vždy jen jeden ze dvojice!!!
• Stáhněte a nainstalujte JRE (Java Runtime Environment), k dispozici je v elearningu.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
55
• Stáhněte a rozbalte PROXY server MjServer, dostupný v e-learningu.
• Nastavení SIP serveru se provádí editací textových souborů server.cfg a aaa.db ve
složce config adresáře MjServer.
• V souboru server.cfg změňte:
– IP adresu v poli via-addr na IP adresu Vašeho virtuálního prostředí,
– pole host-port změňte např. na 5065, nebo jiný, na kterém žádná z aplikací
nenaslouchá (na portu 5060 již naslouchá X-Lite).
Pro výpis všech obsazených portů slouží příkaz netstat, který se zadává v příkazové
řádce. Ostatní nastavení ponechte beze změny.
• V souboru aaa.db (databáze uživatelů) vytvořte potřebné záznamy, abyste byli
schopni na serveru zaregistrovat Vaše VoIP telefony (viz tabulka níže). Záznam
Pracoviště 1
Pracoviště 2
1000/bmds
2000/bmds
1001/bmds
2001/bmds
1002/bmds
2002/bmds
1003/bmds
2003/bmds
se skládá vždy pouze z položky user a passwd. Uživatelské jméno se píše do
sekce user a heslo do sekce passwd.
Uživatelská jména zadávejte ve tvaru alias@IP-Adresa, kde alias je přidělené uživatelské jméno (např. 2000) a IP-adresa je IP adresa virtuáního prostředí, kde bude
spuštěn MjServer.
• Přejděte do adresáře MjServer a spusťte příkazový řádek (V Total Commanderu
napište do řádku dole příkaz cmd). V příkazovém řádku napište příkaz proxy.bat a
stiskněte Enter.
• Proxy a registrar nyní běží a naslouchá na nastaveném portu a IP adrese.
• Ukončit práci serveru je možné pomocí stisku kláves Ctrl+C (poté potvrďte ukončení
dávkové úlohy pomocí klávesy Enter).
56
FEKT Vysokého učení technického v Brně
• Po ukončení práce serveru si prohlédněte logy, které se ukládají do adresáře log.
• Můžete vyzkoušet změnit nastavení serveru a pozorovat změny, které nastanou.
Podrobná dokumentace k jednotlivým nastavením se nachází v souboru mjsip.cfg.txt
v adresáři config.
Registrace softwaru X-Lite k REGISTRAR serveru
• Úpravu nastavení SIP účtu můžete provést po kliknutí na Menu Softphone-Account
Settings. Vyberte záložku Account. Zaškrtněte checkbox Register with domain and
receive calls a z možností níže vyberte Domain.
• Do polí User name a Authorization user name zadejte vaše uživatelské jméno (např.
1002) a do pole password odpovídající heslo (bmds).
• Důležité upozornění: vzhledem k tomu, že server nenaslouchá na defaultním portu
pro službu SIP, je nutné tento port explicitně uvést! Do pole Domain tedy napište IP
adresu virtuálního prostředí PC, kde běží MjProxy server ve tvaru: IP-adresa:port,
kde port je port, který jste zvolili při nastavování serveru (např. 5065).
• V záložce Topology odškrtněte Range of ports used for signaling. Tím pádem bude
X-Lite naslouchat na defaultním SIP portu 5060.
• Pokud jste zadali všechny údaje správně, X-Lite se zaregistruje na serveru a na
obrazovce se objeví vaše uživatelské jméno.
• Registraci zaznamenejte v programu Wireshark a zjistěte, jaké zprávy SIP jsou během registrace mezi telefonem a proxy serverem vyměněny. Srovnejte ji s teoretickým
grafem registrace s autentizací na obrázku 4.2.
Konferenční hovor
Tento úkol provádějte ve čtveřici!!! – během řešení si vyměňte role tak, aby všichni měli
možnost tuto úlohu vyzkoušet.
• Nastavuje vždy jen jeden pro všechny.
• Nastavte MjServer tak, aby v databázi byly 4 různé účty (např. 1111, 2222, 3333 a
4444).
• Spusťte MjServer.
• Spusťte wireshark na stejném počítači, jako na kterém běží MjServer.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
57
REGISTRAR
SERVER
Klient
REGISTER
W-Authenticate
401 Unauthorized + WW
REGISTER + Authorizatio
n
200 OK
Obrázek 4.2: Registrace s autentizací
• Klienty X-Lite nastavte tak, aby se zaregistrovali na MjServer.
• Navažte hovor z klienta 1111 na 2222.
• Po navázání hovoru zvolte na straně volajícího v rozbalovacím menu vedle ikony call
Start Conference Call (původní hovoru bude On Hold).
• Z linky č.2 vytočte číslo 3333 (naváže se hovor na číslo 3333, který přijměte).
• Poté stiskněte v aplikaci klienta 1111 tlačítko conf. Všechny hovory budou spojeny
do konference.
• Ukončete všechny hovory. Vyzkoušejte různé kombinace toho, který účastník ukončuje hovor.
• Ukončete zachytávání ve Wiresharku.
• Analyzujte provoz.
Úkoly
1. Jaké zprávy musí být vyměněny mezi klientem a serverem při procesu registrace?
Jak se liší druhá zpráva, kterou posílá klient serveru od první?
2. Na základě které části zprávy server pozná, že uživatel je ten, za kterého se vydává
58
FEKT Vysokého učení technického v Brně
(že zná správné heslo)?
3. Jaké SSRC mají VoIP klienti?
4. Zjistěte, zda se RTP stream posílal přímo mezi klienty nebo zda byl k přenosu využit
i SIP proxy server.
5. Jaké bylo průměrné a jaké maximální kolísání zpoždění, kolik procent RTP paketů
bylo při přenosu ztraceno?
6. Jakou průměrnou šířku pásma VoIP hovor potřeboval.
7. Změňte používaný kodek na kodek G.711 a zjistěte, jakou šířku pásma tento kodek
využívá.
8. Vypočtěte velikost užitečných dat v RTP paketu, který přenáší PCMU data, za
předpokladu, že znáte počet paketů vyslaných za sekundu = 50, počet bytů v jednom
vzorku PCMU = 1. Ostatní hodnoty potřebné pro výpočet najdete v SDP paketu
ve zprávě SIP INVITE. Vzorec pro výpočet je
𝑣𝑒𝑙𝑖𝑘𝑜𝑠𝑡 =
𝑓𝑣𝑧 * 𝑝𝑜𝑐𝑒𝑡𝐾𝑎𝑛𝑎𝑙𝑢
* 𝑝𝑜𝑐𝑒𝑡𝐵𝑦𝑡𝑢𝑉 𝐽𝑒𝑑𝑛𝑜𝑚𝑉 𝑧𝑜𝑟𝑘𝑢
𝑝𝑜𝑐𝑒𝑡𝑃 𝑎𝑘𝑒𝑡𝑢𝑍𝑎𝑆𝑒𝑘𝑢𝑛𝑑𝑢
(4.1)
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
4.3
59
Laboratorní úloha – Konfigurace hardwarových
VoIP telefonů
4.3.1
Cíl úlohy
Seznámit se s konfiguracemi HW telefonů Linksys, ověřit si teoretické znalosti o protokolu
SIP, SDP a RTP, zachytit signalizační zprávy SIP programem Wireshark.
4.3.2
Zadání
• Nastavte HW telefony pro přímé volání bez ústředny.
• Navažte mezi sebou spojení a ověřte funkčnost služby pomocí SIP URI.
• Zaregistrujte telefony k ústředně.
• Zjistěte, jaký je preferovaný audio kodek telefonu.
4.3.3
Pokyny k vypracování
Instalace HW telefonů Linksys
• V případě, že telefon během Vaší práce dlouho nereaguje, odpojte na 10s
napájení.
• Před započetím práce uveďte telefon do továrního nastavení: Setup - Factory Reset.
• Konfiguraci každého VoIP telefonu je možné provádět vzdáleně přes webové rozhraní. V následujících krocích toto rozhraní budeme využívat. V internetovém prohlížeči tedy zadejte IP adresu telefonu, naleznete ji Setup - Network - Current IP.
• Objeví se Vám uživatelské nastavení VoIP telefonu. Zde jsou záložky Info, System
a User. Prostudujte jednotlivé záložky a jejich nastavení.
• Přepněte se do Admin Login a poté do Advanced módu. To provedete v pravém
horním rohu webové stránky.
• Nyní zvolte záložku Ext1 (první klapka – telefon má 4). Ověřte, že tato linka je
zapnutá (Line Enable). Ověřte, že signalizační port SIP je 5060 (SIP Port)
60
FEKT Vysokého učení technického v Brně
Nastavení telefonu pro volání bez registrace
• V záložce Ext v sekci Proxy and Registration nastavte následující. Register-no,
Make Call Without Reg.-yes, Ans. Call Without Reg.- yes. V případě, že chcete,
aby telefon zobrazoval protistraně vaše jméno, zadejte jej do položky Subscriber
Information-Display Name.
• Vše potvrďte v dolní části tlačítkem Submit All Changes
• Nyní můžete volat pomocí IP adresy svému kolegovi. To provedete zadáním IP
adresy pomocí klávesnice. Vzhledem k tomu, že telefon je primárně nastaven na
vytáčení klasických čísel, nelze zadat IP adresa. Pro zadání IP adresy je potřeba
zvednout sluchátko, stisknout šipku vpravo a tlačítkem vpravo pod seznamem linek
(alpha) zvolte volbu IP.
Sledování síťového provozu
• Spusťte síťový analyzátor Wireshark zaznamenejte síťový provoz.
Nastavení telefonu pro volání přes PROXY server (ústředna)
• Před registrací je nutné nastavit a spustit PROXY server – nastavte dle instrukcí v
níže uvedeném odstavci s názvem Spuštění registrar a proxy serveru.
• Zaregistrujte VoIP telefon k ústředně. V předchozím bodě jste si nastavili účty s
hesly k proxy serveru - ty použijte.
• Údaje zadejte tak, aby se telefon pomocí nich zaregistroval k ústředně. Tyto údaje
se zadávají v administrátorském menu telefonu – musíte přepnout v pravém
horním rohu na admin. Dostane se k němu tak, že webové rozhraní přepnete do
módu admin ve kterém naleznete záložku Ext1. Podrobně prostudujte jednotlivé
položky v nastavení a zadejte potřebné informace do telefonu. Důležité jsou pro Vás
tyto položky:
– General - Line Enable
– Proxy and Registration - Register, Make Call Without Registration, Answer
Call Without Registration
– Subscriber Information - Display Name, User ID, Password, Use Auth ID, Auth
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
61
ID
– Jednotlivé názvy si přeložte, zjistěte jejich význam a následně nastavte.
• Po úspěšném nastavení uložte veškeré změny tlačítkem Submit All Changes. Telefon
se restartuje a měl by se zaregistrovat na ústřednu. Při úspěšné registraci budou
svítit led diody zeleně, na displeji bude svítit telefonní číslo (klapka), kterou jste
zaregistrovali k ústředně, a vedle ní bude symbol telefonu. Pokud je symbol telefonu
přepůlený, registrace neproběhla úspěšně a v některém kroku jste udělali chybu.
• Po úspěšně registraci zavolejte kolegovi a analyzujte síťový provoz. Komunkaci srovnejte s teoretickým grafem signálových toků na obrázku 4.3.
TE
VI
IN K
0O
20
K
AC
IN
V
PROXY server
ITE
0O
K
AC
K
20
RTP/RTCP
Obrázek 4.3: Komunikace prostřednictvím PROXY serveru
Spuštění a nastavení REGISTRAR a PROXY serveru
Nastavuje vždy jen jeden ze dvojice!!!
• Stáhněte a nainstalujte JRE (Java Runtime Environment), k dispozici je v elearningu.
• Stáhněte a rozbalte PROXY server MjServer, dostupný v e-learningu.
• Nastavení SIP serveru se provádí editací textových souborů server.cfg a aaa.db ve
složce config adresáře MjServer.
• V souboru server.cfg změňte:
– IP adresu v poli via-addr na IP adresu Vašeho virtuálního prostředí,
62
FEKT Vysokého učení technického v Brně
– pole host-port změňte např. na 5065, nebo jiný, na kterém žádná z aplikací
nenaslouchá (na portu 5060 již naslouchá X-Lite).
Pro výpis všech obsazených portů slouží příkaz netstat, který se zadává v příkazové
řádce. Ostatní nastavení ponechte beze změny.
• V souboru aaa.db (databáze uživatelů) vytvořte potřebné záznamy, abyste byli
schopni na serveru zaregistrovat Vaše VoIP telefony (viz tabulka níže). Záznam
Pracoviště 1
Pracoviště 2
1000/bmds
2000/bmds
1001/bmds
2001/bmds
1002/bmds
2002/bmds
1003/bmds
2003/bmds
se skládá vždy pouze z položky user a passwd. Uživatelské jméno se píše do
sekce user a heslo do sekce passwd.
Uživatelská jména zadávejte ve tvaru alias@IP-Adresa, kde alias je přidělené uživatelské jméno (např. 2000) a IP-adresa je IP adresa virtuáního prostředí, kde bude
spuštěn MjServer.
• Přejděte do adresáře MjServer a spusťte příkazový řádek (V Total Commanderu
napište do řádku dole příkaz cmd). V příkazovém řádku napište příkaz proxy.bat a
stiskněte Enter.
• Proxy a registrar nyní běží a naslouchá na nastaveném portu a IP adrese.
• Ukončit práci serveru je možné pomocí stisku kláves Ctrl+C (poté potvrďte ukončení
dávkové úlohy pomocí klávesy Enter).
• Po ukončení práce serveru si prohlédněte logy, které se ukládají do adresáře log.
• Můžete vyzkoušet změnit nastavení serveru a pozorovat změny, které nastanou.
Podrobná dokumentace k jednotlivým nastavením se nachází v souboru mjsip.cfg.txt
v adresáři config.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
63
Sledování síťového provozu
• Zaznamenejte registraci a fázi sestavení a ukončení hovoru.
• V programu Wireshark vytvořte graf signálových toků a podrobně jej prostudujte.
• Zachyťte sestavení neúspěšného hovoru – volaný hovor nepřijímá nebo volající ukončí
hovor ještě než volaný zvedne sluchátko.
Otázky
1. Jaké zprávy musí být vyměněny pro úspěšné navázání hovoru? Jaké pro jeho ukončení?
2. Ve které metodě/ách SIP zpráv se posílají informace o schopnostech VoIP telefonů?
Jaký protokol se k přenosu používá?
3. Jakou odpověď posílá klient v případě, že hovor zamítnete?
4. Jaký protokol transportní vrstvy síťového modelu TCP/IP a jaký port je standardně
využíván zprávami SIP?
5. Pokuste se v programu Wireshark přehrát zaznamenaný hovor.
6. Jaké zprávy musí být vyměněny mezi klientem a serverem při procesu registrace?
Jak se liší druhá zpráva, kterou posílá klient serveru od první?
7. Na základě které části zprávy server pozná, že uživatel je ten, za kterého se vydává
(že zná správné heslo)?
8. Zjistěte, zda se RTP stream posílal přímo mezi klienty nebo zda byl k přenosu využit
i SIP server.
9. Jaká metoda SIP zprávy použita v případě neúspěšně sestaveného hovoru?
Transfer hovoru – Metoda REFER
Vyzkoušejte transfer hovorů:
• Nastavuje vždy jen jeden pro všechny.
• Nastavte MjServer tak, aby v databázi byly 3 různé účty (např. 1111, 2222 a 3333).
• Spusťte MjServer.
• Spusťte wireshark na stejném počítači, jako na kterém běží MjServer.
• Telefony nastavte tak, aby se zaregistrovaly na MjServer.
64
FEKT Vysokého učení technického v Brně
• Navažte hovor z telefonu 1111 na 2222.
• Poté stiskněte na telefonu 1111 tlačítko xfer.
• Vytočte číslo 3333 a zmáčkněte tlačítko dial (naváže se hovor na číslo 3333, který
přijměte).
• Po navázání hovoru stiskněte na telefonu 1111 opět tlačítko xfer. Provede se transfer
hovoru: budou spojeni uživatelé 2222 a 3333 a hovor uživatele 1111 bude ukončen.
• Ukončete všechny hovory a ukončete zachytávání ve wiresharku.
• Analyzujte provoz.
Konferenční hovor
Vyzkoušejte konferenční hovor:
• Nastavuje vždy jen jeden pro všechny.
• Nastavte MjServer tak, aby v databázi byly 3 různé účty (např. 1111, 2222 a 3333)
• Spusťte MjServer.
• Spusťte Wireshark na stejném počítači, jako na kterém běží MjServer.
• Telefony nastavte tak, aby se zaregistrovaly na MjServer.
• Navažte hovor z telefonu 1111 na 2222.
• Poté stiskněte na telefonu 1111 tlačítko conf.
• Vytočte číslo 3333 a zmáčkněte tlačítko dial (naváže se hovor na číslo 3333, který
přijměte).
• Po navázání hovoru stiskněte na telefonu 1111 opět tlačítko conf. Všechny hovory
budou spojeny do konference.
• Ukončete všechny hovory. Vyzkoušejte různé kombinace toho, který účastník ukončuje hovor.
• Ukončete zachytávání ve Wiresharku.
• Analyzujte provoz.
Úkoly
1. Pomocí jaké zprávy/jakých zpráv je proveden transfer hovorů?
2. Jak se uživatel 1111 dozví, že transfer byl úspěšný?
3. Jakým způsobem je řešeno vytvoření konference?
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
65
4. Z SDP paketů zjistěte, kolik RTP streamů se mezi účastníky konference posílá.
5. Jak probíhá ukončení konference, když ji ukončuje účastník 1111 (ten, který konferenci vytvořil)?
6. Jak probíhá ukončení konference, když ji ukončuje jiný účastník než ten, který
konferenci vytvořil?
66
FEKT Vysokého učení technického v Brně
4.4
Laboratorní úloha – VoIP pobočková ústředna
Asterisk a její možnosti
4.4.1
Cíl úlohy
Cílem úlohy je seznámit se se softwarovou pobočkovou ústřednou Asterisk-Trixbox (distribuce CentOS). Ta je v tomto případě reprezentována řešením Trixbox, které přidává
přehledné webové rozhraní. V úloze se seznámíte s ovládáním ústředny, vytvoříte uživatelské účty, provedete registraci IP telefonů a realizujete mezi nimi hovor. Po úvodní
konfiguraci ústředny se seznámíte s funkcí volacích skupin a vytvářením hlasového menu.
Dále připravíte podklady pro jeho tvorbu. Využijte poznatků a vytvořte jednoduché hlasové menu (aplikace – IVR).
4.4.2
Zadání
Pracujte jednotlivě ve virtuálním prostředí VMWare!!!
• Pomocí přiložené literatury Trixbox without Tears.pdf se seznamte s možnostmi
a funkcemi pobočkové ústředny.
• Pomocí internetového prohlížeče se připojte k ústředně Trixbox. IP adresu ústředny
získáte od vyučujícího.
• Vytvořte v ústředně vlastní uživatelské účty (klapky) a zaregistrujte se k nim jak
softwarovým IP telefonem, tak i hardwarovým IP telefonem.
• Realizujte testovací hovor mezi oběma telefony.
• Seznamte se s vytvářením vlastních hlasových záznamů a nahrajte hlasový záznam.
• Seznamte se s vytvářením oznámení a vytvořte vlastní oznámení.
• Seznamte s vytvářením volacích skupin.
• Vytvořte takovou volací skupinu, která obsahuje pouze jedno telefonní číslo a při
jeho nedostupnosti přehraje vámi definované oznámení a poté, co oznámení přehraje,
zavěsí.
• Seznamte se s vytvářením konferencí.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
4.4.3
67
Pokyny k vypracování
Připojení k ústředně Trixbox
• BUĎTE PROSÍM TRPĚLIVÍ VZHLEDEM K DOBĚ ODEZVY ÚSTŘEDNY!!!
• Do internetového prohlížeče napište IP adresu ústředny, kterou dostanete zadánu
od vyučujícího.
• Vpravo nahoře klikněte na odkaz switch – ústředna se přepne do administrátorského
módu.
• Zadejte přihlašovací údaje - jméno maint heslo password.
Nastavení uživatelských účtů na PBX
• Při nastavení uživatelských účtů (klapek) pracujte dle přiložené dokumentace. Nastavení se provádí v sekci Asterisk - freePBX Settings - Setup - Extensions.
• Nastavte zařízení typu Generic SIP Device.
• Zadáváte údaje User Extension - klapka - zadejte minimálně 4místné číslo, Display
name - jméno stanice a secret- heslo.
• Podrobné možnosti nastavení Extensions vyhledejte v dokumentaci.
• Po nastavení klapek nezapomeňte stisknout červené tlačítko Apply Configuration
Changes!!!
• Zaregistrujte 4 klapky.
Registrace SW a HW telefonu k PBX
• Spusťte SW klienta X-lite a zaregistrujte ho k PBX na vybranou klapku.
• SW telefon X-Lite
1. Spusťte program X-Lite.
2. Zvolte Softphone-Account Settings.
3. Vyplňte políčka UserID, Domain a Password.
4. Ostatní nastavení nechte defaultní.
• Zaregistrujte HW telefon na vybranou klapku.
• HW telefon INTERBELL
1. IP adresu telefonu zjistíte pomocí tlačítka SYSINFO.
68
FEKT Vysokého učení technického v Brně
2. Přihlaste se do telefonu pomocí webového prohlížeče. K telefon je /heslo admin/admin.
3. Zvolte záložku VOIP/SIP Config.
4. Vyplňte položky Register Server Addr, Register Username, Register Password,
Phone Number. Pro použití DTMF tónů zbvolte standard RFC 2833. Zatrhněte Enable Register, Enable Pub Outbound Proxy a SIP.
5. Úspěšně registrovaný telefon poznáte tak, že na displeji trvale svítí SIP.
• HW telefon GRANDSTREAM
1. IP adresa telefonu je na úvodní obrazovce.
2. Přihlaste se do telefonu pomocí webového prohlížeče. Heslo k telefon je admin.
3. Zvolte záložku ACCOUNT 1.
4. Vyplňte pole Account Name, SIP Server. SIP User ID, Authenticate ID, Authenticate Password.
5. Ostatní nechte v defaultním nastavení.
6. Úspěšně registrovaný telefon poznáte tak, že na displeji vlevo nahoře trvale
svítí bílý symbol UTP zásuvky
Seznamte se s vytvářením vlastních hlasových záznamů a nahrajte hlasový
záznam
• Do ústředny nainstalujte možnost vytváření hlasových záznamů (Tools-Module
Admin-Recordings).
• Hlasový záznam vytvoříte pomocí pole System Recordings po vyvolání menu Asterisk
- freePBX Settings - Setup.
• Pro nahrání uživatelských hlášení využijete externí telefon. Do prvního pole je nutné
napsat jeho klapku (extension).
• Po vložení klapky telefonu postupujte podle pokynů systému.
Seznamte s vytvářením volacích skupin
• Do ústředny nainstalujte možnost vytváření volacích skupin (Tools-Module Admin-Ring
Groups)
• Volací skupiny vytvoříte pomocí položky menu Ring Groups.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
69
• Prostudujte strategie volání (Zejména RingAll a Hunt) - k čemu slouží?
• Vytvořte takovou volací skupinu, která obsahuje pouze jedno telefonní číslo a při
jeho nedostupnosti přehraje vámi definované oznámení a poté, co oznámení přehraje,
zavěsí.
• V menu Ring Groups přidejte do volací skupiny jedno z telefonních čísel, které máte
k dispozici. V poli Destination if no answer vyberte vámi vytvořené oznámení.
• Ověřte, že vše funguje dle zadání.
Seznamte se s možnostmi vytváření hlasového menu v ústředně Trixbox
• Do ústředny nainstalujte možnost vytváření hlasových menu (Tools-Module Admin-IVR)
• Hlasové menu vytvoříte pomocí pole IVR (Interactive Voice Response) po vyvolání
menu Asterisk - freePBX Settings - Setup
• Nové hlasové menu vytvoříte pomocí tlačítka Add IVR napravo.
• Je důležité, abyste hlasové menu srozumitelně pojmenovali v poli Change name. K
nové nabídce přiřadíte uvítání pomocí pole Announcement.
• V sekci s možnostmi je nalevo malé pole, do kterého píšete tlačítko na telefonu,
kterým se položka vyvolává. Počet položek menu snížíte nebo zvýšíte pomocí tlačítek
Increase Options a Decrease Options.
• Vytvořte IVR dle přiloženého grafu.
• Do IVR se lze dovolat například správným nastavením volby Destination if no answer v nastavení Ring Groups.
Vytvořte nový automat DISA (Direct Inward System Access)
• DISA vytvoříte pomocí pole DISA po vyvolání menu PBX - PBX Settings, záložky
Setup.
• Nový automat DISA vytvoříte pomocí tlačítka Add DISA napravo.
• Pojmenujte automat a nastavte heslo, kontext ponechte.
Vytvořte novou funkci Callback
• Callback vytvoříte pomocí pole Callback po vyvolání menu PBX - PBX Settings,
záložky.
70
FEKT Vysokého učení technického v Brně
541225869
Hláška - vítejte v našem
internetovém obchodě
Hláška:
pro přepojení na obchodní oddělení stiskněte 1,
pro přepojení na technické oddělení stiskněte 2,
pro ostatní informace stiskněte 3.
1
Zvoní na
čísle 1
3
2
Zvoní na
čísle 2
Zvoní na čísle 3
10 s
Momentálně jsou
všichni naši operátoři
zaneprázdněni,
zavolejte později
Hláška
Technické oddělení není
dostupné, přepojuji vás
na obchodníka
Ukončení
hovoru
Obrázek 4.4: Schéma IVR
• Nastavte jméno Callback a také zpoždění před jejím vyvoláním. Callback number
ponechte prázdné, protože jinak bude automat volat zpět vždy na něj.
• V poli destination after callback zadejte vámi vytvořené DISA.
Vytvořte novou volací skupinu a navažte ji na funkci Callback
• Vytvořte novou volací skupinu a navažte ji na prázdné telefonní číslo, na které se
nebude nikdy nikdo registrovat.
• Nastavte volací skupinu tak, aby byla při nevyzvednutí hovoru nasměrována na
předtím vytvořenou funkci Callback.
• Zodpovězte si, k čemu je funkce DISA a Callback dobrá?
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
71
Seznamte se s možnostmi vytváření konference v ústředně Trixbox
• Konferenci vytvoříte pomocí pole Conferences po vyvolání menu Asterisk - freePBX
Settings - Setup.
72
FEKT Vysokého učení technického v Brně
5
STANDARDY PRO KOMPRESI OBRAZU A VIDEA
5.1
Teoretický úvod
Standard JPEG
Standard JPEG je standardem pro kompresi bitmapových obrazů a byl vyvinut skupinou
Joint Photographic Experts Group, která vznikla pod záštitou ISO (International Standards Organisation) a ITU-T (International Telecommunication Union) v roce 1986.
V současné době existují 4 módy komprese:
• Sekvenční mód kódování – Bitmapový obraz se kóduje řádek po řádku (ztrátové
kódování ).
• Progresivní mód kódování – Bitmapový obraz se kóduje ve více iteracích (ztrátové kódování ).
• Bezeztrátový mód kódování – Bitmapový obraz se kóduje beze ztráty irelevantních dat (bezeztrátové kódování ).
• Hierarchický mód kódování – Bitmapový obraz se kóduje ve více průchodech s
odlišným prostorovým rozlišením (ztrátové kódování ).
Ztrátové sekvenční kódování založené na DCT
Komprese JPEG lze shrnout do několika bodů:
1. Převod bitmapového obrazu z prostoru RGB do prostoru YCbCr.
2. Podvzorkování barvonosných složek Cb a Cr dle modelu 4:2:0.
3. Rozdělení matic Y, Cb, Cr na bloky o velikosti 8x8 pixelů.
4. Transformace každého bloku z prostorové oblasti do oblasti frekvenční pomocí dvourozměrné diskrétní kosinové transformace (2D-DCT). V transformovaném bloku
platí, že v levém horním rohu je koeficient představující stejnosměrnou složku (DC
koeficient) a ostatní koeficienty představují střídavé složky (AC koeficienty).
5. Kvantizace – Transformované bloky ve frekvenční oblasti jsou podrobeny kvantizaci. Ve standardu JPEG jsou uvedeny doporučené kvantizační tabulky, ze kterých
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
73
je patrná vzrůstající hodnota směrem k pravému dolnímu rohu. To znamená, že koeficienty zastupující vyšší frekvence jsou kvantovány do menšího počtu kvantovacích
hladin než je tomu u koeficientů zastupující nízké frekvence. Odlišnost kvantovacích
tabulek pro jasové a barvonosné bloky je dána citlivostí lidského oka (na jas je více
citlivé než na barvu). Kvantování probíhá dle vztahu
𝑆𝑞𝑢𝑣 =
𝑆𝑢𝑣
,
𝑄𝑢𝑣
(5.1)
kde 𝑆𝑞𝑢𝑣 je hodnota DCT koeficientu po kvantizaci, 𝑆𝑢𝑣 je hodnota DCT koeficientu
před kvantizaci a 𝑄𝑢𝑣 je kvantizační krok získaný z tabulky 5.1 pro jasovou složku
a z tabulky 5.2 pro barvonosnou složku.
Tabulka 5.1: Kvantizační tabulka pro jasovou složku
16
11
10
16
24
40
51
61
12
12
14
19
26
58
60
55
14
13
16
24
40
57
69
56
14
17
22
29
51
87
80
62
18
22
37
56
68
109
103
77
24
35
55
64
81
104
113
92
49
64
78
87
103
121
120
101
72
92
95
98
112
100
103
99
Kvantovací tabulky jsou předem upraveny dle nastavení faktoru kvality 𝑞, jehož
hodnota se může pohybovat v rozmezí 1–100, kdy 1 znamená největší kompresi.
Každá kvantizační tabulka je vždy definovaná pro hodnotu kvalitativního faktoru
𝑞 = 50. V případě její úpravy je použit vztah
𝑄𝑞𝑢𝑣 = 𝛼𝑄𝑢𝑣 ,
kde
(5.2)
74
FEKT Vysokého učení technického v Brně
Tabulka 5.2: Kvantizační tabulka pro barvonosné složky
17
18
24
47
99
99
99
99
18
21
26
66
99
99
99
99
24
26
56
99
99
99
99
99
47
66
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
𝛼=
50
𝑞
𝛼=2−
v případě, že platí 1 ≤ 𝑞 ≤ 50,
2𝑞
100
v případě, že platí 50 ≤ 𝑞 ≤ 99.
V případě, že 𝑞 = 100, hodnoty kvantizačních tabulkách jsou rovny 1.
6. Kódování DC a AC koeficientů
Kódovaná hodnota DC koeficientu je stanovena jako rozdíl DC koeficientu současného a předešlého bloku. Pro výpočet rozdílu je použit vzorec
𝐷𝐼𝐹 𝐹 = 𝑆𝑞00 − 𝑃 𝑅𝐸𝐷,
(5.3)
kde 𝑆𝑞00 je hodnota aktuálně kódovaného DC koeficientu a 𝑃 𝑅𝐸𝐷 je hodnota DC
koeficientu předchozího bloku. Výsledek je entropicky kódován Huffmanovým kódem.
Střídavé koeficienty AC jsou vyčítány v pořadí cik-cak (obrázek 5.1) – se vzrůstající
frekvencí. Koeficienty po cik-cak čtení jsou seřazeny vzestupně od nejnižší frekvence.
U klasických obrazů bývají koeficienty vyšších frekvencí nulové. Po cik-cak čtení
následuje entropické kódování pomocí předem daných tabulek Huffmanových kódů.
Schéma kodéru i dekodéru standardu JPEG je na obrázku 5.2.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
75
Obrázek 5.1: Vyčítání koeficientů cik–cak
RGB
YCbCr
Kvantizační
tabulky
4:2:0
Bloky
8x8
2D-DCT
Kvantizace
Huffmanovy
tabulky
Čtení
cik-cak
C(0)
.
.
.
DPCM
RLE
Huffmanovo
/aritmetické/
kódování
DATA
C(63)
Přenosový kanál
Bloky
8x8
Inverzní
2D-DCT
Inverzní
kvantizace
C(0)
.
.
.
IDPCM
IRLE
Huffmanovo
/aritmetické/
dekódování
C(63)
4:4:4
YCbCr
Kvantizační
tabulky
RGB
Obrázek 5.2: Kodér a dekodér standardu JPEG
Huffmanovy
tabulky
DATA
76
FEKT Vysokého učení technického v Brně
Standardy pro kompresi videa MPEG
Standardy MPEG jsou využívány ke ztrátové kompresi videa. Základní princip kodéru
je podrobně popsán pro MPEG-1, ostatní novější kodeky (MPEG-2, MPEG-4, H.264,
H.265) na tomto principu dále staví a vylepšují ho.
Standard MPEG-1
Standard MPEG-1 (ISO/IEC 11172) byl primárně určen k ukládání videosekvencí na
digitální médium v kvalitě srovnatelné s kvalitou videa uložených na analogových VHS
(Video Home System) kazetách.
Hierarchie a terminologie
Nejvyšší definovanou úrovní v hierarchii MPEG-1 je sekvence snímků určité délky (videoklip). Ta se skládá z částí nazývaných skupiny snímků GOP (Group of Pictures). Skupina
snímku GOP je série jednoho nebo více snímků. Typická sekvence MPEG-1 se skládá s
opakujících se struktur GOP. GOP se může skládat ze 3 typů snímků, jejichž vlastnosti
budou uvedeny níže. Dalším stupněm hierarchie je zmiňovaný snímek. Každý snímek se
skládá z tzv. slice, které obsahují makrobloky. Makroblok obsahuje veškeré informace o
oblasti o velikosti 16x16 pixelů. Slice obsahuje libovolný počet makrobloků kódovaných
bez jakýchkoliv odkazů na makrobloky v jiném slice (pokud jsou data ze slice znehodnocena, nemá to žádný vliv na ostatní data v dalších slice). Maximální velikost slice u
MPEG-1je omezena velikostí jednoho snímku.
Typy snímků
1. Snímek I je kódovaný bez jakékoli reference na předchozí nebo budoucí snímek.
Snímky I tvoří tzv. přístupové body kódovaného videa pro dekodér. Snímky jsou
kódovány obdobným způsobem jako snímky kódované standardem JPEG.
2. Snímek P je prediktivně kódován z předchozího referenčního I nebo P snímku. Sám
může být použit jako referenční pro kódování následujícího snímku.
3. Snímek B je obousměrně predikovaný. K predikci může využít předchozí, následující
nebo oba snímky dohromady. To zvyšuje efektivitu pohybové kompenzace. B snímky
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
77
však nikdy nemohou být použity jako referenční. Důsledky použití B snímků jsou:
(a) Vzhledem k tomu, že B snímek není užívaný jako referenční, může být kódování provedeno s nejvyšší možnou kompresí bez jakýchkoliv dalších vedlejších
účinků.
(b) Při přenosu videa sítí mohou být, např. při náhlém přetečení bufferu, B snímky
vypuštěny bez jakýchkoliv následků na dekódování následujících snímků.
4. Snímek D kódovaný intra-frame, kóduje se však pouze DC koeficient. D snímky
nemají v současnosti uplatnění.
Skupina snímků GOP
Skupina snímků je kombinace I, P a B snímků. Může se však skládat pouze z I snímků
nebo například z kombinace I a P snímků.
Každá GOP začíná I snímkem, z čehož plyne, že není potřebná žádná předchozí reference
k dekódování. Po I snímku může následovat jeden či více B snímků. První P snímek v
GOP je kódován z odkazu na I snímek. Pro další P snímky v GOP je referenčním snímkem
předchozí P. Z toho plyne nepříjemná vlastnost. Pokud bude chyba v některém P snímku,
potom se bude šířit dále až nakonec GOP. Pro B snímky je referenční předchozí I nebo
P snímek - dopředná predikce, nebo následující I nebo P snímek - zpětná predikce, nebo
oba - obousměrný predikce. B snímek nikdy nemůže být referenčním.
Skladba GOP není nikde definovaná, může se proto skládat z libovolně uspořádaných
snímků zmíněných typů. Délka GOP je definována jako vzdálenost dvou I snímků, která
je reprezentovaná parametrem 𝑁 . GOP může obsahovat libovolný počet snímků, alespoň
jeden musí být I. Aplikace vyžadující náhodný přístup, rychlé převíjení vpřed i vzad, by
měly využívat kratší GOP. Pro většinu aplikací u formátu MPEG-1 má 𝑁 = 12 a 𝑀 = 3.
Pořadí kódování snímků se liší od pořadí zobrazených snímků.
Makrobloky
Standard MPEG-1 při kódování používá barevný prostor YCbCr se vzorkováním 4:2:0.
Obraz je rozdělen na makrobloky o velikosti 16x16 pixelů. Po vzorkování zahrnuje jeden
makroblok 4 jasové bloky Y o rozměrech 8x8 pixelů a jeden blok o rozměrech 8x8 pixelů
od každé barvonosné složky Cb a Cr. Existují 2 možnosti kódování makrobloků:
78
FEKT Vysokého učení technického v Brně
1. Kódování uvnitř makrobloku (INTRA kódování) probíhá téměř shodně s
JPEG kódováním. Jediným rozdílem je definice kvantizačních tabulek. MPEG-1 definuje kvantizační tabulky, jednu pro INTRA kódování, ostatní pro mezisnímkové
INTER kódování. Každá z těchto tabulek však může být změněna specifikací v hlavičce sekvence. Pokud změněny nejsou, dekodér vychází ze standardních. Kvantizace
se nastavuje pomocí parametru MQuant. Tato hodnota je primárně nastavena pro
každý slice, může být nastavena i pro každý makroblok samostatně.
2. Mezisnímkové kódování makrobloků (INTER kódování) probíhá u snímků
P a B. Ty jsou nejprve INTRA kódovány stejně jako I snímky bez predikčního
kódování. V bloku pro odhad pohybu se dekódují a proběhne mechanizmus, který
má za cíl najít určitou shodu mezi právě kódovaným snímkem a snímkem referenčním
(predikce). V případě, že rozdíl mezi predikčním a skutečně kódovaným snímkem
přesahuje určitou definovanou hranici, snímek se kóduje v INTRA módu. V ostatních
případech se kóduje rozdíl mezi skutečně kódovaným snímkem a jeho predikcí. K
nalezení nejlepší shody makrobloků se používá blok pro odhad pohybu. V MPEG
standardech je pro odhad pohybu využívána pouze jasová složka obrazu Y. Blok
pro odhad pohybu určí vektory pohybu, které jsou použity jak pro jasové, tak i
pro barvonosné složky. Výstupem INTER kódování je tedy kódovaný predikovaný
snímek společně s vektory pohybu.
Po nalezení vektorů pohybu je s každým predikovaným blokem v makrobloku nakládáno samostatně. Každý predikovaný blok je pixel po pixelu odečten od vybraného
bloku v referenčním makrobloku. Tím vznikne rozdílový snímek (chyba odhadu),
který je následně transformován pomocí DCT, kvantován a entropicky kódován.
Neplatí zde však pravidlo, že DC koeficient je kódován rozdílově jako u INTRA či
JPEG kódování.
Zmíněný postup se provádí pro všechny bloky jednoho makrobloku. Pokud je odhad pohybu dobrý, mají koeficienty rozdílových bloků malé hodnoty a po kvantizaci
jsou tedy nulové. Tyto bloky pak není potřeba kódovat a jsou přeskakovány, čímž se
značně ušetří šířka pásma. Vektory pohybu jsou taktéž kódovány. Pro první makroblok ve slice musí být vektory pohybu kódovány a poslány úplné. Pro následné
makrobloky jsou vektory pohybu prediktivně kódovány z předchozích.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
79
Kódování a dekódování videa dle standardu MPEG-1
Vstupem do kodéru je nekomprimované video, u kodéru MPEG-1 v rozlišení maximálně
CIF. Před samotným kódováním je stanovena velikost a struktura GOP. V níže popsaném příkladě bude GOP složena ze čtyřech snímků IBBP. Jak bylo popsané výše, pořadí
kódování může být odlišné od pořadí přehrávání. V tomto případě je jasné, že pro případ
kódování B snímků je zapotřebí I a P snímek, což je v tomto případě snímek 1 a 4. V
první fázi kódování tedy dochází k přeuspořádání snímků. Vstupní posloupnost 1,2,3,4 je
přeuspořádána na posloupnost 1,4,2,3.
Řízení
vstup
Přeuspořádání
snímků
-
Q
DCT
VLC
Buffer
výstup
IQ
IDCT
+
Kompenzace
pohybu
Snímková
paměť
Odhad pohybu
Vektory pohybu
Obrázek 5.3: Obecný kodér standardu MPEG
Dle GOP následuje kódování snímku 1, který bude kódován jako I snímek. Se snímkem je
zacházeno obdobně jako v případě kódování standardem JPEG. Odlišuje se pouze v použitých kvantizačních tabulkách. Po kvantizaci probíhá kódování proměnné délky VLC opět
shodné se standardem JPEG. Výstupem je zakódovaný snímek I. Ještě před VLC kódování
80
FEKT Vysokého učení technického v Brně
je tentýž snímek inverzně kvantován a transformován, čímž vznikne dekódovaný snímek,
který je uložen do snímkové paměti pro další zpracování. Do kodéru vstupuje snímek 4,
který dle GOP bude kódovaný jako P snímek (predikovaný z předchozího snímku). Při
predikci jsou oba spínače sepnuty. Snímek 4 nejprve vstupuje do bloku pro odhad pohybu.
Zde se stává referenčním snímkem pro snímek 1 uložený ve snímkové paměti. Jednotlivé
makrobloky snímku 1 jsou přeskládány tak, aby co nejlépe odpovídaly blokům snímku 4.
Zde vznikají vektory pohybu, které určují pozice, kam se který makroblok posunul. Tyto
vektory jsou poté aplikovány na snímek 1, čímž se vytvoří predikovaný snímek ke snímku
4. Tento predikovaný snímek odečten od původního snímku 4, čímž je zajištěno, že na
vstup bloku DCT přichází pouze chyba predikce. Ta obsahuje podstatně méně informace
než původní snímek. Tato chyba predikce je dále kódována ve stejném znění jako předchozí snímek. Po její zpětné rekonstrukci je přičtena k predikovanému snímku a výsledek,
dekódovaný snímek 4 je uložen do snímkové paměti. Tento postup je ve stejném znění
opakován pro další příchozí snímky. U B snímků jsou do snímkové paměti ukládány 2
referenční snímky.
Proces dekódování je opačný k procesu kódování. Dekodér je však méně výpočetně náročný, neboť odpadá výpočet odhadovaného snímku. Schéma pro obecný MPEG dekodér
je na obrázku 5.4.
vstup
Buffer
VLD
IQ
IDCT
Přeuspořádání
snímků
+
Snímková
paměť
Kompenzace
pohybu
Obrázek 5.4: Obecný dekodér standardu MPEG
výstup
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
5.2
81
Laboratorní úloha – komprese statických obrazů
a videosekvencí, JPEG, MPEG, H.26x
5.2.1
Cíl úlohy
Seznámit se s principy činnosti a možnostmi kompresních algoritmů JPEG pro statické
obrazy, MPEG-1, MPEG-2 a H.264 užívané pro pohyblivé obrazy (video). Uvědomit si
vznik různých artefaktů (zkreslení), které doprovázejí kompresi videa s těmito metodami.
5.2.2
Zadání
• Seznamte se s kodeky obrazu a videa JPEG a MPEG.
• Vyzkoušejte si různá nastavení ovlivňující kompresi a videa.
5.2.3
Pokyny k vypracování
• Z e-learnigu si stáhněte VCDemo a nainstalujte jej ve virtuálním prostředí.
• Spusťte program VCDemo, otevřete libovolný obrázek pomocí File/Open Image.
Klikněte na tlačítko JPEG.
• Vyzkoušejte, u jakého faktoru kvality poznáte, že komprimovaný obrázek nevypadá
shodně s originálem? Jakou má hodnotu PSNR? Co je to PSNR? Kolik bitů na
jeden pixel tento obrázek má před a po kompresi?
• Vyzkoušejte nabízené kvantizační tabulky. Jaké vidíte výhody a nevýhody jednotlivých z nich?
• Zaveďte do souboru různé procento chyb a zjistěte, jakým způsobem to ovlivní
výsledný obraz.
• Spusťte program VCDemo, otevřete soubor videosekvence pomocí File/Open Sequence.
Klikněte na tlačítko MEnc.
• Základní nastavení. Na záložce File vyberte, kam se komprimovaný MPEG soubor uloží pomocí Save as.., typ komprese zvolte MPEG-1. Na záložce Rate zvolte
Set Bit Rate na 0,384 Mbit/sec. Na záložce Gop zvolte pořadí snímků IBBPBB, tj,
jeden intra kódovaný a pět inter kódovaných snímků, a pak zvolte Apply. Sekvence se
zkomprimovala do předem určeného adresáře. Prohlédnout si ji můžeme přes menu
82
FEKT Vysokého učení technického v Brně
File/Open Mpeg Stream. Vyberte modul MDec - Záložka Operation - Set decoder
output - Decoded frames, tím jsme zvolili, aby se nám při přehrávání zobrazoval dekomprimovaný obraz. Pomocí Apply si prohlédneme komprimované video. Při tomto
relativně nízkém datovém toku jsou jasně patrné kompresní artefakty: blokové, tzv.
"ringing", který se projevuje kolem ostrých přechodů a celkové rozmazání obrazu.
• Přenos chybovým kanálem. Záložka Wireless Channel v modulu MDec. Dejte
Simulate Wireless Channel. Zvolte HiperLAN (v podstatě jiná verze Wi-Fi) a pravděpodobnost chyby P(error) (BER) nastavte na 1e-3, a počet přihlášených uživatelů
Number of users dejte na 1, dejte Apply. Potom z tohoto dialogu vyskočte a otevřete si právě vytvořený soubor *-WRLS.mpg. Prozkoumejte vliv náhodných chyb
na kvalitu videa. Zkuste vytvořit nové video s chybovým kanálem, ale také s více
uživateli. Při překročení dostupných síťových prostředků (20Mbit/s / počet uživ.
* datový tok videa) začne mechanizmus sítě zahazovat celé pakety, čímž vznikají
shluky chyb v přenosu - ověřte.
• Vyzkoušejte rovněž simulaci přenosu přes GPRS. CS-1: 25 kbit/s, CS-2:
60 kbit/s, CS-3: 80 kbit/s, nebo CS-4: 150 kbit/s. Čím vyšší je zvolená přenosová
rychlost, tím slabší je protichybové zabezpečení přenášených paketů - vyzkoušejte.
• Vyzkoušejte kompresi videa MPEG, při kterém budou použity pouze snímky I (GOP
I only). Prověřte vliv tohoto nastavení a pokuste se zodpovědět jeho výhody a
nevýhody.
• Spusťte program VCDemo, otevřete soubor videosekvence pomocí File/Open Sequence.
Klikněte na tlačítko HEnc.
• Základní nastavení. Na záložce File vyberte, kam se komprimovaný soubor uloží
pomocí Save as... Na záložce IntraFrame zvolte periodu snímků komprimovaných v
Intra módu Set Period of I-Frames. 0 znamená je první snímek v sekvenci. Ponechte
ji nastavenou na 0. Dále můžete nastavit kvantizační parametr (QP) prvního a
dalších I-snímků, zatím ponechte na hodnotě 28. Na záložce Inter Search Modes lze
nastavit možnost dělení makrobloků 16x16 na menší bloky, což ovlivňuje efektivitu
komprese. Zvolte všechny možnosti dělení bloků. A nakonec na záložce Entropy
Coding zvolte kódování s proměnnou délkou slova UVLC. A dejte Apply. Po skončení
komprimace si můžeme v okně textového výstupu přečíst charakteristiku kódování.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
83
V položce Bit rate nalezneme datový tok při určité snímkové frekvenci. Dále můžeme
u jednotlivých snímků vidět, kolik bitů je potřeba na komprimaci I, P a B snímků.
• Přes menu File/Open H.264 Stream vyberte zkomprimovaný soubor a klikněte na
modul HDec. Záložka Decoder Step - Frame by frame, dále Input Stream - Input
Stream Shown, Motion Vectors - Shown, včetně Picture in the background, Intra
prediction - Shown, včetně Colored, Block Division - Shown, včetně Picture in the
background. Dejte Apply.
• Při práci s H.264 kodérem se nenastavuje přenosová rychlost (datový tok) videosouboru jako u MPEG-1 kodéru, ale nastavují se zde parametry kvantizace (QP
parametr). To v praxi znamená, že 2 obsahově různé sekvence se stejným nastavením QP budou mít různou velikost. Vyzkoušejte nastavit QP parametr jak pro
I-snímky, tak pro B-snímky na záložce B-Frames - QP.
• Jaký je vztah mezi kvantizačním parametrem (QP) a datovým tokem videa?
• Které ze snímků I, P nebo B nesou nejméně informace?
84
FEKT Vysokého učení technického v Brně
Reference
[1] Campbell, B.; Rosenberg, J.; Schulzrinne, H.; aj.: RFC 3428 - Session Initiation Protocol (SIP) Extension for Instant Messaging. Technická zpráva, Internet Engineering
Task Force, 2002.
[2] Davidson, J.; Peters, J.; Bhatia, M.; aj.: Voice over IP Fundamentals. Indianopolis:
Cisco Press, 2007, ISBN 978-1-58705-257-6, 394 s.
[3] Firestone, S.; Ramalingam, T.; Fry, S.: Voice and Video Conferencing Fundamentals.
Indianopolis: Cisco Press, 2007, ISBN 978-1587052682, 376 s.
[4] Handley, M.; ; Schulzrinne, H.; aj.: RFC 2543 - SIP: Session Initiation Protocol.
Technická zpráva, Internet Engineering Task Force, 1999.
[5] Handley, M.; Jacobson, V.; Perkins, C.: RFC 4566 - SDP: Session Describtion Protocol. Technická zpráva, Internet Engineering Task Force, 2006.
[6] Handley, M.; Perkins, C.; Whelan, E.: RFC 2974 - Session Announcement Protocol.
Technická zpráva, Internet Engineering Task Force, 2000.
[7] Kolář, J.: Teoretická informatika. Praha: Česká informatická společnost, 2004, ISBN
80-900853-8-5, 205 s.
[8] Levický, D.: Multimediálne komunikácie. Košice-Elfa, 2002, ISBN 80-89066-58-5.
[9] Niemi, A.: RFC 3903 - Session Initiation Protocol (SIP) Extension for Event State
Publication. Technická zpráva, Internet Engineering Task Force, 2004.
[10] Richardson, I. E. G.: H.264 and MPEG-4 Video Cmpression. John Wiley & Sons
Ltd., 2002, ISBN 0-470-84837-5.
[11] Roach, A. B.: RFC 3265 - Session Initiation Protocol (SIP)-Specific Event Notification. Technická zpráva, Internet Engineering Task Force, 2002.
[12] Rosenberg, J.: RFC 3856 - A Presence Event Package for the Session Initiation
Protocol (SIP). Technická zpráva, Internet Engineering Task Force, 2004.
Přenos a komprese audio/video dat pro integrovanou výuku VUT a VŠB-TUO
85
[13] Rosenberg, J.; Schulzrinne, H.; Camarillo, G.; aj.: RFC 3261 - SIP: Session Initiation
Protocol. Technická zpráva, Internet Engineering Task Force, 2002.
[14] Rosenberg, J.; Schulzrinne, H.; Kyzivat, P.: RFC 3841 - Caller Preferences for the
Session Initiation Protocol (SIP). Technická zpráva, Internet Engineering Task Force,
2004.
[15] Schulzrinne, H.; Casner, S.; Frederick, R.; aj.: RFC 3550 - RTP: A Transport Protocol
for Real-Time Applications. Technická zpráva, Internet Engineering Task Force, 2003.
[16] Schulzrinne, H.; Columbia, U.; Rao, A.; aj.: RFC 2326 - Real Time Streaming Protocol (RTSP). Technická zpráva, Internet Engineering Task Force, 1998.
[17] Shi, Y. Q.; Sun, H.: Image and Video Compression for Multimedia Engineering. Boca
Raton, FL, USA: CRC Press, Inc., první vydání, 1999, ISBN 0849334918.
[18] Sparks, R.: RFC 3515 - The Session Initiation Protocol (SIP) Refer Method. Technická zpráva, Internet Engineering Task Force, 2003.

Podobné dokumenty

Zpracování multimediálních dat pro integrovanou výuku VUT a

Zpracování multimediálních dat pro integrovanou výuku VUT a FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Více

nanotechnologie

nanotechnologie nouzovém brždění ze 100 km za hodinu na plné zastavení. A to rozhoduje o lidských životech. Dalším příkladem jsou offroadová vozidla nebo traktory, které jezdí mimo pevné vozovky a nevratně poškozu...

Více

Untitled - Kodak Alaris

Untitled - Kodak Alaris použije pouze na stranu, na které byl zjištěn čárový vzorek. • Obě strany: Toto je výchozí nastavení. Je-li tato možnost vybrána, režim přepnutí barvy se použije na přední a zadní stranu dokumentu....

Více

Kazetové jednotky Optimální klimatizace pro Váš prostor GEA

Kazetové jednotky Optimální klimatizace pro Váš prostor GEA orgán ve vzduchotechnickém průmyslu, anticipuje tento vývoj tím, že v lednu 2011 zavedl energetický štítek pro klimatizační jednotky rozlišující 7 tříd energetické efektivity (A až G). Energetická ...

Více

it produkt roku 2010

it produkt roku 2010 cz, jehož provozovatelem je firma Czech Credit Bureau. Podobnou službu podle jejích slov připravuje i s dalšími dodavateli účetních a ekonomických systémů typu ERP či CRM. Pokud uživateli účetního ...

Více

2135XP_data

2135XP_data Akustická hladina hluku / výkonu při zátěži (ISO15744) Akustická hladina hluku / výkonu bez zátěže (ISO15744) Hladina vibrací / neurčitost měření (ISO28927)

Více

2135QTi-2MAX

2135QTi-2MAX Vsuvka řady IBN/IBS, vnější závit 1/4", světlost 6 mm (ISO6150B / MILC4109)

Více

2130XP_data

2130XP_data Vsuvka řady IBN/IBS, vnější závit 1/4", světlost 6 mm (ISO6150B / MILC4109)

Více

CVIČENÍ

CVIČENÍ CVIČENÍ Z LATINSKÉ LÉKAŘSKÉ TERMINOLOGIE S KLÍČEM 3. ČÁST – SLOVOTVORBA

Více