scieee Open visual document viewer

Device to device streaming en dispositivos móviles

Gulyk, Iván; Algora Igual, Noel José

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

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