Full text
De ice o De ice s eaming en
disposi i os m´o iles
I ´
an Gulyk y Noel Jos´
e Algo a Igual
FACULTAD DE INFORM´
ATICA
UNIVERSIDAD COMPLUTENSE DE MADRID
T abajo de in de g ado del G ado en Ingenie ´
ıa
In o m´
a ica
Di ec o : Simon Pickin
Cu so 2018/2019
Es e documen o ha sido maque ado con L
A
T
EX
2
Ag adecimien os
Que emos ag adece oda la ayuda, apoyo y ´animos ecibidos po pa e de
nues os amilia es, compa˜ne os y amigos.
Tambi´en ag adecemos a odos los p o eso es que nos die on o maci´on
y nos p opo ciona on conocimien os d´ıa a d´ıa a lo la go de nues a e apa
uni e si a ia.
Especial ag adecimien o a nues o u o , Simon Pickin, po o ece nos
es e p oyec o y po oda la colabo aci´on y apoyo que nos ha dado en odo
momen o.
Po ´ul imo, que emos da las g acias al c eado de la lib e ´ıa libs eam-
ing, que nos ha aho ado mucho abajo, y sin la cual posiblemen e no
hab ´ıamos podido lle a a cabo es e p oyec o.
4
Palab as Cla e
•WiFI Di ec
•And oid
•Libs eaming
•S eaming
•RTSP
•Ad hoc
•P2P
5
Keywo ds
•WiFi Di ec
•And oid
•Libs eaming
•S eaming
•RTSP
•Ad hoc
•P2P
6
´
Indice
Ag adecimien os 4
Palab as Cla e 5
Keywo ds 6
Resumen 13
Summa y 14
1 In oducci´on 15
1.1 Mo i aci´on............................ 15
1.2 Obje i os ............................ 17
1.3 Plande abajo......................... 18
1 In oduc ion 20
1.1 Mo i a ion............................ 20
1.2 Goals............................... 22
1.3 Wo kplan ............................ 22
2 An eceden es 25
2.1 S eaming ............................ 25
2.2 WiMAX............................. 25
2.3 Blue oo h ............................ 25
2.4 WiFi............................... 26
2.5 WiFiAdhocMode....................... 26
2.6 WiFiDi ec ........................... 27
2.7 WiFiAwa e........................... 27
2.8 TCPyUDP........................... 28
2.9 HTTPS eaming........................ 29
2.10RTPyRTCP .......................... 29
8
2.11RTSP .............................. 30
2.12 Aplicaciones pa ecidas . . . . . . . . . . . . . . . . . . . . . 30
2.12.1 Aplicaciones pa a compa i a chi os . . . . . . . . . 30
2.12.2CamWimo e ...................... 30
2.12.3 RTSP Came a Se e . . . . . . . . . . . . . . . . . . 31
3 Elecci´on de ecnolog´ıas 32
3.1 And oid ............................. 32
3.2 WiFiDi ec ........................... 32
3.3 Ja a ............................... 32
3.4 RTPsob eUDP......................... 33
3.5 RTSP .............................. 33
3.6 libs eaming........................... 34
3.7 libVLC.............................. 34
3.8 And oidS udio ......................... 34
3.9 G adle.............................. 35
3.10Gi yGi hub .......................... 35
3.11T ello .............................. 35
3.12 L
A
T
EXyO e lea ......................... 36
4 Especi icaci´on 37
4.1 Requisi os............................ 37
4.1.1 Conexi´on ........................ 37
4.1.2 T ansmisi´on de da os . . . . . . . . . . . . . . . . . . 37
4.1.3 Recepci´on, in e p e aci´on y e ansmisi´on de da os . 38
5 Dise˜no 39
5.1 Conside aciones gene ales de dise˜no . . . . . . . . . . . . . . 39
5.1.1 Funcionamien o de Wi i Di ec . . . . . . . . . . . . 39
5.1.2 Mul ihop y ed ad hoc con WiFi Di ec . . . . . . . . 40
9
De ice o De ice In oducci´on
Que emos ealiza la e ansmisi´on en s eaming, en ez de una simple
ans e encia de iche os de ´ıdeo, dado que pa a algunos de los casos de
uso que enemos en men e se puede que e emi i el ´ıdeo lo an es posible, y
a eces no se pod ´ıa en ia un iche o con el ´ıdeo al inaliza la g abaci´on.
Secunda iamen e, como ambi´en puede se ´u il, que emos que se puedan
ansmi i a chi os.
Nos encon amos ligados a la conexi´on de In e ne , pe o en caso de
una ca ´as o e na u al se puede pe de la in aes uc u a, y po an o las
conexiones a las edes con encionales. Se pod ´ıa o ma una ed ad hoc
pa a pasa ´ıdeos y/o mensajes de ayuda de un disposi i o a o o has a
encon a un disposi i o que si disponga de acceso a In e ne , y de es a
o ma los da os en iados desde una zona sin conexi´on se publica ´ıan en
In e ne y llega ´ıan a su des ino.
O o de los posibles casos de uso pa a una aplicaci´on como la que p o-
ponemos pod ´ıa se el da la posibilidad de ansmi i ´ıdeos a disposi i os
lejanos en pa´ıses en los que se come en c ´ımenes con a los de echos hu-
manos, de al o ma que el ´ıdeo pasase de un disposi i o a o o sal ´andose
el con ol y censu a que pa´ıses como es os es ablecen en las edes con en-
cionales, adem´as de da la posibilidad de ocul a el o igen de la ansmisi´on,
de al o ma que no se pueda iden i ica al denuncian e. Po es e mo i o,
adem´as, la aplicaci´on no debe ´a deja azas de los ´ıdeos, ni en los m´o iles
emiso es ni en los que lo edis ibuyen. Si la ed es capaz de c uza la
zona de censu a los ´ıdeos pod ´ıan se publicados en In e ne con ayuda
de o ganizaciones como Wi ness [1] que se dedican a p omo e la c eaci´on
y cus odia de ´ıdeos de es e ipo.
Pe o hab ´ıa que ene un especial cuidado pa a es e caso, y en gene al,
con el ema del “deep ake”, ya que la in eligencia a i icial es ´a lo su icien-
emen e desa ollada como pa a pode c ea con su ayuda [2] ´ıdeos alsos,
la di usi´on de los cuales pod ´ıa p o oca esc´andalos y con lic os. Se es ´a
in es igando sob e el uso ecnolog´ıas que puedan iden i ica deep akes [3],
pe o es o es algo muy di ´ıcil.
Una ecnolog´ıa como la que pensamos desa olla es algo bas an e no e-
doso, y como odo lo no edoso, en un p incipio exis en muchos ac o es a
ene en cuen a, muchos p oblemas que esol e , y aguje os de segu idad
que apa . La ed sob e la que pensamos hace s eaming de ´ıdeo es una
ed ad hoc, que no necesi a u iliza ning´un ipo de in aes uc u a de ed
ex e na (como puede se un ou e o la in aes uc u a de los ope ado es de
elecomunicaciones), y po an o el con enido que pasa po ella no es con-
olado po nadie m´as que el emiso del mismo; po consiguien e, el p opio
emiso debe hace se esponsable de lo que emi e en di ec o. Aqu´ı nos su ge
un ac o a ene en cuen a, que son las pe sonas mal in encionadas, las
cuales pod ´ıan ansmi i cualquie ipo de ´ıdeo, con con enido inap opi-
P´agina 16
De ice o De ice In oducci´on
ado, como pod ´ıa se ´ıdeos de po nog a ´ıa in an il.
Con los a ances de la ecnolog´ıa nos encon amos ambi´en con el p ob-
lema de que los ´ıdeos pueden modi ica se en ansi o, es deci , en la medida
que pasan de un disposi i o a o o, y no ´unicamen e desde el emiso , po lo
que adem´as es necesa io hace un il ado en iempo eal. Es o jun o con la
e ansmisi´on de con enido inap opiado es de i al impo ancia en el caso
de uso po los de enso es de los de echos humanos, dado que se pueden
in en a u iliza es e ipo de a aques pa a in en a desac edi a la ed po
la que se es ´an dis ibuyendo, as´ı como a los usua ios de es a.
1.2 Obje i os
El obje i o p incipal de es e p oyec o es dise˜na e implemen a una apli-
caci´on pa a disposi i os m´o iles capaz de conec a los disposi i os en e
ellos sin u iliza la in aes uc u a de ed de los ope ado es de elecomu-
nicaciones. Una ez c eado el enlace en e disposi i os, la aplicaci´on debe
pode ansmi i ´ıdeo en di ec o desde un m´o il a o o, que debe a su
ez se capaz de ecibi ese ´ıdeo –y ep oduci lo, si el usua io lo quie e–
siendo capaz al mismo iempo que ecibe el ´ıdeo de e ansmi i lo a o os
disposi i os a los que es ´e conec ado, ac uando de es a mane a como un
nodo ansi o io en e disposi i os no conec ados di ec amen e en e ellos.
Pa a pode lle a a cabo el obje i o p incipal se debe:
1. In es iga sob e las ecnolog´ıas exis en es an o en el ´a ea de conexi´on
en e disposi i os m´o iles –con WiFi Di ec o WiFi Awa e como posi-
bles candida os– como en el ´a ea de ansmisi´on de ´ıdeo en di ec o y
su ep oducci´on en m´o iles.
2. Escoge las ecnolog´ıas m´as adecuadas y aplica los conocimien os
ob enidos sob e esas ecnolog´ıas pa a desa olla un p oyec o p ´ac ico.
3. Dise˜na e implemen a la aplicaci´on.
4. De ec a y es udia los posibles p oblemas que pod ´ıan su gi con la
uncionalidad que p opo ciona nues a aplicaci´on, como pod ´ıa se la
ansmisi´on de ´ıdeos con con enido inap opiado. P opone soluciones
e ec i as a es os p oblemas.
P´agina 17
De ice o De ice In oducci´on
1.3 Plan de abajo
Figu e 1: Plani icaci´on
Pa a lle a a cabo el p oyec o y consegui los obje i os amos a di idi
la plani icaci´on en 4 g andes bloques, cada uno di idido en a eas, como se
mues a en la Figu a 3
A pa i del esquema an e io hemos gene ado un diag ama de Gan
(Figu a 4)
P´agina 18
De ice o De ice In oducci´on
Figu e 2: Diag ama de Gan
P´agina 19
De ice o De ice In oduc ion
1 In oduc ion
1.1 Mo i a ion
Nowadays, in mos cases, we depend o ally on he In e ne connec ion
when connec ing wi h o he de ices h ough ou applica ions. In his
p ojec we seek o in es iga e he di e en uses ha can be achie ed wi h
applica ions in which we ha e he possibili y o connec ing ou de ices o
hose o o he s wi hou he need o ha e access o any physical ne wo k in-
as uc u e, in pa icula , wi hou using he ne wo k o elecommunica ion
ope a o s.
E en jus o c ea e an applica ion capable o connec ing o ano he
nea by de ice is al eady eally ad an ageous, bu beyond connec ing o-
ge he wo close de ices, we seek o in es iga e how o c ea e an ad hoc
ne wo k h ough hese connec ions. An ad hoc ne wo k does no depend
on ex e nal in as uc u e such as ou e s o access poin s, and is a decen-
alized ne wo k. In a ne wo k like his, de ices connec o each o he in
such a way ha new de ices can join he ne wo k by c ea ing a connec-
ion wi h any de ice al eady in i . Ou applica ion would c ea e a ad hoc
ne wo k in which he da a passes om de ice o de ice, as i i we e a
chain, un il eaching i s des ina ion. Mo e speci ically, a WANET ne wo k
(Wi eless Ad-hoc Ne wo k) o MANET (Mobile Ad-hoc Ne wo k) would
be c ea ed, since his is an ad hoc ne wo k on mobile de ices wi h wi eless
echnologies.
Cu en ly i ually e e yone has a mobile de ice and, heo e ically, in
a eas wi h a ce ain popula ion densi y i should be able o c ea e ne wo ks
by in e connec ing all de ices.
Wi h he new ad ances in echnology – such as WiFi echnologies, which
a e ound in mos de ices – we began o ha e new means o es ablish his
ype o connec ion, opening a new ange o possibili ies. We belie e ha i
is an a ea ha has been li le in es iga ed in spi e o he po en ial o e ed
by such ne wo ks.
Mo e speci ically, wha we seek is o be able o e ansmi ideo s eams
ha can be cap u ed li e h ough he came a and mic ophone o ou de-
ice, as well as p e iously eco ded ideos, and dis ibu e hese s eaming
h ough ou own ne wo k ad hoc. Some p oblems ha we ind in a MANET
ne wo k a e he use o ou ing echniques i we need o es ablish a di ec
connec ion be ween wo de ices; bu o he p oposed goals, elay ech-
niques o ype looding and mul ihopping will be used, hus a oiding hose
p oblems.
We wan o make a b oadcas in s eaming, ins ead o a simple ans e
P´agina 20
De ice o De ice In oduc ion
o ideo iles, since o some o he use cases ha we ha e in mind you may
wan o b oadcas he ideo as soon as possible, and some imes you can
no send a ile wi h he ideo a he end o he eco ding. Seconda ily, as
i can also be use ul, we wan o be able o ansmi iles.
We a e linked o he In e ne connec ion, bu in case o a na u al ca as-
ophe you can lose he in as uc u e, and he e o e he connec ion o
con en ional ne wo ks. An ad hoc ne wo k could be o med o pass ideos
and / o help messages om one de ice o ano he , un il a de ice is ound
ha has access o he In e ne , and in his way he da a sen om an
a ea wi hou connec ion will be published on he In e ne and each hei
des ina ion.
Ano he possible use case o an applica ion like he one we p opose
could be o gi e he possibili y o ansmi ing ideos o dis an de ices in
coun ies whe e human igh s c imes a e commi ed, in such a way ha
he ideo would pass om one de ice o ano he bypassing he con ol and
censo ship ha coun ies like hese es ablish in con en ional ne wo ks, in
addi ion o gi ing he possibili y o hiding he o igin o he ansmission, in
such a way ha he complainan can no be iden i ied. Fo his eason, in
addi ion, he applica ion should no lea e aces o he ideos, nei he in he
issuing mobiles no in hose ha edis ibu e hem. I he ne wo k is able
o c oss he censo ship zone, he ideos could be published on he In e ne
wi h he help o o ganiza ions such as Wi ness [1] ha a e dedica ed o
p omo ing he c ea ion and cus ody o ideos o his ype.
Bu we should ake special ca e o his case, and in gene al, wi h he
opic o “deep ake”, since a i icial in elligence is su icien ly de eloped o
be able o c ea e wi h i s help alse ideos, he di usion o which could
lead o scandals and con lic s. The use o echnologies ha can iden i y
deep akes [3] is being in es iga ed, bu his is e y di icul issue.
A echnology like he one we plan o de elop is some hing qui e new
and, like e e y no el y, he e a e a he beginning many ac o s o be aken
in o accoun , many p oblems o be sol ed, and secu i y holes o be co -
e ed. The ne wo k on which we in end o make ideo s eaming is an ad
hoc ne wo k, which does no need o use any ype o ex e nal ne wo k in-
as uc u e (such as a ou e o he in as uc u e o elecommunica ions
ope a o s), and he e o e he con en ha passes h ough i is no con-
olled by anyone o he han he issue ; he e o e, he issue i sel mus be
esponsible o wha i b oadcas s li e. He e he e is a ac o we ha e o
ake in o accoun , he malicious people, which could ansmi any ype o
ideo, wi h inapp op ia e con en , such as ideos o child po nog aphy.
Wi h he ad ances in echnology, we a e also aced wi h he p oblem
ha ideos can be modi ied in ansi , ha is, as hey pass om one de-
P´agina 21
De ice o De ice In oduc ion
ice o ano he , and no only om he sende , so i is also necessa y o
make a il e ing in eal ime. This, oge he wi h he ansmission o in-
app op ia e con en , is o i al impo ance in he case o i s use by human
igh s de ende s, gi en ha i is possible o y o use his ype o a acks
wi h he in en ion o disc edi ing he ne wo k h ough which hey a e being
dis ibu ed, as well as he use s hemsel es.
1.2 Goals
The main objec i e o his p ojec is o design and implemen an applica ion
o mobile de ices capable o connec ing he de ices be ween hem wi hou
using he ne wo k in as uc u e o elecommunica ion ope a o s. Once he
link be ween de ices is c ea ed, he applica ion mus be able o ansmi
li e ideo om one mobile o ano he , which mus in u n be able o ecei e
ha ideo –and play i , i he use wan s i – and able, a he same iem,
o elay i o o he de ices o which i is connec ed, ac ing in his way as a
ansien node be ween de ices no di ec ly connec ed be ween hem.
To be able o ca y ou he main objec i e you mus :
1. In es iga e exis ing echnologies bo h in he a ea o connec ion be-
ween mobile de ices – wi h WiFi Di ec o WiFi Awa e as possible
candida es – as in he a ea o li e ideo ansmission and i s ep o-
duc ion on mobile phones.
2. Choose he mos app op ia e echnologies, and apply he knowledge
ob ained on hese echnologies o de elop a p ac ical p ojec .
3. Design and implemen he applica ion.
4. De ec and s udy he possible p oblems ha could a ise wi h he
unc ionali y p o ided by ou applica ion, such as he ansmission o
ideos wi h inapp op ia e con en . And o p opose e ec i e solu ions
o hese p oblems.
1.3 Wo kplan
To ca y ou he p ojec and achie e he objec i es we will di ide he
planning in o 4 la ge blocks each wi h hei asks as shown in he Figu e 3
F om he p e ious scheme we ha e gene a ed a Gan cha (Figu e 4)
P´agina 22
De ice o De ice In oduc ion
Figu e 3: Plani icaci´on
P´agina 23
De ice o De ice In oduc ion
Figu e 4: Diag ama de Gan
P´agina 24
De ice o De ice An eceden es
2 An eceden es
2.1 S eaming
S eaming consis e en c ea un lujo sin in e upci´on de con enido mul i-
media a ´es de una ed de mane a que un usua io puede ep oduci lo
e ansmi ido a la ez que se desca ga. El s eaming puede se ”li e”,
en di ec o, o de audio y/o ´ıdeo ya exis en es. No malmen e cuando se
e ansmi e audio y ´ıdeo a la ez, es os se ansmi en po sepa ado en
dos lujos dis in os los cuales deben i sinc onizados po lo que equie e de
p o ocolos que pa a con ola lo.
El s eaming equie e de una conexi´on po lo menos de igual ancho de
banda que la asa de bi s de la ansmisi´on del se icio. Tambi´en exis e
s eaming de asa de bi s adap able que de ec a el ancho de banda de la
conexi´on y la capacidad de la CPU de un usua io y ajus a la calidad de
ansmisi´on de mul imedia en unci´on de ello.
2.2 WiMAX
WiMax es una amilia de p o ocolos de los ni eles ´ısico y enlace de da os
que pe mi e conec a se a una ed a a ´es de ondas elec omagn´e icas en
las ecuencias de 2,5 a 5,8 GHz que pueden ene una cobe u a de has a
80 km.
Po su cobe u a y endimien o se suele usa conexiones en donde no es
posible ene acceso a la ed median e edes adicionales de pa es de cob e
o ib a ´op ica pe o es necesa ia una in aes uc u a bas an e g ande.
2.3 Blue oo h
El Blue oo h [4] es una ecnolog´ıa que se usa pa a la ansmisi´on inal´amb ica
de da os en e di e en es disposi i os que se encuen an a co a dis ancia,
den o de un adio de alcance que suele se de diez me os. Cons a de un
conjun o de p o ocolos de ni el ´ısico y de enlace pe o ambi´en de ni eles
mas al os.
Es a ecnolog´ıa ansmi e inal´amb icamen e da os a a ´es de ondas de
adio en las ecuencias de 2,4 GHz. Pa a ello, hace uso de las Redes
Inal´amb icas de ´
A ea Pe sonal.
Los equipos deben encon a se den o de un adio de alcance co o,
aunque puede a ia en unci´on del apa a o. Los disposi i os Blue oo h
se clasi ican de la siguien e mane a:
P´agina 25
De ice o De ice Elecci´on de ecnolog´ıas
3 Elecci´on de ecnolog´ıas
3.1 And oid
Pa a el desa ollo de es e p oyec o dado que se busca
u iliza una aplicaci´on m´o il se ha elegido desa olla la
pa a el sis ema ope a i o And oid a causa de que es
el sis ema ope a i o con la mayo asa de u ilizaci´on
en los sma phones con un po cen aje ap oximado al
74.5%[12] al comienzo del a˜no 2019. De es a o ma
el desa ollo pa a la aplicaci´on pa a And oid iene el
alcance de llega a muchos mas disposi i os as´ı como
la posibilidad de encon a mucha mas documen aci´on
y ejemplos que si la desa oll´asemos pa a o os sis emas ope a i os como
iOS o WindowsPhone. Adem´as And oid da sopo e con su API an o a la
ecnolog´ıa de WiFi Di ec como a WiFi Awa e.
3.2 WiFi Di ec
Hemos decido lle a el p oyec o a cabo usando la Wi i
Di ec implemen ada en la API de And oid dado que
es a ecnolog´ıa es a p esen e desde la e si´on 4.0 del
sis ema ope a i o lo que signi ica que la g an mayo ´ıa
de los disposi i os end ´an acceso a ella mien as que
po lo que hemos podido comp oba incluso aunque
el sopo e de And oid pa a WiFi Awa e es a p esen e
desde la e si´on O eo (8.0), apenas exis en disposi i os
en el me cado con el ha dwa e necesa io pa a pode u iliza la.
Nos hab ´ıa gus ado pode usa Wi i Awa e po que pensamos que con
es a nue a ecnolog´ıa pod ´ıamos lle a el p oyec o a cabo mucho mas
´acilmen e y con g andes en ajas ´ecnicas pe o debido a la imposibilidad
de p oba la aplicaci´on con disposi i os eales hemos enido que limi a nos
a Wi i Di ec . El p oyec o pod ´ıa u iliza la ecnolog´ıa Wi i Awa e en un
u u o, de o ma exclusi a o incluso combin´andola con WiFi Di ec pa a
con inua dando se icio a los disposi i os que no la sopo en oda ´ıa.
3.3 Ja a
Ja a es un lenguaje de p og amaci´on o ien ado a obje-
os mul ipla a o ma muy popula en la ac ualidad. Lo
hemos elegido pa a el desa ollo de la aplicaci´on dado
que es un lenguaje de p og amaci´on con el que ambos enemos expe iencia
P´agina 32
De ice o De ice Elecci´on de ecnolog´ıas
y es adem´as el lenguaje p incipal de desa ollo de aplicaciones en And oid y
po es e mo i o se puede encon a mucha mas documen aci´on y ejemplos
que o os lenguajes mas nue os como Ko lin.
3.4 RTP sob e UDP
Como p o ocolo de ansmisi´on hemos escogido RTP sob e UDP ya que es
un p o ocolo con iable o ien ado a la ansmisi´on audio o ´ıdeo en iempo
eal. Jun o con RTP u iliza emos el p o ocolo RTCP pa a el con ol y la
sinc onizaci´on de los lujos mul imedia. Sob e UDP po que es un p o ocolo
m´as lige o y ´apido aun que menos iable que TCP, pe o pa a el se icio de
s eaming es mejo aun que pod ´ıa habe pe dida de da os que simplemen e
no se mos a ´an al usua io y puede que ´es e ni se d´e cuen a.
3.5 RTSP
Pa a es ablece y con ola el lujo de da os en e se ido y clien e u i-
lizamos RTSP. Es e p o ocolo nos pa eci´o el mas adecuado po que se adap a
pe ec amen e a las necesidades de nues o p oyec o, sob e odo pa a la
pa e del se ido o emiso del s eaming, ya que se enca ga de con ola
la conexi´on en e el se ido y el clien e y a ende las pe iciones del clien e
aun que el clien e ambi´en puede a ende algunas pe iciones del se ido .
Es un p o ocolo muy es anda izado y que m´ul iples ep oduc o es mul i-
media pueden ab i como puede se el ep oduc o in eg ado del sis ema
ope a i o And oid.
Respec o al in e ´es pa a noso os de s eaming con asa de bi s adap -
able, si un lujo iene que pasa de disposi i o en disposi i o po muchos
disposi i os, el e ec o de usa es e ipo de s eaming se ´ıa que despu´es de
X hops, la calidad del ´ıdeo sea la que sopo a el enlace peo . Po o o
lado, el hecho de ene que pa a la ep oducci´on du an e un iempo a la
espe a de m´as da os (p og essi e download) en los enlaces peo es es menos
p oblema que pe de calidad ya que, si los mecanismos de adap aci´on bajan
demasiado la calidad (menos ames po segundo o meno esoluci´on po
ame) es posible que se pie dan de alles c uciales. Po an o, en los usos
p e is os pa a nues a aplicaci´on, es mejo no usa s eaming con asa de
bi s adap able.
Adem´as, pues o que nues a aplicaci´on no se conec a a la ed de los ope -
ado es de elecomunicaciones, usa HTTP s eaming ampoco da ´ıa acceso
a la ed de dis ibuci´on de con enido que exis e pa a HTTP. Finalmen e,
dado que nues a aplicaci´on cae den o de la ca ego ´ıa de “li e s eaming”,
ampoco nos in e esa acili a el sal o a cualquie pun o de s eam.
P´agina 33
De ice o De ice Elecci´on de ecnolog´ıas
Po esas azones, no nos impo a usa los p o ocolos RTSP y RTP/RTCP,
aunque sean un poco an icuados pa a hace s eaming, en ez de el ac ual-
men e mucho m´as popula HTTP.
3.6 libs eaming
libs eaming [13] es una lib e ´ıa de c´odigo abie o con licencia Apache 2.0
pa a el sis ema ope a i o And oid que nos o ece un API ´acil de in eg a
en aplicaciones con el que c ea s eamings desde la c´ama a y mic ´o ono
de nues o disposi i o u ilizando el p o ocolo RTP sob e UDP. Mas all´a
de es o la lib e ´ıa ambi´en implemen a pa e del p o ocolo RTSP pa a el
con ol de s eamings an o en su o ma de se ido como la de clien e.
B inda sopo e pa a m´ul iples codi icado es mul imedia como pueden se
H.264 pa a el ´ıdeo y AAC pa a el audio. Hemos elegido es a lib e ´ıa pa a
basa nos en el desa ollo de la aplicaci´on dado a la g an e sa ilidad que
nos apo a como un pun o de a anque pa a odo el desa ollo necesa io
pa a el p oyec o.
3.7 libVLC
LibVLC [14] es una po en e lib e ´ıa pa a la ges i´on de
con enido mul imedia, puede se in eg ada ´acilmen e
en las aplicaciones y se pueden llega a consegui e-
sul ados como el amoso ep oduc o mul imedia VLC
[15] dado que es e es ´a basado en es a. Es una lib e ´ıa
de c´odigo abie o con licencia LGPL, adem´as posee
una lib e ´ıa que o ece una API sob e es e co e pa a
And oid con una licencia GPL 2, noso os u iliza e-
mos es a ul ima en el p oyec o.
Hemos elegido usa es a lib e ´ıa pa a la ep oducci´on de los s eaming
de ´ıdeo debido a su po encia, e sa ilidad y la acilidad de in eg aci´on de
la misma pa a la ep oducci´on de un s eaming desde un se ido RTSP.
3.8 And oid S udio
And oid S udio es el en o no de desa ollo o icial in e-
g ado (IDE) pa a desa ollo de aplicaciones pa a An-
d oid. Es ´a disponible pa a los sis emas ope a i os
Windows, Mac OS X y Linux. B inda una g an can-
idad de he amien as pa a ayuda en el desa ollo y aumen a la p oduc-
i idad a la ho a de c ea aplicaciones. O ece la posibilidad de c ea las
P´agina 34
De ice o De ice Elecci´on de ecnolog´ıas
in e aces g ´a icas de o ma isual, as´ı como la posibilidad de p oba la
aplicaci´on en di e en es disposi i os i uales con di e en es e siones de
And oid. Hemos usado es e en o no pa a desa olla la g an pa e del
c´odigo de nues o p oyec o.
3.9 G adle
G adle [16] es una he amien a que pe mi e au oma i-
za la cons ucci´on de p oyec os, pe mi e au oma iza
en e o as cosas la compilaci´on y la alidaci´on del
p oyec o, adem´as de ges iona las dependencias de o ma ecu si a. Es ´a
basada en G oo y, un lenguaje de p og amaci´on muy pa ecido a Ja a y
es ´a inco po ada en And oid S udio.
3.10 Gi y Gi hub
Gi es un so wa e de con ol de e siones dise˜nado
pensando en la e iciencia y el man enimien o de e -
siones de aplicaciones cuando ´es as ienen un g an
n´ume o de a chi os de c´odigo uen e. Su p op´osi o
es lle a egis o de los cambios en los a chi os y coo dina el abajo que
a ias pe sonas ealizan sob e a chi os compa idos. G acias a Gi podemos
abaja de o ma colabo a i a con el meno nume o posible de con lic os.
Es un so wa e al que los dos ya es amos acos umb ados dado a su ex en-
dido uso y que es undamen al a la ho a de abaja en equipo el desa ollo
de una aplicaci´on.
Hemos usado un eposi o io gi alojado en Gi hub,
es a pla a o ma que aloja miles de eposi o ios es la
pla a o ma l´ıde en cuan o al alojamien o de eposi-
o ios de c´odigo siendo un e e en e del c´odigo abie o en la ac ualidad.
O ece el alojamien o de eposi o ios de o ma g a ui a Pa a lle a el con-
ol de e siones del c´odigo de nues o p oyec o hemos usado un eposi o io
Gi alojado en Gi Hub dado que es un sis ema que nos es amilia y de uso
muy ex endido.
3.11 T ello
T ello [17] es un so wa e de adminis aci´on de p oyec-
os con in e az web que u iliza el m´e odo Kanban.
Es a he amien a pe mi e la c eaci´on de able os y lis-
as de a je as i uales. Las a je as son el ep esen a i o de a eas pendi-
P´agina 35
De ice o De ice Elecci´on de ecnolog´ıas
en es y/o nue as ideas del p oyec o, y jun o con las lis as se an o ganizando
de al o ma que podemos sabe en cada momen o cual es el p og eso de
los obje i os a ealiza y quien es la pe sona asignada a dicha a ea. Es
una he amien a muy in e ac i a y con un amplio uso pa a la epa ici´on
de a eas en p oyec os desa ollados con me odolog´ıas ´agiles.
3.12 L
A
T
E
X y O e lea
L
A
T
EX[18] es un sis ema de composici´on de ex os que
es ´a o ien ado especialmen e a la c eaci´on de docu-
men os de al a calidad debido al g an abanico de posi-
bilidades que nos o ece es muy usado pa a la c eaci´on
de documen os, a ´ıculos y lib os cien ´ı icos as´ı como abajos de in de
g ado, m´as e o esis doc o ales. Pe mi e la ´acil modi icaci´on de los es ilos
de odo el documen o al mismo iempo que o ece ayudas pa a la ges i´on
de los ´ındices y la bibliog a ´ıa. L
A
T
EX es ´a o ganizado sob e T
EX.
Hemos decidido usa L
A
T
EX po encima de Mic oso Wo d dada la com-
plejidad del documen o y con el obje i o de ob ene una memo ia del
p oyec o mas p o esional y de mejo calidad.
Como edi o de L
A
T
EX hemos usado O e lea [19],
una pla a o ma que o ece la opo unidad del desa -
ollo de documen os sob e la ex de o ma colabo a i a
y cen alizada de al o ma que a ios pa icipan es
pueden es a modi icando el documen o simul ´aneamen e sin con lic os
desde cualquie ubicaci´on en la que dispongan conexi´on a in e ne .
P´agina 36
De ice o De ice Especi icaci´on
4 Especi icaci´on
T as ealiza la in es igaci´on sob e las posibles ecnolog´ıas que se pueden
aplica a nues o p oyec o y escoge las que mejo sa is acen las necesidades
de ´es e p ocedemos a dise˜na y especi ica nues a aplicaci´on.
4.1 Requisi os
Pa a cumpli los obje i os que p oponemos, nues a aplicaci´on se puede
di idi en es apa ados que son:
•Conexiones pee - o-pee .
•T ansmisi´on del s eaming de ´ıdeo y audio gene ado po la c´ama a y
mic ´o ono del disposi i o.
•Recepci´on y ep oducci´on del s eaming jun o con e ansmisi´on del
mismo como nodo de ansi o.
4.1.1 Conexi´on
Lo p ime o que nues a aplicaci´on debe hace es pode conec a se a o o
disposi i o con las ecnolog´ıas seleccionadas en el apa ado de elecci´on de
ecnolog´ıas. Con lo cual debe cumpli es os equisi os:
•Requisi o uncional: Busca disposi i os ce canos disponibles.
•Requisi o uncional: Realiza una conexi´on y c ea un enlace con o o
disposi i o ce cano.
4.1.2 T ansmisi´on de da os
En segundo luga , una ez es ablecida la conexi´on en e dos o mas dispos-
i i os la aplicaci´on debe:
•Requisi o uncional: Mos a al usua io que desea hace s eaming lo
que e su c´ama a.
•Requisi o uncional: P epa a los da os de la c´ama a y el mic ´o ono
pa a pode se en iados.
•Requisi o uncional: Iden i ica al des ina a io.
•Requisi o uncional: En ia los da os p epa ados, o cualquie a chi o
o mensaje de ex o.
P´agina 37
De ice o De ice Dise˜no
•Requisi o uncional: No deja azas en el m´o il emiso as ealiza
un s eaming de ´ıdeo.
4.1.3 Recepci´on, in e p e aci´on y e ansmisi´on de da os
Po ul imo, la aplicaci´on debe pode maneja los da os ecibidos y, po
an o, cumpli los siguien es equisi os:
•Requisi o uncional: Recibi y a a los da os ecibidos.
•Requisi o uncional: Rep oduci el ´ıdeo ecibido si el usua io quie e.
•Requisi o uncional: Re ansmi i los da os ecibidos a o os disposi-
i os conec ados al mismo iempo que se es ´an ecibiendo.
P´agina 38
De ice o De ice Dise˜no
5 Dise˜no
5.1 Conside aciones gene ales de dise˜no
5.1.1 Funcionamien o de Wi i Di ec
Cuando empezamos a es udia el dise˜no de la aplicaci´on pa a una ed con
WiFi Di ec nos encon amos an e a ias si uaciones debido a su dise˜no en
el cual las conexiones de WiFi Di ec c ean un g upo que es muy pa ecido
a una peque˜na ed local.
Es a ed se c ea al ededo de uno de los disposi i os in oluc ados en la
conexi´on, que se ´a designado como G oup Owne y ac ua ´a de o ma simila
a un pun o de acceso como si se a ase de una ed WiFi “co ien e” en la
que el ou e es el pun o de acceso y cen o de la ed.
Una ez se ha es ablecido la conexi´on en e dos disposi i os y se ha
c eado es e g upo, o os disposi i os pueden conec a se a la ed, bien c e-
ando una conexi´on di ec a al G oup Owne o ya sea conec ´andose a alguno
de los disposi i os conec ados a la ed el cual nos edi igi ´a al G oup Owne
pa a conec a nos a ´el.
Figu e 5: Conexiones WiFi Di ec
P´agina 39
De ice o De ice Dise˜no
Es e p oceso se puede obse a en la Figu a 5, pe o pa a ello nece-
si a emos ene den o de alcance al G oup Owne o en caso con a io no
pod emos conec a nos a la ed.
Cuando se c ea es a conexi´on se lle a a cabo un p oceso de negociaci´on de
la conexi´on median e el cual se es ablecen cie os aspec os sob e como se ´a
la ed, quien se ´a el G oup Owne y las IPs de los disposi i os in oluc ados
en la misma. Cuando dos disposi i os in en an conec a se se quedan en
es ado “in i ado” has a que se negocia y se au o iza la conexi´on. El p oceso
de conexi´on suele a da en e unos 5 y 8 segundos.
5.1.2 Mul ihop y ed ad hoc con WiFi Di ec
Pa a c ea una ed ad hoc con WiFi Di ec se necesi a que un clien e que
ya es e conec ado a un g upo sea capaz de conec a se a un segundo g upo
de al o ma que es e ac u´e como nodo de enlace en e los dos g upos
pe mi iendo conec a las edes que o man es os como podemos e en la
Figu a 6.
Es o ambi´en pe mi e que cualquie disposi i o se pueda uni a la ed
aunque se encuen e ue a del alcance del G oup Owne : el nue o dispos-
i i o c ea ´ıa un nue o g upo en el que ´el mismo es el G oup Owne y uno
de los clien es de un g upo exis en e ac ua ´ıa como nodo enlace conec ado
como clien e an o al G oup Owne del nue o g upo, es deci el nue o
disposi i o, como al G oup Owne del g upo exis en e.
Figu e 6: M´ul iples edes WiFi Di ec
Uno de los p oblemas con el que nos encon amos al en en a nos a uni
dos edes de WiFi Di ec es que cada ed no se encuen a al alcance de la
P´agina 40
De ice o De ice Dise˜no
o a. Solo el nodo de enlace iene la posibilidad de accede a ambas edes
y es es e el que iene la esponsabilidad de encamina los paque es pa a
que lleguen a su des ino. Po es a az´on si se desea se capaces de en ia
paque es di ec os en e disposi i os de di e en es edes se necesi an c ea
las u as pa a el encaminamien o aunque pa a nues o caso en conc e o
debido a que que emos e ansmi i el s eaming a odos los disposi i os de
la ed que lo acep en u iliza emos ´ecnicas de ipo looding ymul ihoping.
WiFi Di ec nos o o ga la posibilidad de que es e G oup Owne sea
elegido al aza o bien que noso os designemos quien a a se el G oup
Owne o la p io idad que iene a la ho a de se nomb ado el G oup Owne
si no es a es ablecido. Es o puede se ealmen e bene icioso a la ho a de
c ea una ed ad hoc con WiFi Di ec ya que pod ´ıamos decidi obse ando
los mapas de la ed cuales debe ´ıan se los G oup Owne s pa a op imiza
la ed.
Tambi´en nos encon amos con que es posible que a a ´es de la ed
de WiFi Di ec los da os sean edi eccionados hacia la ed con encional
de In e ne si cualquie a de los disposi i os in oluc ados en la ed iene
acceso las dos edes. El disposi i o conec ado a ambas edes ac ua ´a como
nodo de enlace po an o pod ´a een ia los da os a se ido es ex e nos o
bien a o os clien es que se hayan conec ado a el po la ed de In e ne .
Es e paso de da os en e la ed de WiFi Di ec y la ed de In e ne debe
se implemen ado po la aplicaci´on que u ilice WiFi Di ec , as´ı como el
encaminamien o de es os paque es.
5.1.3 Limi aciones de la implemen aci´on de WiFi Di ec en And oid
Cuando hemos in es igado sob e como dise˜na nues a aplicaci´on usando
WiFi Di ec nos hemos encon ado con una g an limi aci´on en la imple-
men aci´on de la API de WiFi Di ec que nos o ece And oid y que no
nos ha pe mi ido con inua el dise˜no y el desa ollo de la aplicaci´on po el
camino que dese´abamos.
Es a limi aci´on es que un disposi i o no puede man ene la memb es´ıa
en a ios g upos de WiFi Di ec simul ´aneamen e, es o nos condiciona a
que no amos a pode uni a ias edes de WiFi Di ec y po an o no
se pod ´a consegui c ea una ed ad hoc pa a nues a aplicaci´on como se
buscaba.
Seg´un el a iculo publicado po WiFi Alliance [20], que un disposi i o
WiFi Di ec sea capaz de pe enece a a ios g upos a la ez es una especi-
icaci´on opcional de implemen a y el sis ema ope a i o And oid nunca la
llego a implemen a .
Algunas de las posibles soluciones que hemos encon ado son:
P´agina 41
De ice o De ice Dise˜no
5.3.2 S eaming a a ios disposi i os simul ´aneamen e
Cuando con emplamos los posibles escena ios a la ho a de ealiza el s eam-
ing de ´ıdeo an o en una ed ad hoc donde es necesa io hace mul ihop-
ping como en una ed simple de WiFi Di ec , en p ime luga enemos las
si uaciones en la cual un disposi i o necesi a e ansmi i un s eaming de
´ıdeo a a ios clien es simul ´aneamen e. Es a si uaci´on se pod ´ıa da en
p ime luga si se a a del G oup Owne y el cen o de la ed, de al o ma
que puede e ansmi i a odos los disposi i os que es ´an conec ados a ´el,
dando la posibilidad a que odos esos disposi i os puedan hace mul ihop
mas a de y een ia el s eaming. Adem´as, nos b inda la opo unidad de
pode abas ece a oda una peque˜na ed de WiFi Di ec c eando conex-
iones di ec as con cada disposi i o. Podemos obse a es as si uaciones en
la Figu a 10.
Figu e 10: Escena ios de s eaming a a ios disposi i os simul ´aneamen e
Tambi´en se pod ´ıa da el caso de que un disposi i o, que es un nodo
de enlace en e dos g upos de WiFi Di ec , quie a e ansmi i en di ec o.
Te´o icamen e si el disposi i o emiso es ´a conec ado a las dos edes, debe ´ıa
se capaz de e ansmi i a odos los disposi i os en cualquie a de es as,
es ableciendo conexi´on di ec a con cada uno de los disposi i os de cada ed
como obse amos en el diag ama de la Figu a 11.
La uncionalidad de mul is eaming es o almen e necesa ia y ha sido
nues o p ime p oblema a soluciona , es o es po que p ime o la aplicaci´on
debe se capaz de e ansmi i a a ios disposi i os a la ez, en caso de
es a conec ados a a ios, pa a que si cualquie a de ellos ac ´ua como un
nodo de enlace pueda e ansmi i po medio de mul ihopping el s eaming
a los disposi i os del o o g upo de WiFi Di ec .
P´agina 48
De ice o De ice Dise˜no
Figu e 11: Escena ios de s eaming a a ios disposi i os simul ´aneamen e
5.3.3 P oblema en la e ansmisi´on simul anea con la lib e ´ıa libs eaming
Nos encon amos con un se io p oblema de dise˜no en la lib e ´ıa libs eaming
pa a implemen a es a uncionalidad. Aunque es a dise˜nada pa a c ea
nue as sesiones con cada conexi´on en el se ido , en el es ado inicial de
la lib e ´ıa e a imposible dado que es as sesiones c ean a su ez nue os
VideoS eam y AudioS eam, es as clases es ´an dise˜nadas pa a in e ac ua
di ec amen e an o con la c´ama a como con el mic ´o ono espec i amen e
exis iendo el g an p oblema que en And oid es os pe i ´e icos no pueden se
usados mas de una ez al mismo iempo siendo bloquean es las ins ancias.
Tan o VideoS eam como AudioS eam in en aban c ea nue os accesos a
la c´ama a y al mic ´o ono de al o ma que no pod´ıan accede en el caso del
audio o le ” obaban” la c´ama a al VideoS eam de la sesi´on an e io .
Es o es un cla o p oblema de dise˜no en la lib e ´ıa ya que el se ido
es a implemen ado de al o ma que pueda man ene sesiones simul aneas
con a ios clien es, pe o no si e de nada pode man ene es as sesiones
si no somos capaces de e ansmi i el s eaming a los clien es de o ma
simul anea.
Pa a esol e es e p oblema debemos modi ica la lib e ´ıa y sepa a
la c´ama a y el mic ´o ono del VideoS eam y AudioS eam c eando una
clase in e media en e los s eams y los paque izado es que maneje es os
pe i ´e icos, ecolec e los da os de es os y se los pase a cada paque izado
que los necesi e.
P´agina 49
De ice o De ice Dise˜no
5.3.4 Nodo de ansi o y mul ihopping de s eamings con WiFi Di ec
Pa a pode e ansmi i el s eaming en una ed ad hoc encon amos en un
segundo escena io en el que necesi amos que un disposi i o sea capaz de
ecibi y e ansmi i el s eaming al mismo iempo pa a as´ı ac ua como un
nodo de ansi o pe mi i´endonos c ea una ed Mul ihop. Cabe des aca
que el disposi i o que ac ´ua como nodo de ansi o ambi´en debe ´ıa se
capaz de ep oduci el s eaming.
En el caso de una ed sencilla de WiFi Di ec , en el que un disposi i o
o ece el se icio de s eaming y o os disposi i os de la ed quie en ecibi lo,
el emiso pod ´ıa en ia el s eam a odos los po enciales ecep o es de o ma
simul ´anea, es ableciendo conexiones di ec as con cada uno de ellos. Sin
emba go, es e p ocedimien o es poco escalable, dado que el s eaming de
los lujos de ´ıdeo en al a calidad implica ans e i g andes can idades
de da os. Se ´ıa m´as e icien e que el disposi i o que o ece un se icio de
s eaming lo en ie al GO y el GO se enca gue de e ansmi i lo al es o de
sus clien es, al como se ilus a en la Figu a 12.
Figu e 12: Escena ios s eaming con mul ihopping
Pe o ya se ia o almen e necesa io en el caso que un clien e es u iese
conec ado a una segunda ed y que amos e ansmi i el s eaming de nue o
pa a dis ibui lo po la nue a ed. Si adem´as es o se ex iende a o os
disposi i os que ambi´en ac ´uan como nodos de enlace y nos conec an con
o as edes ya nos pe mi i ´ıa dis ibui el s eaming po una ed ad hoc.
Como podemos e en la Figu a 13 aqu´ı no solo ac ua ia el G oup Owne
como nodo de ansi o sino que a su ez un clien e ac ´ua como nodo de
ansi o pa a el s eaming y como nodo de enlace en e ambas edes. Cabe
P´agina 50
De ice o De ice Dise˜no
Figu e 13: Escena ios s eaming con mul ihopping
des aca que cualquie disposi i o conec ado a la ed de WiFi Di ec que
ambi´en disponga de una conexi´on a In e ne pod ´ıa ac ua como nodo de
enlace de ambas edes y pe mi i la e ansmisi´on del s eaming hacia las
edes con encionales.
Cuando que emos amplia un se icio como el de s eaming de ´ıdeo en
disposi i os m´o iles algo en lo que debemos pensa adem´as es en la ca ga
que ponemos an o sob e el disposi i o m´o il como sob e las conexiones
de la ed, cuan o mas se expande la ed mas impo an e es op imiza las
conexiones y educi la ca ga pa a la e ansmisi´on.
5.3.5 Nodo de ´ansi o y mul ihopping con la lib e ´ıa libs eaming
Tal como se ha is o an e io men e, la lib e ´ıa libs eaming con iene una
clase que implemen a un clien e RTSP y una clase que implemen a un
se ido RTSP.
Seg´un el p o ocolo RTSP [9], el clien e RTSP que quie e ecibi (modal-
idad “ ep oduci ”) un s eam de un se ido RTSP u iliza las di ec i as:
DESCRIBE, SETUP, PLAY y TEARDOWN. P ime o, el clien e en ´ıa la
pe ici´on DESCRIBE a la que el se ido con es a con in o maci´on de ini-
cializaci´on, a con inuaci´on el clien e debe ealiza una pe ici´on SETUP,
es ableciendo el alo play pa a el pa ´ame o mode, po cada pis a mul-
imedia que se desea ecibi (no malmen e, uno pa a el audio y o o pa a
el ´ıdeo), pa a inalmen e en ia una pe ici´on PLAY indicando al se ido
que se puede inicia la ansmisi´on. La pe ici´on TEARDOWN (una po
s eam, al igual que SETUP) e mina la sesi´on y cie a el s eam. Ve la
P´agina 51
De ice o De ice Dise˜no
Figu e 14: Secuencias de pe iciones en RTSP
Figu a 14 pa a una ep esen aci´on isual de es e escena io.
Es e es el escena io habi ual cuando conec amos nues o disposi i o con
un cie o ep oduc o mul imedia a un se ido RTSP pa a as´ı pode isu-
aliza el s eaming en nues o disposi i o.
Seg´un el p o ocolo RTSP, el clien e que quie e en ia (modalidad “pub-
lica ”) un s eam a un se ido RTSP u iliza las di ec i as: ANNOUNCE,
SETUP, RECORD y TEARDOWN. P ime o, el clien e en ´ıa una pe ici´on
ANNOUNCE que con iene in o maci´on sob e los s eam que se quie e en-
ia , a con inuaci´on debe ealiza una pe ici´on SETUP, es ableciendo el
alo ecei e pa a el pa ´ame o mode, po cada pis a mul imedia que se
desea en ia (no malmen e, uno pa a el audio y o o pa a el ´ıdeo), pa a
inalmen e en ia una pe ici´on RECORD indicando que se a a inicia
la ansmisi´on. La pe ici´on TEARDOWN (una po s eam, al igual que
SETUP) e mina la sesi´on y cie a el s eam. Ve la Figu a 14 pa a una
ep esen aci´on isual de es e escena io.
Es e es el escena io habi ual cuando el clien e quie e se el emiso del
s eam pe o no quien lo dis ibuya, de es a o ma en ´ıa el s eaming a un
se ido dado pa a que es e mas a de lo edis ibuya o bien lo gua de en
un iche o.
Cuando obse amos las di e en es posibilidades pa a ealiza mul ihop-
ping con RTSP en el caso de la ansmisi´on de un s eam en e disposi i os
A, B, C y D, es deci , de A a B, de B a C y de C a D, se pod ´ıa hace de
P´agina 52
De ice o De ice Dise˜no
a ias mane as:
La p ime a o ma supone el uso del clien e y se ido en cada nodo de
´ansi o, usando siemp e la modalidad “publica ”:
1. Un clien e RTSP de A se conec a en modalidad publica a un se ido
RTSP de B
2. El se ido RTSP de B pasa el s eam a un clien e RTSP de B
3. El clien e RTSP del disposi i o B se conec a en modalidad publica a
un se ido RTSP de C
4. El se ido RTSP de C pasa el s eam a un clien e RTSP de C
5. El clien e RTSP de C se conec a en modalidad publica a un se ido
RTSP de D
La segunda o ma supone el uso del clien e y se ido en cada nodo de
´ansi o, usando siemp e la modalidad “ ep oduci ”:
1. Un clien e RTSP de B se conec a en modalidad ep oduci al se ido
RTSP de A
2. El clien e RTSP de B pasa el s eam a un se ido RTSP de B
3. Un clien e RTSP de C se conec a en modalidad ep oduci al se ido
RTSP de B
4. El clien e RTSP de C pasa el s eam a un se ido RTSP de C
5. Un clien e RTSP de D se conec a en modalidad ep oduci al se ido
RTSP de C
Y una e ce a o ma con clien e o se ido en cada nodo de ´ansi o y
al e nando en e las modalidades “publica ” y “ ep oduci ”:
1. Un clien e RTSP de A se conec a en modalidad publica a un se ido
RTSP de B
2. El clien e RTSP 1 de C se conec a en modalidad ep oduci a es e
se ido RTSP de B
3. El clien e RTSP 1 de C pasa el s eam a clien e RTSP 2 de C
4. El clien e RTSP 2 de C se conec a en modalidad publica a un se ido
RTSP de D
P´agina 53
De ice o De ice Dise˜no
La mejo soluci´on no es i ial en una aplicaci´on como es a, pa a algunos
de los casos de uso p opues os como el caso de la ca ´as o e na u al y el
caso de los de echos humanos po ejemplo que emos que el s eam aya
pasando de un disposi i o a o o has a que llegue a oda la ed lo mas
´apido posible y es de supone que los disposi i os ac ua an como nodos de
ansi o sin in e acci´on del usua io, po es o la p ime a o ma en la que solo
se u iliza la modalidad “publica ” puede pa ece mejo , pe o en el caso de
los de echos humanos donde pueden exis i usua ios malin encionados que
in en en sa u a la ed o in oduci ´ıdeos con con enido no ap opiado se
pod ´ıan ap o echa de es o po lo que la segunda o ma en la que siemp e
se u iliza la modalidad de “ ep oduci ” puede se una mejo ap oximaci´on
d´andonos mas posibilidad de decisi´on en el nodo de ansi o.
Tambi´en cabe deci que un implemen aci´on mas comple a donde se al e -
nan como en la e ce a p opues a es muy in e esan e, iene la g an en aja
en e a la segunda de pode en ia con modalidad “publica ” el s eam
desde los nodos de ansi o, lo que pe mi e en ia el s eam a se ido es a
a ´es de In e ne . Adem´as, en una al e na i a donde se puedan al e na
las modalidades de “publica ” y “ ep oduci ” no siemp e end ´ıa que se
de la o ma que hemos desc i o y es posible que dependiendo de la con-
igu aci´on de la aplicaci´on el ansi o del s eam se e ec u´e de o mas muy
di e en es, como pod ´ıan se po ejemplo la p ime a donde siemp e se en ´ıa
u ilizando la modalidad de “publica ” o bien la segunda o ma donde siem-
p e u ilizamos la modalidad de “ ep oduci ” dado que ab imos mucho el
abanico de posibilidades.
En el caso de la implemen aci´on de WiFi Di ec de And oid, como se
ha explicado en la Secci´on 5.1.3, solo se pueden hace dos hops de mane a
sa is ac o ia. Pa a implemen a es os dos hops, hemos decidido implemen-
a los p ime os dos pasos de la e ce a opci´on (en ez de los p ime os es
pasos de la p ime a o segunda opci´on).
5.3.6 P oblemas pa a ealiza mul ihopping con la lib e ´ıa libs eaming
El p ime o de los p oblemas que hemos encon ado con la lib e ´ıa libs eam-
ing pa a ealiza el mul ihopping es que, siendo una lib e ´ıa pensada solo
pa a dis ibui los s eams gene ados po la c´ama a y del mic ´o ono del p o-
pio disposi i o, solo implemen a la modalidad de “publica ” en el clien e
RTSP y es necesa io que sea implemen ada en se ido RTSP ambi´en pa a
que es ´e pueda ecibi el s eam que le en ´ıa el clien e.
El segundo p oblema que hemos encon ado con la lib e ´ıa libs eaming
es que, adem´as, la implemen aci´on de la modalidad de “ ep oduci ” en
el se ido RTSP de la lib e ´ıa a ligada a sesiones pa a ep oduci un
s eaming que es a p oduciendo el disposi i o del se ido en iempo eal
P´agina 54
De ice o De ice Dise˜no
desde la c´ama a y el mic ´o ono, po lo que es necesa io la eimplemen aci´on
de las pe iciones DESCRIBE, SETUP y PLAY cuando el con enido que se
es a solici ando no p o iene de los pe i ´e icos del disposi i o sino de un
clien e que es a en i´andonos un s eaming a nues o se ido en modalidad
”publica ”.
Es o adem´as incluye que se enemos que c ea di e en es sesiones pa a
cada ipo de clien e que se conec e al se ido :
•Session pa a aquellos clien es que desean ep oduci el s eaming p o-
ducido po la cama a y el mic ´o ono en iempo eal. Es a clase ya es a
implemen ada y apenas debe emos cambia su implemen aci´on sino
como se ges ionan es as sesiones.
•Recei eSession pa a aquellos clien e que desean publica un s eaming
en el se ido pa a se dis ibuido.
•Reb oadcas Session pa a aquellos clien es que desean ep oduci el
s eaming que se ha publicado en el se ido po un e ce o.
Pa a e ansmi i el s eaming que se es a ecibiendo en la Recei eSes-
sion y ansmi i lo al clien e de una Reb oadcas Session c ea emos unos
se ido es UDP que es a ´an ecibiendo los da os de cada uno de los lujos
mul imedia (audio y ´ıdeo) de una Recei eSession y een i´andolos a o-
dos los clien es que es ´en susc i os median e una Reb oadcas Session a es a
p ime a sesi´on.
Con odo es o y debido a las g andes modi icaciones que se deben hace
en el se ido RTSP an o en las espues as a las pe iciones como en el
a amien o de es as hemos decidido u iliza nues o paque e de conex-
iones y c ea un nue o se ido RTSP in eg ando las uncionalidades del
R spSe e p opo cionado po la lib e ´ıa y a˜nadiendo las nue as pe iciones
necesa ias pa a ecibi y e ansmi i el s eaming as´ı como usa y di e en-
cia odas las sesiones.
De es a o ma implemen a emos la clase RTSPSe e Selec o y RT-
SPSe e Wo ke pa a es ablece las conexiones y p ocesa las pe iciones
RTSP, ambi´en implemen a emos el UDPSe e Selec o y el EchoWo ke
pa a ealiza la e ansmisi´on de los paque es RTP que se es ´an ecibiendo
en los pue os UDP. Podemos obse a el diag ama de es as clases en la
Figu a 15
Con es o se emos capaces de c ea el p ime sal o, ya que un disposi i o
se ´a capaz de ecibi el s eaming y een ia lo pe o pa a la c eaci´on de un
segundo sal o se ia necesa io ealiza mas cambios en el se ido RTSP y
clien e RTSP.
Una p ime a o ma se ia ex ende la uncionalidad del se ido RTSP
P´agina 55
De ice o De ice Dise˜no
Figu e 15: Diag ama de clases en el paque e de conexiones
pa a que sea capaz de aspasa el s eaming a un clien e RTSP en modali-
dad “publica ” el cual e ansmi i ´a el s eaming que el se ido le p opo -
ciona. Es o nos pe mi i ´ıa lle a a cabo la p ime a opci´on desc i a en la
Secci´on 5.3.5.
Pa a lle a es o a cabo, adem´as de los cambios necesa ios en el se i-
do , pa a c ea es e clien e y aspasa le el s eaming ecibido es necesa io
ealiza una g an can idad de cambios en el clien e RTSP pa a pode e-
ansmi i en modalidad “publica ” desde un s eaming que no es gene ado
po el p opio disposi i o. Po ello es incluso mas p ´ac ica la c eaci´on de un
nue o clien e que se asocia ´a con una Reb oadcas Session en el se ido y
u iliza ´a los se ido es UDP de la Recei eSession pa a ealiza el een i´o
de da os.
Una segunda o ma se ia c ea un nue o clien e RTSP el cual uese capaz
de conec a se en modalidad “ ep oduci ” a un se ido RTSP pa a ecibi
el s eaming, gene ando una Recei eSession que mas a de se aspasa ´a
al se ido RTSP. Con es o pod ´ıamos lle a a cabo la segunda opci´on
con emplada en la Secci´on 5.3.5.
Es necesa io implemen a un nue o clien e po comple o pe o cabe de-
ci que ya se han implemen ado an o la Recei eSession que debe gene a
como los se ido es UDP que es ´an asociados a es a. Po lo an o sin de-
masiados cambios en el se ido RTSP usa emos es e nue o clien e RTSP
pa a conec a nos a o o se ido y gene a una nue a Recei eSession, a
con inuaci´on siguiendo el mismo p oceso que acabamos de dise˜na en es a
P´agina 56
De ice o De ice Dise˜no
secci´on, el se ido se ´a capaz de e ansmi i el s eaming de la Recei eSes-
sion cuando un clien e se conec a al se ido .
Implemen ando uno u ambos cambios se emos capaces de ealiza sal os
in ini os, en el caso de implemen a ambos end emos mayo e sa ilidad a
la ho a de es ablece como que emos que es os sal os se ealicen dependi-
endo de las di e en es si uaciones.
P´agina 57
De ice o De ice Implemen aci´on
pa a los o os VideoS eam po lo que el esul ado es que cada uno solo
en iaba peque˜nos agmen os de ´ıdeo en eco ados.
El mismo p oblema desc i o con la c´ama a se aplica al mic ´o ono, es
necesa io ob ene los da os de ambos de una o ma ex e na y despu´es dis-
ibui la en e los dis in os VideoS eam y AudioS eam. Desacopla el uso
de la c´ama a y el mic ´o ono ue un abajo bas an e labo ioso po lo ligados
que es aban a las clases. Finalmen e lo conseguimos median e la siguien e
soluci´on aunque se han enido que desac i a algunas in e acciones que
an es s´ı pod´ıan hace se con los pe i ´e icos.
Po ello pa a aisla la ecogida de da os de es as clases, plan eamos im-
plemen a unas clases Dispa che las cuales se ´an las enca gadas de ob ene
los da os an o de la c´ama a como del mic ´o ono y epa i lo en e los
dis in os s eamings ac i os. Pa a consegui es o los s eamings debe ´an
susc ibi se a es os Dispa che s cuando quie an comenza la e ansmisi´on.
Se comenz´o implemen ando el Dispa che pa a el ´ıdeo, se han eal-
izado dos implemen aciones pa a es e y es o es debido a que inicialmen e
se plan eo una clase MediaCodecDispa che , la cual deb´ıa se capaz de lee
los da os de la c´ama a y ans e i los a a ios MediaCodec. La en aja de
es a soluci´on e a que pa a cada s eam se pod´ıa ene una calidad dis in a
y adem´as ya se pod´ıa hace s eam a m´as de un disposi i o.
Pe o un g an incon enien e que nos ech´o pa a a ´as con es a soluci´on
ue que cuan os m´as disposi i os se conec aban al R spSe e m´as len o
empezaba a i el ´ıdeo en cada sesi´on y es o se debe a que po cada Me-
diaCodec nue o el m´o il deb´ıa codi ica la imagen y el audio, y no es un
p oceso lige o y equie e bas an e compu aci´on po pa e del p ocesado
sob e odo con la pa e de ´ıdeo. In es igando hemos encon ado que los
m´o iles mas po en es solo pod´ıa llega a ene has a 8 MediaCodecs aba-
jando al mismo iempo. Finalmen e u imos que desca a es a opci´on y
pensa en algo mejo .
Las nue as clases p incipales que c eamos pa a la lib e ´ıa son AudioPack-
e ize Dispa che y VideoPacke ize Dispa che , es as se enca ga ´an de lee
los da os de los pe i ´e icos, codi ica los con un MediaCodec y aspas´a selos
a los Packe ize s que se hayan susc i o a ellos. Cada AudioS eam y
VideoS eam al inicia el s eaming llama an a una unci´on de su espec i o
Dispa che pa a que es e comience a abas ece le con los da os mul imedia.
Todos los Packe ize an o de ´ıdeo como de audio es ´an dise˜nados pa a
lee los da os de un MediaCodecInpu S eam, la cual es una clase que
ex iende de Inpu S eam p opo cionando as´ı una in e az es ´anda de lec-
u a. Po ello hemos c eado una nue a clase By eBu e Inpu S eam la
cual ambi´en ex iende de Inpu S eam pa a as´ı ene la misma in e az de
lec u a que MediaCodecInpu S eam y pode eemplaza la. Es a clase es
P´agina 64
De ice o De ice Implemen aci´on
la enca gada de almacena los da os pa a los dis in os Packe ize .
Hemos c eado una clase MediaCodecBu e Reade la cual implemen a
un hilo pa a lee siemp e que se disponga de nue os da os de un pe i ´e ico
a a ´es de su MediaCodecInpu S eam y copia los a odos los By eBu e -
Inpu S eam que iene asignados en una lis a. Cada Dispa che al inicia se
c ea a un MediaCodecBu e Reade pa a lee de la c´ama a o mic ´o ono.
Aho a po cada nue a sesi´on las clases AudioS eam y VideoS eam
deben susc ibi sus Packe ize s (son los enca gados de c ea los paque es
RTP y en ia los) a los espec i os Dispa che s. Los Dispa che s c ean un
nue o By eBu e Inpu S eam po cada Packe ize y lo asignan al mismo
como uen e de los da os donde an es se le asignaba un MediaCodecInpu -
S eam.
Adem´as se a˜nade el By eBu e Inpu S eam a la lis a del MediaCodecBu -
e Reade de al o ma que es e ul imo empieza a copia los da os del Me-
diaCodec en el By eBu e Inpu S eam y el Packe ize puede empeza a
en ia los paque es y de es a mane a conseguimos que odos los Packe-
ize engan los da os mul imedia sin ene que accede a la c´ama a y el
mic ´o ono m´ul iples eces.
Figu e 19: Diag ama de clases de la soluci´on mul is eaming
Cuando los Dispa che s se quedan sin Packe ize s, es deci , no hay
P´agina 65
De ice o De ice Implemen aci´on
clien es iendo el s eaming en di ec o, se pa an los MediaCodec y se cie an
los dis in os hilos que leen de es os pa a as´ı libe a los ecu sos, a con in-
uaci´on se p ocede a e mina los Dispa che s, has a que un nue o clien e
se conec e, e i ando de es a mane a gas o de ecu sos innecesa io.
Con es a soluci´on e i amos el p oblema de m´ul iples accesos a la c´ama a
y el mic ´o ono o c eaci´on de m´ul iples MediaCodecs y conseguimos hace el
s eaming a m´ul iples disposi i os simul ´aneamen e. El ´unico incon enien e
es que la ansmisi´on en di ec o se hace a un calidad ija pa a odos los
clien es aunque eso no es un p oblema pa a los casos de uso p opues os.
En la Figu a 19 se mues a el diag ama de clases de es a soluci´on. En el
se mues an las nue as clases nue as y con las que es ´as in e ac ´uan. Pa a
e el diag ama inicial de la lib e ´ıa ´ease la Figu a 9.
6.5.2 Re ansmisi´on del s eaming median e Mul iHop
Pa a lle a acabo la solucion p opues a el Secci´on 5.3.6, lo p ime o que
hemos hecho ha sido implemen a un nue o se ido RTSP con nues o
paque e de conexiones bas´andonos en g an pa e en el R spSe e de la
lib e ´ıa, pa a ello c eamos las clases RTSPSe e Selec o y RTSPWo ke
donde se con olan las conexiones y p ocesan las pe iciones espec i amen e.
Lo siguien e a implemen a es la Recei eSession y el se ido UDP pa a
pode empeza a ecibi la ansmisi´on de un clien e en el se ido . Pa a
ello, desa ollamos las nue as clases UDPSe e Selec o y EchoWo ke ,
donde el selec o pone un socke UDP a la escucha en un pue o dado
y pe mi e que susc ibamos di ecciones y pue os a las que el EchoWo ke
een ia ´a cada ez que se eciban da os pa a de es a o ma e ansmi i los
lujos mul imedia que es amos ecibiendo a o os clien es.
Pa a pode c ea los se ido es UDP pa a een ia los lujos del s eam-
ing hemos ealizado cambios an o en el Abs ac Selec o como en el Ab-
s ac Wo ke , de al o ma que es os pudiesen abaja an o con los Sock-
e Channel, que es la clase pa a los socke s TCP en NIO, como con los Da a-
g amChannel, que son los designados pa a el p o ocolo UDP. Pa a ello e a
necesa io modi ica muchas de las ope aciones b´asicas del Abs ac Selec o
como las de ecibi da os o en ia los pa a iden i ica el ipo de Channel
usado.
A con inuaci´on, hemos enido que c ea una implemen aci´on del Ab-
s ac Selec o que es el UDPSe e Selec o el cual c ea un se ido a la
escucha en un pue o UDP y adem´as es capaz de ene un lis ado de conex-
iones UDP a las que se en ia an los paque es. Tambi´en hemos desa ollado
una implemen aci´on de la clase Abs ac Wo ke que es EchoWo ke . Es e
wo ke no p ocesa los paque es y simplemen e een ´ıa odos los da os que
P´agina 66
De ice o De ice Implemen aci´on
le lleguen a odos los clien es que es ´en susc i os al UDPSe e Selec o .
De es a o ma podemos c ea un se ido en el cual ecibi emos los lujos
mul imedia y al cual pod emos susc ibi clien es que quie en ecibi es os
lujos pa a que sean een iados.
C eamos una clase Recei eSession la cual es capaz de con ene la in o -
maci´on de sesi´on y de cada pis a mul imedia c eando nue as T ackIn o pa a
cada una, es as T ackIn o almacenan la desc ipci´on de los lujos mul imedia
a los que co esponden y son capaces de comenza los UDPSe e Selec o
en los pue os en lo que se an a ecibi es as pis as pa a de es a o ma
pode empeza la ecepci´on de los da os cuando se inicie la Recei eSession.
Despu´es es necesa io eimplemen a el p ocesamien o de pe iciones del
se ido pa a que p ocese las pe iciones que ealiza el clien e al publica el
s eaming y pueda c ea una nue a Recei eSession, la p ime a pe ici´on a
implemen a es ANNOUNCE po que es con la que se inicia la sesi´on, en
nues o dise˜no pa a la ges i´on de m´ul iples s eamings hemos decidido que
la pe ici´on del ANNOUNCE debe se llamada de o ma que se iden i ica la
sesi´on po la u a de la pe ici´on (Ej: sp://192.168.1.49/cus omSession),
de es a o ma se c ea una nue a Recei eSession asociada a esa u a y se
almacenan las pa es necesa ias de la pe ici´on ANNOUNCE donde se de-
sc iben la sesi´on y los lujos mul imedia an a se publicados pa a que luego
mas a de podamos c ea las pe iciones de e ansmisi´on de o ma co ec a.
Si odo es co ec o el se ido almacena la sesi´on y p ocede a esponde con
un OK.
Despu´es es necesa io eimplemen a la pe ici´on SETUP ya que es a
solo es a disponible pa a mode=play y al publica un clien e la en ´ıa con
el pa ´ame o mode= ecei e, como mapeamos las conexiones del se ido
RTSP con las sesiones es o se esuel e de o ma sencilla di e enciando que
ipo de sesi´on iene esa conexi´on pa a de es a o ma si es una Recei eSes-
sion in oca la nue a implemen aci´on. En es a nue a pe ici´on SETUP
gua da emos los pue os a los que el clien e a a en ia el lujo mul imedia
de ´ıdeo o audio y los asigna emos a la Recei eSession asociada pa a mas
a de pode con ola las pis as.
Po ul imo pa a el lujo del se ido es necesa io implemen a la unci´on
RECORD donde se nos indica que se an a comenza a en ia los lujos
mul imedia a los pue os es ablecidos en las pe iciones an e io es, en es e
momen o se inician los se ido es UDP de los dis in os T ackIn o de la Re-
cei eSession aunque oda ´ıa es necesa io implemen a la Reb oadcas Ses-
sion y las pe iciones asociadas con ella pa a pode e ansmi i el s eaming
que es amos ecibiendo.
P ime o c eamos una Reb oadcas Session la cual es capaz de almacena
la in o maci´on del clien e que es a ecibiendo el s eaming as´ı como de
P´agina 67
De ice o De ice Implemen aci´on
cada uno de los lujos que se an a e ansmi i desde la Recei eSession
que lle a asociada, es la sesi´on enca gada de que los se ido es UDP de la
Recei eSession comiencen o dejen de een ia los da os al clien e asociado a
la sesi´on. Es a sesi´on ambi´en u iliza la ayuda de una peque˜na clase auxilia
Reb oadcas T ackIn o donde almacena la in o maci´on de cada lujo.
A con inuaci´on es necesa io eimplemen a cada una de las pe iciones
DESCRIBE, SETUP(mode=play) y PLAY, po que a pesa de que ya en´ıan
implemen adas en el se ido p opo cionado po la lib e ´ıa es as abajan
di ec amen e con la sesi´on que c ea al ealiza un s eaming desde la c´ama a
y mic ´o ono. Empezamos eimplemen ando la pe ici´on DESCRIBE, es a
igual que el ANNOUNCE iene asociada con una u a pa a iden i ica
que Recei eSession se desea ep oduci , en caso de es a ac´ıo se in en a a
c ea una sesi´on pa a el s eaming en iempo eal de nues o disposi i o.
En caso con a io se c ea a una Reb oadcas Session y se la asocia a con
la Recei eSession co espondien e, y se c ea a una nue a desc ipci´on de
sesi´on u ilizando los da os de los lujos almacenados an e io men e en la
Recei eSession que se a en iada al clien e.
Figu e 20: Diag ama de clases de la soluci´on mul is eaming
Despu´es ha sido necesa io eimplemen a la pe ici´on SETUP cuando
P´agina 68
De ice o De ice Implemen aci´on
es llamada po una Reb oadcas Session, en es a pe ici´on es ablece emos
los pue os a los que en ia emos los lujos mul imedia y con igu a emos las
Reb oadcas T ackIn o de acue do con es o pa a pos e io men e comenza a
een ia el con enido. Finalmen e cuando el clien e asociado a la Reb oad-
cas Session ealice la pe ici´on PLAY, una nue a implemen aci´on de es a
pe ici´on susc ibi ´a las di ecciones y pue os asociadas con los lujos a los
se ido es UDP de la Recei eSession de al o ma que el clien e comenza a
a ecibi el s eaming.
Tambi´en ha sido necesa io eimplemen a la pe ici´on TEARDOWN pa a
cada una de las sesiones de al o ma que si la en ´ıa una Reb oadcas Session
es a cancele la susc ipci´on a la Recei eSession y deje de een ia los lujos
mul imedia. En el caso de la Recei eSession adem´as de ce a los se ido es
UDP dado que el clien e deja a de emi i el s eaming ha de enca ga se de
ce a odas las Reb oadcas Sessions que es aban asociadas a esa sesi´on
pues se ha e minado el s eaming que es aban isualizando.
Debido a nues a limi aci´on a una peque˜na ed de WiFi Di ec po los
mo i os mencionados en la Secci´on 5.1.3, hemos es ablecido un sis ema en
el cual si el emiso del s eaming es un clien e conec ado al G oup Owne ,
le en ia ´a el s eaming pa a que es ´e lo dis ibuya al es o de clien es y
si el emiso es el G oup Owne en onces es e simplemen e e ansmi i ´a
simul ´aneamen e a odos los clien es.
P´agina 69
De ice o De ice Conclusi´on
7 Conclusi´on
La idea de c ea edes ad hoc en disposi i os m´o iles que se encuen en
ce ca unos de o os sin ene que pasa po una ed de los ope ado es de
elecomunicaciones, y hace s eaming de ´ıdeo en di ec o a a ´es de dicha
ed, es algo ambicioso y di ´ıcil de lle a a cabo.
Noso os en es e p oyec o hemos in en ado po odos los medios posibles
que es a idea se pudiese lle a a cabo analizando los dis in os ipos de dis-
posi i os m´o iles, cu´ales se ´ıan los m´as adecuados, y qu´e sis ema ope a i o
se ´ıa la mejo opci´on pa a hace posible es a idea.
T as habe nos decidido po los disposi i os m´o iles con sis ema ope a-
i o And oid, ya que ´es os son los m´as comunes y los m´as usados, con un
85.9% del o al de en as de m´o iles en 2017 en e a un 16% de iOS y 0.1%
o os, seg´un un epo aje [23], nos hemos pues o a in es iga las posibles
ecnolog´ıas de conexi´on exis en es que pod ´ıamos usa pa a la ealizaci´on
de es e p oyec o.
T as la a ea de in es igaci´on dud´abamos en e dos opciones posibles,
WiFi Di ec o WiFi Awa e. Pe o debido a que la segunda opci´on es algo
bas an e no edoso, la al a de la documen aci´on sob e ´es a, y la al a de
disponibilidad de disposi i os con es a ecnolog´ıa pa a la ealizaci´on de
p uebas du an e el desa ollo, inalmen e hemos op ado po la p ime a.
Al es udia WiFi Di ec m´as a ondo descub imos que es una ecnolog´ıa
cuya implemen aci´on en And oid p esen a cie as limi aciones (explicadas
en la Secci´on 5.1) las cuales nos impiden cumpli algunos de los obje i os
impo an es del p oyec o, en e ellos el de c eaci´on de la ed ad hoc. P o-
pusimos algunas soluciones encon adas en dis in os a ´ıculos ace ca de la
c eaci´on de edes ad hoc sob e WiFi Di ec , pe o ninguna nos pa eci´o iable
pa a es e p oyec o.
Es as limi aciones hacen que s´olo podamos in e conec a un g upo de
disposi i os que se encuen en ce ca unos de o os, y po an o hace el
s eaming de ´ıdeo sob e una ed peque˜na.
Po o a pa e, la emisi´on de ´ıdeo en di ec o ambi´en ue un e o bas-
an e g ande que u imos que abo da . Pa a ello nos decan amos po el
uso de los p o ocolos RTSP y RTP/RTCP en ez HTTP, a pesa de que
HTTP s eaming es el m´as popula ac ualmen e, ya que las en ajas de
HTTP s eaming no son ele an es en nues o caso, como explicamos en la
secci´on 3.5.
T as un p oceso de in es igaci´on bas an e la go, hemos encon ado e
incluido en nues o p oyec o una lib e ´ıa de c´odigo abie o cuyas ca ac-
e ´ıs icas y limi aciones exponemos de alladamen e en la secci´on 5.3.
P´agina 70
De ice o De ice Conclusi´on
Conc e amen e, la p incipal limi aci´on obse ada en la lib e ´ıa du an e
la ase de dise˜no, y explicada en el apa ado 5.3.2, es que no se pod´ıa
hace s eaming a m´ul iples disposi i os simul ´aneamen e, debido a que
cada e ansmisi´on bloqueaba la c´ama a y el mic ´o ono. Pa a soluciona
es e p oblema, hicimos cambios en la lib e ´ıa pa a que un disposi i o pueda
emi i en di ec o a m´ul iples disposi i os a la ez accediendo una ´unica ez
a los pe i ´e icos. Explicamos en de alle es e a eglo en el apa ado 6.5.1 de
la secci´on Implemen aci´on.
Aunque po las limi aciones de WiFi Di ec no es posible la c eaci´on
de la ed ad hoc, en la secci´on 5.3.4 de Dise˜no hemos in en ado simula
el escena io de una ed ad hoc donde el s eaming se dis ibuye sal ando
de un disposi i o a o o, y es udiado las di e en es al e na i as de las que
dispon´ıamos pa a ello.
Cuando plan eamos simula es e escena io con la lib e ´ıa nos encon-
amos con los p oblemas desc i os en la secci´on 5.3.6. El p oblema es que
la lib e ´ıa es aba ´unicamen e pensada pa a pode e ansmi i el s eam-
ing gene ado po el p opio disposi i o. Po ello, hemos eimplemen ado el
se ido , y desa ollado nue as uncionalidades pa a pode ecibi y en ia
s eamings, el desa ollo de las cuales se de alla en la secci´on 6.5.2. Es o
nos ha pe mi ido c ea nodos de ´ansi o capaces de een ia el s eaming
al mismo iempo que lo eciben. De es a o ma somos capaces de dis ibui
el s eaming po nues o g upo de WiFi Di ec , sal ando de un disposi i o
a o o.
De es a mane a nos ace camos m´as a la soluci´on que dese´abamos desde
un p incipio, ya que de se posible en un u u o la exis encia de un “nodo
de enlace” en e dos g upos WiFi Di ec , o bien la posibilidad de c ea una
ed ad hoc median e o a nue a ecnolog´ıa, pod ´ıamos eu iliza la soluci´on
que hemos desa ollado, y dis ibui el s eaming po la ed u ilizando es e
m´e odo.
Resumiendo, hemos desa ollado una aplicaci´on desde la cual podemos
c ea conexiones WiFi Di ec –limi ando ´es as a un solo g upo de WiFi Di-
ec de disposi i os ce canos– a a ´es de las cuales podemos hace s eam-
ing de ´ıdeo en di ec o en dos modalidades dis in as. La p ime a modalidad
es Mul is eaming, consis en e en ealiza s eaming simul ´aneamen e a a -
ios disposi i os. La segunda modalidad es Mul ihop, que consis e en que un
clien e emi e a un se ido , y es e ´ul imo se enca ga que edis ibui lo a los
disposi i os que es ´an conec ados con ´el. La aplicaci´on ambi´en ecibe un
lis ado de s eamings disponibles, y podemos ep oduci los di ec amen e en
el m´o il pinchando sob e uno de nues a elecci´on. Pa a es a uncionalidad
usamos o a lib e ´ıa, lib lc.
P´agina 71
De ice o De ice Conclusion
7 Conclusion
The idea o c ea ing ad hoc ne wo ks on mobile de ices ha a e close o
each o he wi hou ha ing o go h ough a ne wo k o elecommunica ion
ope a o s, and o s eam li e ideo h ough ha ne wo k, is a goal ambi-
ious and di icul o ca y ou .
In his p ojec we ha e ied by all possible means o ca y ou his idea,
by analyzing he di e en ypes o mobile de ices, which would be he mos
app op ia e, and which ope a ing sys em would be he bes op ion o make
his idea possible.
A e ha ing decided on mobile de ices wi h And oid ope a ing sys em,
since hese a e he mos common and mos used, wi h 85.9% o o al mobile
sales in 2017 compa ed o 16% o iOS and 0.1% o he , acco ding o a
epo [23], we ha e s a ed o in es iga e he possible exis ing connec ion
echnologies ha we could use o ca y ou his p ojec .
A e he esea ch ask we we e hesi a ing be ween wo possible op ions,
WiFi Di ec o WiFi Awa e. Bu because he second op ion is some hing
qui e new, he lack o documen a ion on i , and he lack o a ailabili y o
de ices wi h his echnology o es ing du ing de elopmen , we ha e inally
op ed o he i s .
When s udying WiFi Di ec mo e ho oughly we disco e ed ha i is a
echnology whose implemen a ion in And oid has ce ain limi a ions (ex-
plained in Sec ion 5.1) which p e en us om ul illing some o he impo -
an objec i es o he p ojec , among hem he c ea ion o he ed ad hoc.
We p oposed some solu ions ound in di e en a icles abou he c ea ion
o ne wo ks ad hoc on WiFi Di ec , bu none o hem seemed iable o his
p ojec .
These limi a ions mean ha we can only in e connec a g oup o de ices
ha a e close o each o he , and he e o e wen can only make he ideo
s eaming o e a small ne wo k.
On he o he hand, he li e ideo b oadcas was also a e y big challenge
ha we had o add ess. Fo his we ha e op ed o he use o he RTSP
and RTP / RTCP p o ocols ins ead o HTTP, al hough HTTP s eaming
is cu en ly he mos popula , since he ad an ages o HTTP s eaming a e
no ele an in ou case, as we explained in he sec ion 3.5.
A e a qui e long esea ch p ocess, we ha e ound and included in ou
p ojec an open sou ce lib a y whose cha ac e is ics and limi a ions we
expose in de ail in he sec ion 5.3.
Speci ically, he main limi a ion obse ed in he lib a y du ing he design
P´agina 72
De ice o De ice Conclusion
phase, and explained in he sec ion 5.3.2, is ha one canno s eam o
mul iple de ices simul aneously, because each e ansmission blocked he
came a and mic ophone. To sol e his p oblem, we made changes in he
lib a y so ha a de ice can b oadcas li e o mul iple de ices a once by
accessing he pe iphe als only once. We explain his a angemen in de ail
in he 6.5.1 sec ion o he Implemen a ion sec ion.
Al hough due o he limi a ions o WiFi Di ec i is no possible o c ea e
he ad hoc ne wo k, in he 5.3.4 sec ion o Design we ha e ied o simula e
he scena io o an ad hoc ne wo k whe e s eaming is dis ibu es jumping
om one de ice o ano he , and s udied he di e en al e na i es ha we
had o i .
When we se ou o simula e his scena io wi h he lib a y, we ind he
p oblems desc ibed in he sec ion 5.3.6. The p oblem is ha he lib a y
was only designed o be able o e ansmi he s eaming gene a ed by he
de ice i sel . Fo his eason, we ha e eimplemen ed he se e , and de el-
oped new unc ionali ies o ecei e and send s eamings, he de elopmen
o which is de ailed in he sec ion 6.5.2. This has allowed us o c ea e
ansi nodes capable o o wa ding he s eaming a he same ime hey
ecei e i . In his way we a e able o dis ibu e he s eaming all along ou
WiFi Di ec g oup, jumping om one de ice o ano he .
In his way we ge close o he solu ion we aimed a om he begin-
ning, because i i we e possible in he u u e he exis ence o a “link node”
be ween wo WiFi Di ec g oups, o he possibili y o c ea ing an ad hoc
ne wo k by means o ano he new echnology, i should be possible o euse
he solu ion we ha e de eloped, and dis ibu e he s eaming o e he ne -
wo k using his me hod.
In sho , we ha e de eloped an applica ion om which we can c ea e
WiFi Di ec connec ions - limi ing hese o a single g oup o WiFi Di ec
o nea by de ices - h ough which we can s eam li e ideo in wo di e en
modes. The i s modali y is Mul is eaming, consis ing o simul aneous
s eaming o se e al de ices. The second mode is Mul ihop, which consis s
o a clien issuing o a se e , whe e he la e is esponsible o edis ibu -
ing i o he de ices ha a e connec ed o i . The applica ion also ecei es
a lis o a ailable s eams, and we can ep oduce hem di ec ly on he mo-
bile by clicking on one o ou choice. Fo his unc ionali y we use ano he
lib a y, lib lc.
P´agina 73