Oblig3-Gruppe4)
Fra Hiofwiki
(diff) ← Eldre versjon | vis nåværende versjon | Nyere versjon → (diff)
Innhold |
Sanntidstreaming med multicast
Vi lastet ned og installerte Quicktime Broadcaster på Niklas' PowerBook G4 15-tommers-maskin. Til denne maskinen koblet vi til et videokamera av typen Canon XH A1. Vi startet en live multicastsending som vi prøvde å koble til på Eriks mac. Vi hadde en del problemer med å få det til og virke med en gang. Når vi streamer med multicast blir det en videoadresse og en audioadresse. Vi prøvde å streame videoadressen i VLC, men vi fikk ingen kontakt med serveren. Vi fikk et eksternt tips om å eksportere en liten oppstartsfil fra Quicktime Broadcaster for så å sende den filen til alle som skal se på streamen. Dette fungerte bra. Vi prøvde to ganger med forskjellige videokodeker. Vi brukte først h.264 som er standard i Quicktime Broadcaster og etterpå MPEG-4. Det ble en god del bedre bildekvalitet med MPEG-4-kodeken.
MPEG-4 er en åpen komprimerings teknologi utviklet av Moving Picture Experts Group, de samme som stod bak MPEG-1 og MPEG-2. Dette vil gi høykvalitets video over internett med fornuftig båndbreddebruk. MPEG-4 er delvis basert på QuickTime formatet og er en standard som krever interoperabilitet og fremmer en universell måte for videostreaming. Med interoperabilitet så menes det at to eller flere systemer har evne til å utveksle informasjon og nyttiggjøre seg av informasjonen som er utvekslet. MPEG-4 er kun en videokomprimeringsteknikk, hvor lyden er tiltenkt at skal kodes via MPEG-4 AAC eller MP3.
Desverre fikk vi bare testet streaming på kablet nett da det trådløse nettet på skolen ikke virker lenger.
RTSP (Real Time Streaming Protocol) er en protokoll for bruk innen streaming av mediasystemer som lar klienten kontrollere en streamet videoserver på avstand. Med mulighetene til å spille av og sette på pause, og gir tilgang til filer på en server. Overføringen av data er ikke i hovedsak en del av RTSP protokollen. De fleste RTSP serverene bruker standard protokollen RTP som en transport protokoll for de aktuelle audio/video dataene som en slags metadata kanal. RTSP serveren fra RealNetworks har Reals beskyttede RDT som transport protokollen.
On demand-streaming med RTSP
Til denne oppgaven installerte vi RTSP-serveren DSS ( Darwin Streaming Server) på Eriks mac. DSS var den første open source RTP/RTSP streaming serveren og er utviklet av Apple. Denne tjenesten er gratis og er tilsvarende Apples QuickTime Streaming Server som baserer seg på den samme koden. Den har støtte for både unicast og multicast av QT og MP4, samt distribusjon av SDP (Session Description Protocol). Videre i utfordringen fant vi frem et videoklipp som vi eksporterte på nytt fra Quicktime Player. Vi valgte å bruke kodeken MPEG-4 og valgte aktiver streaming før eksportering. Dette gjør at vi får en hintet videofil. Denne videosnutten la vi i mappa: /Library/QuickTimeStreaming/Movies som serveren henter filene fra. Deretter lagde vi en ny media playlist med den nylig eksporterte MPEG-4-filmen. Vi ga spillelisten navnet hei.sdp. Så startet vi broadcasteren og testet følgende URL: rtsp://pc163-58.hiof.no/hei.sdp i Quicktime Playeren til Espen. pc163-58.hiof.no var den lokale adressen på Eriks mac, som i dette tilfellet var serveren. Dette fungerte overraskende bra og videoen starten fra begynnelsen da tilkoblingen var i boks.
Hvorfor er det nødvendig å hinte MPEG-4 filer før publisering med DSS?
Darwin Streaming Server benytter seg av det hintede sporet MPEG-4-fila til å dele opp innholdet i passe store RTP-pakker. Ved å hinte videofila før den publiseres sparer man mye ressurser. Da er det bare nødvendig å hinte fila en gang i stedet for hver gang den blir etterspurt. Dessuten ville det tatt lengre tid før man kunne begynne å se videostreamen hvis serveren skulle finne ut hvordan den skulle dele opp videofila på serveren ved hver forespørsel.
Sanntidstreaming med RTSP
Denne oppgaven brukte vi veldig lang tid på å løse. Hver gang vi prøvde å broadcaste med automatic unicast i Quicktime Broadcaster fikk vi feilmeldingen: connection failed (-5420). Vi tilkalte Audun for hjelp, men det lot seg ikke løse av uvisse grunner. Mr. Vaaler rådet oss til å installere Darwin Streaming Server på en annen mac og prøve på nytt.
Vi gjorde akkurat som han tipset oss om og byttet maskin. Vi gjorde akkurat de samme innstillingene igjen og da funket det. På Host name skrev vi rtsp://127.0.0.1 (vi prøvde også pc163-65.hiof.no som viste seg å være akkurat det samme). De andre på gruppa koblet seg til streamen ved å skrive rtsp://pc163-65.hiof.no/mystream.sdp eller rtsp://158.39.163.65/mystream.sdp. Den første er med maskinens lokale adresse, mens den andre lenka bruker den eksterne IP-adressen. Begge lenkene virker bra på skolens lokale nettverk. Vi regnet med at streamingslenka der vi bruker den eksterne IP-adressen også ville fungere over internett med brukere utenfor skolens nettverk. Dette var desverre ikke tilfellet. De som koblet seg til streamen fikk beskjeden: bytter transport. Mer skjedde ikke.
Når er det nyttig å bruke RTSP i stedet for multicast til sanntidstreaming?
Streaming med multicast innebærer trafikk til mange på en gang istedenfor en strøm til hver enkelt bruker, noe som fører til redusert trafikkmengde. Fordelen med det åpenbarer seg hvis det er mange brukere og liten båndbredde å streame over. Det er nyttig å bruke RTSP istedenfor multicast hvis man ønsker å nå frem til alle som er koblet til internett, og ikke bare de som er koblet opp til multicastnettverket. RTSP gir dessuten mulighet til å påvirke streamingen ved å trykke på stopp, pause og record, slik at man kan ta opp det som blir streamet. Sanntidsstreaming med multicast støtter ikke den funksjonen.
Publisering med BitTorrent
Vi brukte programmet uTorrent for å lage en torrent vi kunne publisere. Vi fulgte guiden på programmets side om hvordan man publiserer filer med BitTorrent (http://www.utorrent.com/torrent.php). Vi lagde dermed en torrent av en mp3-samling av et hittil ukjent gammelt festband fra Halden. Først prøvde vi å lage vår egen tracker med maskinens IP-adresse og et høyt portnummer. Deretter sendte vi over torrent-fila over msn til de resterende medlemmene på gruppa. Alle åpnet torrentfila i sitt respektive BitTorrentprogram og det så ut til å virke. Men etter litt venting uten at noe som helst skjedde på opplasting eller nedlasting, konstaterte vi med at det ikke virket.
Det vi gjorde da var å lage torrenten på nytt der vi brukte trackeren til www.thepiratebay.org i stedet for en egen. http://thepiratebay.org/tor/4102776/Achtung_Homo_. Det tok litt tid før nedlastingen startet nå også, men det fungerte til slutt. Vi fikk lastet ned fila og filene fungerte som de skulle etter nedlasting.
Fakta om BitTorrent
BitTorrent er et p2p-system for å distribuere filer i et nettverk. p2p (peer-to-peer) er en måte å organisere ressursdeling på i et datanett, der ressursene ligger spredt på en eller flere lokalt administrerte klientprosesser. Ressursene som deles er vanligvis filer, men i teorien er det ingenting som forhindrer deling av andre ressurser som f.eks. behandlingskraft, overføringskapasitet og korttidslagring. En klient i et p2p-nett vil med hjelp fra andre likesinnede tilegne seg filer med f.eks. musikk, bilder, programvare eller filmer, for så å gjøre dette tilgjengelig for andre. Denne organiseringsformen ble kjent med ”Napster” rundt 1997, da det dannet grobunn for utveksling av digitalisert musikk og film som normalt sett har vært utgitt via andre distribusjonskanaler underlagt streng overvåkning. På grunn av p2p-nett har bransjen mistet anledningen til å overvåke, og p2p-systemet har etter hvert blitt stemplet som en destruktiv teknologi som har evnen til å bryte ned kjente rammeverk og fremtvinge nye former.
BitTorrent gjør det mulig for mange brukere å laste ned de samme filene uten at det sinker farten for andre. Dette fungerer ved at alle som laster ned materiale også laster opp deler av fila de deler med andre, så hvert medlem av ”fil-gruppa” bidrar til distribusjonen av innholdet. Hovedmålet til BitTorrent er å effektivt distribuere data til en stor gruppe nedlastere ved å tvinge dem til å bidra i prosessen. Protokollen deler den aktuelle fila opp i ”blokker”, som vanligvis er på en kvart megabyte (250 KB). En liste over blokkene i fila, samt informasjon om ”tracker’en” (sporingstjeneren som kobler alle klientene til hverandre) lages i en .torrent-fil, som da kan distribueres på forskjellige vis.
De ulike filene lastes ned fra kilder oppgitt av ”tracker’en”. Mens de lastes ned, lastes de også opp til andre kilder. Klienten bruker all båndbredde den har tilgjengelig, og fordi den laster opp filer samtidig som den laster ned, bidrar hver klient til distribusjon av filene.
En klient får ikke nødvendigvis begynnelsen av fila først når han/hun begynner å laste ned. Til å begynne med sendes tilfeldige biter av fila til klientene, før brukerne kobles til hverandre og utveksler de forskjellige delene. Når mange nok brukere er koblet til hverandre, vil alle til slutt få tak i hele fila. Dette systemet får hastigheten på opp- og nedlastinga til å øke med antall brukere, i motsetning til tradisjonelle metoder der det går mye tregere når alle laster ned fra samme kilde.
For at en opplastning skal starte, må noen ha tilgang til kildefila. Disse kalles ”seedere” (”seed”=frø). Hvis det ikke er noen ”seedere” igjen kan ikke klientene få tilgang til hele fila, med mindre de sitter med alle de forskjellige komponentene.
BitTorrent-publisering kan spare ressurser for en innholdsleverandør som f.eks. NRK, bl.a. fordi det hadde spart NRK for store båndbredde-kostnader. NRK kan ved hjelp av BitTorrent vise programmer i meget høy kvalitet uten at det går ut over serverne deres, og alle som laster ned bidrar naturlig nok med å laste opp til andre.
