UPnP med People: Open Source Media Sharing med MediaTomb

Hvis du kjøper en " smart " TV eller DVR disse dager, oddsen er at det vil støtte UPnP for problemfri mediedeling. Dermed enheter som TiVos kan finne hverandre og dele opptak over LAN, og mange Linux-musikk og video-spillere støtter tilkobling til UPnP aksjer også. Gi det et øyeblikks tanke, imidlertid, og du vil sannsynligvis spørre deg selv " gjør det trenger en spesialisert enhet, eller kan jeg slå min eksisterende Linux-boksen til en full-blåst UPnP server for min eksisterende innhold " . Vel, gode nyheter: ikke bare kan
deg, men det er ganske smertefritt å gjøre

UPnP står for " Universal Plug and Play, " og omfatter en familie av nettverksprotokoller som PCer og innebygde enheter som set-top-bokser kan bruke til å oppdage hverandre og dele tjenester. Lavnivå deler av stabelen er velkjent territorium: DHCP for nettverkskonfigurasjon, en enkel HTTP-lignende tjeneste oppdagelse protokollen, hendelsesvarsler, og så videre. Media-deling funksjonalitet er teknisk en utvidelse til UPnP kalt UPnP AV, og er en anbefaling av næringen handel gruppen Digital Living Network Alliance (DNLA), som du kanskje har sett i annonser.

UPnP AV definerer " medieservere " og " kontrollpunkter " /" gjengi " som omtrent tilsvarer mestere og klienter i en typisk klient-tjener forhold. En renderer kan
være en dum enhet som en TV-skjerm, men de fleste enheter tilbyr både kontrollpunktet og gjengivelse funksjonalitet. For å gjøre mediene tilgjengelig overalt, må du kjøre en UPnP AV media server pakken på maskinen der innholdet er lagret, og bruke utstyr klienten din (eller programmer) for å koble til det som kontrollpunkter.

For Linux-brukere, er det flere pakker å velge mellom. De varierer i hovedsak om hvorvidt de støtter lyd, video og stillbilder (eller noen undergruppe av tre), hvordan de er administrert, og hvorvidt de kan utføre on-the-fly transcoding. Transkoding er en viktig funksjon fordi mange UPnP kontrollpunkter støtter et fast sett med codecs. Du kan ha din video i WebM og lyd i Vorbis eller FLAC, men noen av UPnP-enheter – si, en hjemmekino receiver – bare støtte H.264 og MP3.

Noen mediesenter programmer kommer med minst delvis UPnP-støtte innebygd. MythTV og XBMC kan både fungere som medieserver og rør ut innhold til UPnP kontrollpunkter, selv om de må kjøre for å gjøre det. Dette er ikke et problem for MythTV fordi UPnP-serveren er en del av back-end prosess, men XBMC er et GUI program som du sannsynligvis ikke ønsker å kjøre dag og natt. På den annen side, er XBMC trivielt å sette opp, mens MythTV krever en betydelig investering.

Enter Tomb

Min favoritt alternativet for øyeblikket er MediaTomb, en GPL-lisensiert pakke som støtte for lyd, video og stillbilder, har fleksibel on-the-fly transcoding støtte, og er lett administreres gjennom et web-basert grensesnitt. Den nyeste utgaven er 0.21.1, som er fra 2010, men det er ikke noen store biter av funksjonalitet mangler, så du bør være godt å gå før det er en betydelig UPnP spesifikasjon oppdatering.

Du kan laste ned kildekode fra prosjektet området, men sjekk for å se om din distribusjon gir en pakke først. Utviklerne levere pakker for Fedora, Debian, Ubuntu, Gentoo, Mandriva, opensuse, og flere andre distribusjoner (enda noen BSD alternativer!), Som skal dekke omtrent alle.



For å sette det opp, først sørge for at UDP port 1900 ikke er blokkert av maskinens brannmur, og at noen porter du angir i konfigurasjonsfilen /etc/mediatomb/config.xml
er gratis. MediaTomb vil gjerne velge en høy nummerert tilgjengelig port (starter med 49 152) for å kjøre på når prosessen er startet, og UPnP tjeneste-oppdagelse mekanisme gjør valget transparent for kontrollpunktene, men du måtte ønske en statisk port for bekvemmelighet. UDP port 1900 er UPnP tjeneste oppdagelse protokollens reservert port.

MediaTomb vil vanligvis kjøre Anmeldelser uten å kreve endringer på sin konfigurasjonsfil, men det er noen innstillinger verdt dobbeltsjekket. For eksempel, som standard programmet bruker SQLite for lagring; Hvis du vil, kan du endre dette til MySQL ved å endre enable = " no "
til " ja "
i MySQL-direktivet. Selvfølgelig vil du da trenger å legge de riktige MySQL bruker og passord legitimasjon til konfigurasjonsfilen å matche. Du må også sette transcoding til " ja "
om noen av dine kunder vil trenge det

Du vil definitivt ønsker å sette ui aktivert = ". Ja "
for å slå på nettadministrasjon front end, men du kan trygt slå den av etter at du har alt konfigurert og kjører til din tilfredshet. Du kan også aktivere eller deaktivere kontoer (for å hindre uautorisert tilgang), men vær klar over at innloggings tilkoblingen ikke er kryptert, slik at passordet data er bare så sikker som nettverket ditt. Til slutt, er det flere konkrete UPnP-enheter som krever spesiell innfall-modus støtte for på hvilke måter de oppfører seg forskjellig fra vanilje protokollen. Disse inkluderer Playstation 3 og flere D-Link-spillere – det finnes dokumenterte linjer i config.xml
for hver; alt du trenger å gjøre er å uncomment dem.

På Air

MediaTomb registre som en tjeneste som kan startes, stoppes eller startes på nytt ved hjelp av standard Linux init system. På Debian-lignende operativsystemer, betyr dette sudo /etc/init.d/mediatomb starte | restart | stopp. Når du har generelle detaljer konfigurasjons på plass, kan du enten omstart eller starte tjenesten, og deretter gå videre til web-grensesnitt.

Det viktigste er at du må fortelle MediaTomb hvor innholdet er. Pass på at du organisere materialet på en praktisk måte – store kataloger med 10.000 elementer i dem er ikke lett bladde, spesielt på maskinvareenheter, og det kan være lurt å sørge for at du skille hjem og arbeidsrelatert materiale (eller noen andre slike semantiske distinksjoner) før du gjør alt < . br> tilgjengelig for nettverket

Du kan få tilgang til web-grensesnitt lettest fra en nettleser på samme maskin som kjører MediaTomb; gå til http: //localhost: 49152 plakater (eller erstatte den aktuelle portnummer hvis du har endret standardinnstillingen i konfigurasjonsfilen). Du kan grave i dokumentasjon og binde UI til en bestemt IP-adresse, slik at det vil være tilgjengelig fra andre maskiner, men dette endrer ikke funksjonaliteten i det hele tatt.

Det du vil se er en to-ruten vindu med et tre-stil nettleser widget på venstre side og en tom plass til høyre. På toppen, kan du klikke for å veksle mellom " Database " og " Filesystem " utsikt. For å legge til filer, enkelt velge filsystem, deretter navigere inn i mappehierarkiet til venstre. Når du kommer til mappen du ønsker å legge til, vil den høyre ruten vise innholdet i mappen

Du kan legge til enkeltfiler ved å klikke på ". + &Quot; ved siden av navnet, eller legge hele katalogen ved å klikke på " + " på toppen av panelet. Knappen ved siden av det viser et pluss omkranset av " resirkulere piler " – klikke på denne i stedet vil fortelle MediaTomb å legge katalogen og å se det for endringene. Du kan stille re-skanneparametrene å skyte på noen inode endringer, eller til periodisk skanne etter medgått tid.

Når du legger til en katalog, vil MediaTomb skanne den og legge alt av metadata den finner til sin interne database. Directory legger er rekursive, så dette kan ta lang tid for et stort bibliotek. Når du klikker tilbake over til Database view, men du kan se fruktene av sitt arbeid: innholdet er katalogisert og organisert, med separate visninger tilgjengelige for artister, album, sjangere og år for lyd og katalog utsikt for bilder og video. De ulike visningene er hva MediaTomb tjener opp til klienter når de kobler en stille for innhold. Derfor kan det være lurt å redigere detaljene knyttet til bestemte elementer å sikre at de vises riktig. Du kan gjøre dette ved å klikke på blyant-og-papir-ikonet ved siden av hvert element i Database visningen.

Extra Credit

På dette punktet, serverer MediaTomb opp innholdet til noen UPnP kontroll poeng eller vises uten inngripen. Hvis du setter dine kataloger til auto-scan, kan du deaktivere UI og aldri bekymre deg om det før du bytter en harddisk. Faktisk er det sannsynligvis en god idé å slå av UI, fordi filsystemet leseren, hvis venstre kjører, ville la alle som har tilgang til serveren ta en topp på hele filstrukturen (selv om det ikke ville la dem se filinnholdet ).

Den neste oppgaven på veien til UPnP mestring er transkoding. config.xml
filen inneholder en < transcoding >
strofe som definerer flere " profil kartlegginger " – instruksjonene for å rapportere visse problematiske filtyper å koble klienter som om de var noe annet, og en konvertering verktøyet til å omkode dem til utgangsformat på fly. UPnP kunder skal kunne se uspillbar innhold, er det bare å gjengi inkompatible formatene som nedtonede oppføringer, men ikke alle er opp til snus, så MediaTomb har å gi noen midlertidige løsninger. UPnP-spesifikasjonen tillater serveren til å rapportere mer enn ett format for hver oppføring, men dumme nok kunder kan
ikke være i stand til å takle mer enn én oppføring per tittel. Dermed konfigurasjonsfilen må inkludere logikk for å alltid liste automatisk transkodet versjon av hver tittel først, slik at mindre dyktige kunder vil se det og være i stand til å spille den tilbake.

Nøyaktig hvordan du setter opp din transcoding innstillinger er selvsagt opp til deg. Hvis du lagrer mediene i et lossless format som FLAC, så du taper ingenting ved å transkode alt on-the-fly til alle kunder. På den annen side, omkoding fra Vorbis til MP3 resulterer i et kvalitetsforringelse på grunn av den dobbelt-lossy-koding problem. Den eneste virkelige problemet er å avgjøre hvordan de skal takle flere kontrollpunktet kunder som har ulike codec evner. Hvis du bare bruker en enkelt klient, har du ingenting å bekymre seg for. MediaTomb er også fleksibel nok til å støtte bare om noen encoder som transcoding hjelpeprogram; for de fleste medier den bruker utmerket VLC

Du har alternativer for LAN-baserte mediedeling:. NFS eller Samba, DAAP, etc. – og selv om UPnP vil la enheter rundt huset tilgang til filene dine, vil det ikke hjelpe deg med andre medie oppgaver som synkronisering av bærbare musikkspillere. Protokollen beste egenskap er den enkle som du kan gjøre innhold tilgjengelig på " smart " enheter over som du ikke har direkte kontroll – som TV og stereoanlegg. Ja, er mangelen på kontroll som kommer med forbruker DNLA produkter beklagelig, men dette er enda en måte hvor Linux og åpen kildekode kan bidra til brobygging.