Kirjoittaja Aihe: Äänet pöytäkoneelta palvelinkoneeseen ja toisinpäin [RATKAISTU]  (Luettu 3080 kertaa)

eGetin

  • Käyttäjä
  • Viestejä: 1093
  • Milloin mitäkin
    • Profiili
Olisi tarvetta tehdä nyt sellainen ratkaisu jolla kykenisin siirtämään lähiverkon kautta äänet pöytäkoneesta servukoneeseen. Pulseaudiolla pitäisi tähän periaatteessa kyetä (ja JACK varmasti taipuu jos jaksaisi tunkata riittävästi) mutta vielä en ole toimivaa tapaa tähän löytänyt johtuen löytämieni ohjeiden vanhuudesta.

Miten siis onnistuisi putkittaa pöytäkoneen 12.04 Ubuntusta äänet palvelin-/mediakoneen 12.04 Ubuntuun (molemmissa Gnome Shellit pyörimässä)? Mahtaako tällöin onnistua myös pikainen vaihtaminen esim. tuosta etä-äänipalvelimesta paikalliseen Pulseaudio-palvelimeen jotta voisi siirtää äänet kuulokkeisiin?

Tarkoituksenani olisi siis keskittää kämpässä media yhteen koneeseen joka on kaiuttimien ja television vieressä pönöttämässä. Tällöin ei tarvitsisi aina lyödä kuulokkeita päähän kun haluaisi katsoa pikaisesti Youtube-videon eikä tarvitsisi hypätä toisen koneen ääreen mikäli muidenkin täytyisi kuulla jotain.

EDIT: Sain nyt äänet siirtymään pöytäkoneesta palvelinkoneeseen. Kokeilin kuitenkin vääntää asetukset päinvastaiseksi että äänet siirtyisivät mediapc:stä pöytäkoneeseen (voisi olla näppärä välillä esim. yöllä jolloin saisi äänet kuulokkeisiin) mutta mitään ei tapahdu. Pöytäkoneessa siis paprefs ei selkeästi saa yhteyttä paikalliseen Pulseaudio-palvelimeen vaan setti vetää oletusasetuksilla (jotka mahdollistavat etäpalvelimienkin käytön ilmeisesti?). Esimerkiksi tuota yhdistettyä virtuaalikorttia ei tupsahda (ohjaisi siis äänet kaikille äänilaitteille) vaikka siihen painaisi ruksin siinä missä mediapc:ssä tuo tupsahtaa välittömästi listaan lisäksi.
Huomionarvoista on siis myös että pöytäkoneesta löytyy mahdollisuus saada Airplay-vermeet näkymään yhtälailla. Toimivuutta on paha testata kuitenkaan.

Eli pavucontrollilla pistät clientistä ekasta välilehdestä verkkoäänilaitteet näkyviksi ja serveristä samalla härpäkkeellä toisesta välilehdestä verkkopääsy käyttöön ilman todentamista ja sallii muiden lähiverkon koneiden löytää servun äänilaitteet.

Mahtaako onnistua äänten ohjaus molempiin suuntiin? Eli saisi ohjattua servukoneen softilta äänet niin ulkoisista kaiuttimista kuin lähiverkon kautta pöytäkoneen kuulokkeista ja pöytäkoneen ohjelmilta äänet kuulokkeisiin sekä servukoneen kaiuttimiin. Ja tämän kaiken vielä yhtäaikaisesti niin olisi juuri sitä mitä saattaisin tarvita :)

EDIT2: No hyvinpä sujuu ;D Flash menee rikki jos äänet pistää etänä toiseen koneeseen. Ei millään jaksaisi sen kanssa ruveta tunkkaamaan :'(
« Viimeksi muokattu: 19.01.13 - klo:13.13 kirjoittanut eGetin »
Pöytäkone: Intel i7 920 | Asus P6X58D Premium | 12Gb DDR3 1600MHz | Asus Radeon HD 6950 1Gb | 60GB OCZ Vertex 2 SSD + 2TB WD Caviar Green + Samsung 830 120GB
HTPC: Intel C2D E4400 | Asus P5B | 4Gb DDR2 800MHz | Asus Geforce GT210 | 500GB WD Caviar GP
Kannettava: Asus Eee PC 1225B

nm

  • Käyttäjä
  • Viestejä: 16429
    • Profiili
Vs: Äänet pöytäkoneelta palvelinkoneeseen ja toisinpäin
« Vastaus #1 : 15.01.13 - klo:20.34 »
Olen itse todennut luotettavimmaksi ratkaisuksi toisen koneen PulseAudio-palvelimen käytön suoraan etänä, ilman uudelleenohjausta paikallisen palvelimen kautta. Palvelinkoneella tehdään periaatteessa samat asetukset kuin äänipalvelinten välisessä streamauksessa, eli esimerkiksi lisätään tiedostoon /etc/pulse/default.pa rivi:

Koodia: [Valitse]
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/24 auth-anonymous=1
Tiedostoa voi muokata komennolla gksudo gedit /etc/pulse/default.pa

Esimerkissä 192.168.1.0/24 sallii yhteydet IP-osoitteista 192.168.1.1 - 192.168.1.255. Asetus pitää tehdä oman lähiverkon osoiteavaruuden mukaan. Kokeilua varten kaikki lähdeosoitteet voi sallia asetuksella 0.0.0.0/0. Tiedoston tallentamisen jälkeen äänipalvelin pitää käynnistää uudelleen esimerkiksi kirjautumalla ulos ja takaisin sisään.


Asiakaspuolella riittää, että palvelimen sijainti on asetettu oikein. Minulla on /etc/pulse/client.conf-tiedostossa rivi:

Koodia: [Valitse]
default-server = 192.168.1.20
Tässä 192.168.1.20 on palvelimen kiinteä IP-osoite. Palvelimen nimi käy myös, jos lähiverkossa on nimipalvelin.


Kun teet nämä asetukset ja käynnistät työpöydän uudelleen, kaikki ohjelmat toistavat äänet etäkoneen PulseAudion kautta. Myös Ubuntun ääniasetustyökalu ohjaa vain etäkoneen äänilaitteita.

Tarvittaessa äänipalvelinta voi vaihtaa lennossa pax11publish-ohjelmalla:
pax11publish -e -S palvelimen_nimi_tai_ip

Yksittäisiä ohjelmia voi myös ajaa tietyn äänipalvelimen kautta PULSE_SERVER-ympäristömuuttujan avulla:
PULSE_SERVER=192.168.1.20 vlc


Näillä virityksillä äänen siirtäminen 100 Mbps Ethernetin yli on toiminut minulla pomminvarmasti ja katkomatta kaikissa ohjelmissa.

Tässä vielä pari linkkiä vastaaviin englanninkielisiin ohjeisiin:
https://wiki.archlinux.org/index.php/PulseAudio/Examples#PulseAudio_over_network
http://en.wikibooks.org/wiki/Configuring_Sound_on_Linux/Pulse_Audio/Remote_server
« Viimeksi muokattu: 15.01.13 - klo:20.39 kirjoittanut nm »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Äänet pöytäkoneelta palvelinkoneeseen ja toisinpäin
« Vastaus #2 : 16.01.13 - klo:17.22 »
Kiva tuli ohjeet, jotka voisi toimia Ubuntu Server Editionillekin. Pitää kokeilla itsekin paremmalla ajalla. Ohjeethan on lyhyet ja nopeat, mutta pitää vielä asennella Pulseaudio ja katsoa myös MPD toimintaan. On pitänyt jo jonkin aikaa kokeilla, mutta viimeksi oli ongelmana juurikin tuo ohjeiden epäajantasaisuus ja pieni epäselkeys.
« Viimeksi muokattu: 16.01.13 - klo:17.24 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

eGetin

  • Käyttäjä
  • Viestejä: 1093
  • Milloin mitäkin
    • Profiili
Vs: Äänet pöytäkoneelta palvelinkoneeseen ja toisinpäin
« Vastaus #3 : 19.01.13 - klo:13.13 »
Loistavaa, näillä ohjeilla homma lähti rokkaamaan loistavasti. Kiitoksia erittäin paljon, näitä voisi ehkä laittaa johonkin päin wikiä näytille että ihmiset saavat jatkossakin homman toimimaan kunnolla.

E: pax11publish ei ainakaan itselläni toimi 12.04 Ubuntuilla (ei tee mitään). Ilmeisesti vaatii aina uloskirjautumisen että muutos astuu voimaan?
« Viimeksi muokattu: 19.01.13 - klo:13.29 kirjoittanut eGetin »
Pöytäkone: Intel i7 920 | Asus P6X58D Premium | 12Gb DDR3 1600MHz | Asus Radeon HD 6950 1Gb | 60GB OCZ Vertex 2 SSD + 2TB WD Caviar Green + Samsung 830 120GB
HTPC: Intel C2D E4400 | Asus P5B | 4Gb DDR2 800MHz | Asus Geforce GT210 | 500GB WD Caviar GP
Kannettava: Asus Eee PC 1225B

nm

  • Käyttäjä
  • Viestejä: 16429
    • Profiili
Vs: Äänet pöytäkoneelta palvelinkoneeseen ja toisinpäin
« Vastaus #4 : 19.01.13 - klo:16.59 »
Loistavaa, näillä ohjeilla homma lähti rokkaamaan loistavasti. Kiitoksia erittäin paljon, näitä voisi ehkä laittaa johonkin päin wikiä näytille että ihmiset saavat jatkossakin homman toimimaan kunnolla.

Saa kopioida vapaasti.

E: pax11publish ei ainakaan itselläni toimi 12.04 Ubuntuilla (ei tee mitään). Ilmeisesti vaatii aina uloskirjautumisen että muutos astuu voimaan?

Täällä toimii kyllä 12.04:n Unity 2D -työpöydällä ihan lennossa. Vaatii tietenkin äänilaitteita käyttävien ohjelmien uudelleenkäynnistämisen. Jos esimerkiksi vaihdan äänipalvelimeksi koneen tai osoitteen, jota ei ole olemassa (pax11publish -e -S xyz), Ubuntun ääniasetusikkuna ei näytä enää mitään äänilaitteita. Sitten kun taas kohdistan koneeseen, jossa on äänipalvelin, siellä olevat laitteet näkyvät.

Toimiko ohjelmien käynnistäminen päätteessä, PULSE_SERVER-muuttujan kautta asetetulla osoitteella?

eGetin

  • Käyttäjä
  • Viestejä: 1093
  • Milloin mitäkin
    • Profiili
Jesh, toimii tuo siis kuitenkin. Tuo PULSE_SERVER-muuttuja on kätevä, se ajaa käytännössä tarpeeni saada leffojen äänet yöllä servukoneesta toisen koneen kuulokkeisiin (servukone on töllön takana kun taasen pöytäkone on huoneen toisella puolella katselupaikan vieressä).

Loistavaa, tämä on kyllä sellainen killer-ominaisuus ettei pahemmin tee mieli Windowsin puolelle vääntäytyä pöytäkoneellakaan jos ei ole ihan pakko.
Pöytäkone: Intel i7 920 | Asus P6X58D Premium | 12Gb DDR3 1600MHz | Asus Radeon HD 6950 1Gb | 60GB OCZ Vertex 2 SSD + 2TB WD Caviar Green + Samsung 830 120GB
HTPC: Intel C2D E4400 | Asus P5B | 4Gb DDR2 800MHz | Asus Geforce GT210 | 500GB WD Caviar GP
Kannettava: Asus Eee PC 1225B