Servidor de so: diferència entre les revisions

De la Viquipèdia, l'enciclopèdia lliure
Contingut suprimit Contingut afegit
Línia 65: Línia 65:
== Enllaços externs ==
== Enllaços externs ==
* [http://www.ukuug.org/events/linux2003/papers/TIwai/soundsystems/index.html Sound Systems on Linux: From the Past To the Future] {{en}}
* [http://www.ukuug.org/events/linux2003/papers/TIwai/soundsystems/index.html Sound Systems on Linux: From the Past To the Future] {{en}}
* [http://developer.apple.com/audio/overview.html Introducció a Core Audio] {{en}}
* [http://developer.apple.com/audio/overview.html Core Audio Overview] {{en}}
* [http://www.osnews.com/story/6720/Introduction_to_Linux_Audio Introduction to Linux Audio] {{en}}
* [http://linux-sound.org/ Linux-sound.org] {{en}}
* [http://www.linux.com/articles/113775 An introduction to Linux sound systems and APIs] {{en}}
* [http://www.linux.com/feature/113843 Sound in GNU/Linux] {{en}}
* [http://www.linuxjournal.com/article/10162 State of the Art: Linux Audio 2008 (Linux Journal)] {{en}}
* [http://www.ukuug.org/events/linux2003/papers/TIwai/soundsystems/index.html Sound Systems on Linux: From the past to the future] {{en}}
* [http://www.nch.com.au/streaming/index.html Web oficial de Broadware Streaming Audio Server] {{en}}
* [http://www.nch.com.au/streaming/index.html Web oficial de Broadware Streaming Audio Server] {{en}}
* [http://www.flumotion.net/ Web oficial de Flumotion] {{en}}
* [http://www.flumotion.net/ Web oficial de Flumotion] {{en}}

Revisió del 20:37, 22 des 2008

Un servidor de so és un programari que s'encarrega de la gestió de l'ús i accés als dispositius d'àudio, habitualment, les tarjetes de so. Normalment s'executen com un procés de segon pla, com a dimoni de sistema.

El mateix terme pot aplicar-se també per referir-se a un servidor dedicat a l'streaming d'àudio, és a dir, l'emissió en temps real d'un flux de dades d'àudio a través d'Internet o d'una xarxa local.


Servidor de so d'un sistema operatiu

Capes de funcionament per a un servidor de so

En un sistema operatiu obert de la família GNU/Linux, o sistemes basats en UNIX, la tasca principal d'un servidor de so és realitzar la mescla de diferents fluxos de dades i enviar una única sortida unificada al dispositiu de sortida d'àudio del sistema. Aquesta mescla es farà habitualment per software, o be per hardware si es disposa d'una targeta de so avançada que estigui suportada.

Motivació

Els servidors de so van aparèixer donats els problemes que hi havien amb l'antic sistema de so OSS (Open Soud System). Aquest és massa bàsic i només és capaç de rebre un sol flux de dades i reproduir-ho a la sortida de la targeta de so. Només alguns models eren capaços de reproduir més d'un flux de dades a la vegada. Amb aquesta limitació, es donava un problema comú, si un programa enviava un flux de dades de so mentre s'estava reproduint un altre, no s'escoltaria, i això suposava un problema per a l'usuari comú d'un sistema d'escriptori.

Molts d'aquests problemes, es solien evitar de formes poc eficients. Alguns programes esperaven a trobar el dispositiu d'àudio no bloquejat, per poder fer-ho servir. Altres, prèviament realitzaven una comprovació d'estat, i si no el trobaven lliure, desactivaven les funcionalitats de so per evitar un possible penjament del programa.

Els servidors d'àudio s'executen com a dimoni de sistema treballant en segon pla. Reben crides de programes i diferents fluxos de so, els mesclen, i envien la sortida al dispositiu d'àudio a través del mòdul de so que es faci servir. En l'actualitat, s'aprofiten les característiques avançades que proporciona ALSA, la qual cosa ha contribuït a reduir la quantitat de problemes de les distribucions de GNU/Linux relacionats amb el so, doncs des de la versió 2.6 del kernel ja s'ha integrat com a part d'aquest.

Diversificació i problemes

Actualment, existeixen diversos servidors de so, alguns es centren en donar molt baixa latència, i d'altres, en oferir característiques generalistes per a sistemes d'escriptori i el millor suport possible per a tot tipus d'aplicacions. Aquesta varietat, ha donat lloc a algunes posicions critiques que defensen que és necessària una estandardització per a una API única o centrar esforços en un únic servidor de so.

Amb la diversificació de servidors, una persona pot triar quina alternativa fer servir, però els programadors han d'afegir mes treball i mes línies de codi al seu programari per que sigui compatible amb els diferents servidors disponibles.

Els programes van haver de deixar d'enviar els sons directament al dispositiu de so per fer-ho al servidor de so. Si aquests no estan preparats, o envien directament un flux de dades directament al dispositiu d'àudio, és possible que es trobin bloquejat aquest dispositiu i no el puguin fer servir. En alguns casos, existeixen mecanismes per forçar que el dispositiu de sortida de so que farà servir un programari durant la seva execució serà el servidor d'àudio que s'estigui fent servir.

Servidor de so per fer streaming

Un servidor d'streaming de so és un programari dedicat a gestionar les connexions d'usuaris a un mateix flux de dades reproduint les mostres a temps real sense la necessitat de copiar el fitxer d'àudio sencer al sistema receptor alleugerint el temps de transferència d'un fitxer d'àudio a través d'una xarxa local o Internet.

Segons el programari, podrà treballar en primer pla, o bé, com a dimoni de sistema o servei.

Servidors de so

Servidor d'àudio de sistema

ESD

ESD (Enlightened Sound Daemon o EsounD) era el servidor de per a escriptoris Enlightenment, després GNOME va adoptar aquest per fer-ho el seu servidor de so estàndard també. Suporta full duplex, i és transparent en xarxa. Proporciona les capacitats de mescla i multiplexació fonamentals per a la reproducció i gravació de fluxos d'àudio PCM. Els fluxos s'escriuen i es llegeixen com a sockets de Unix. És transparent en xarxa, capaç de treballar sobre xarxes i enviar un flux a un servidor ESD localitzat en un altre sistema d'una xarxa.

aRts

aRts (analog Real time synthesizer) és una simulació per programari d'un sintetitzador analògic a temps real. Un dels seus components és artsd, el demoni que realitza mescles de diferents fonts d'àudio a temps real. Es composa de components bàsics més petits que es poden interconnectar amb cables, un model inspirat en els sintetitzadors analògics modulars dels anys 70. Es va utilitzar com a peça fonamental de KDE, essent el seu servidor de so a les versions 2 i 3. Alguns comentaris suggereixen que les rutines de processat donen una millor qualitat de so que ESD, però fent servir una latència superior. Incorpora algunes funcions més avançades que ESD, pot insertar efectes funcionant com a un mòdul més. La implementació d'aquests es basa en objectes compartits que es carreguen dinàmicament al servidor quan es fa ús d'ells. Suporta full duplex i és transparent en xarxa. A partir de la versió 4 de KDE es fa servir la plataforma multimèdia Phonon, la qual s'espera que substitueixi definitivament aRts.

PulseAudio

PulseAudio (anteriorment PolypAudio) està pensat com a substitut de ESD i va ser el servidor de so per omissió a Fedora Core 8 i Ubuntu 8.04. És multiplataforma, funcionant en sistemes compatibles POSIX així com en sistemes Windows. El seu funcionament es basa en redirigir tots els fluxos d'àudio a través d'ell, incloent aquells en els que el programa accedeix directament al dispositiu físic de so (com les antigues aplicacions OSS).

Proporciona adaptadors per a les aplicacions que fant servir altres servidors de so, com aRts o ESD. En una situació típica d'entorn GNU/Linux, es configura ALSA per fer servir un dispositiu virtual proporcionat per PulseAudio. Les aplicacions que farien servir ALSA directament, enviaran el so a PulseAudio, que farà servir ALSA per accedir al dispositiu fisic. També proporciona una API nativa pròpia per a que les aplicacions el puguin fer servir directament. En el cas del programari basat en OSS, es proporciona un dispositiu virtual que substitueix a /dev/dsp, el programari funcionarà com si controlés el dispositiu físic, però el dispositiu virtual redirigeix els fluxos a PulseAudio.

JACK

JACK Audio Connection Kit (JACK, jackd o JACKit) és un servidor de so o dimoni que funciona a temps real i compatible amb sistemes POSIX, actualment disponible per a GNU/Linux i MacOSX. Proporciona una connexió de baixa latència entre programari compatible amb aquest i permetre que puguin accedir a connexions síncrones a fluxos de dades d'àudio i MIDI del dispositiu físic de so. L'objectiu de JACK és oferir una API de gran ample de banda i baixa latència, així com una plataforma d'interconnexió d'àudio. El seu funcionament es basa en ports, i cada aplicació connectada a JACK en disposa d'un port per a ella.

RoarAudio

RoarAudio és un servidor de so en desenvolupament, pensat per substituir ESD. L'objectiu principal del projecte es centra en oferir programari per mesclar àudio a temps real per a aplicacions d'streaming TV i ràdio a través d'Internet. Està dissenyat per treballar amb baixes latències, d'uns 10ms habitualment, però capaç d'arribar fins a menys d'1ms. Té suport transparent total de xarxa i suporta formats lliures nativament a més de PCM, com Vorbis, Speex o CELT. Es proporcionen llibreries per als clients que no ho són compatibles nativament, principalment, una llibreria que permet a tot el programari compatible amb ESD fer-ho servir.

Altres

Tant els sistemes d'Apple i Microsoft tenen els seus sistemes propis de so, ambdós propietaris. MacOSX fa ús de Core Audio, una plataforma unificada d'àudio i MIDI capaç de donar servei a aplicacions d'àmbit comercial i nivell professional de baixa latència.

Servidor d'streaming de àudio

Icecast

Icecast és un projecte per realitzar streaming d'àudio mantingut per la fundació Xiph.org. Es pot fer servir per a crear una emissora de ràdio via Internet o per a ús privat entre d'altres aplicacions. És molt versàtil en quant a formats donat que es poden afegir de manera relativament senzilla i té suport natiu d'estàndards oberts per a comunicacions. El terme també es refereix específicament al programa servidor que forma part del projecte. En les seves últimes versions, Icecast suporta fluxos de la família Ogg com Vorbis, Speex, FLAC, Theora així com MP3 i AAC. És compatible amb SHOUTcast de Nullsoft.

SHOUTcast

SHOUTcast és una tecnologia de streaming de so gratuïta, desenvolupada per Nullsoft. SHOUTcast fa servir la codificació MP3 o AAC de contingut de so i http com a protocol (també es pot fer servir multicast) per a transmetre ràdio a través d'Internet.

Altres

El mercat disposa de diferents alternatives comercials per a diferents aplicacions, suportant només àudio, o be formant part d'una plataforma d'streaming multimèdia. Alguns exemples són BroadWare Streaming Audio Server o Flumotion.

Vegeu també

Enllaços externs