scieee Science in your language
[es] (orig)

Device to device streaming en dispositivos móviles

Abstract

El objetivo principal de este proyecto ha sido desarrollar una aplicación para dispositivos móviles capaz de crear una red distribuida, y de retransmitir vídeo en streaming directamente desde la cámara y micrófono de uno u varios dispositivos de la red. La aplicación propuesta debía poder crear una red infinita por interconexión de dispositivos cercanos, todo esto sin usar la infraestructura de red de los operadores de telecomunicaciones. En el transcurso del proyecto mostramos que, debido a las limitaciones en la implementación de la tecnología disponible, actualmente no es posible lograr del todo este objetivo. Por esta razón, desarrollamos una aplicación con funcionalidad reducida, pero capaz de transmitir y reproducir streaming a través de una pequeña red distribuida de dispositivos conectados mediante la tecnología WiFi Direct. La aplicación permite distribuir el streaming por medio de multihopping, de tal forma que vaya pasando de un dispositivo a otro en cadena hasta llegar a su destino. Sin embargo el estado actual de la tecnología implementada en los dispositivos móviles solo nos permite realizar dos saltos, es decir, conectar tres dispositivos en cadena. El código fuente de nuestro proyecto está alojado en un repositorio público en GitHub en la siguiente URL: https://github.com/ivangulyk/TFG

Read accessible full text

Device to device streaming en dispositivos móviles

Author: Gulyk, Iván; Algora Igual, Noel José
Year: 2019
Source: https://docta.ucm.es/bitstreams/6fbf2b14-b371-453f-a3f7-af834d822b68/download
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