Cuprins:
Video: Redați aceeași muzică în mai multe camere: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Buna tuturor, Nu știu despre tine, dar îmi place să am aceeași muzică în tot apartamentul meu fără să dau sunetul prea tare. Așadar, după un pic de cercetări despre această problemă, am decis să construiesc mai multe difuzoare conectate prin Wi-Fi la același server de muzică pentru a reda aceeași muzică simultan în mai multe camere și în special în baie.
Sistemul se bazează pe tehnologia GStreamer, care este baza unor software-uri minunate, cum ar fi VLC și pe difuzoare cu capacitate wifi folosind un Raspberry Pi.
Pasul 1: Construirea unui difuzor pentru baie
Lista de materiale:
- un difuzor rezistent la baie
- un amplificator de 2W (funcționează pe 12v)
- un Raspberry Pi Zero (lucrează pe 5v)
- a Pimoroni Phat DAC
- un card SD
- un buton ON / OFF
- un adaptor de alimentare de 12V + o mufă compatibilă
- o descreștere DC / DC (12v-> 5v)
- o cutie electrică
- niște cabluri
Construcția este destul de simplă.
Pe partea electronică, urmați această diagramă ASCII.
- Amplificator buton pornire / oprire priză DC
- Buton ON / OFF DC / DC redus Raspberry Pi
- Difuzor amplificator DAC Raspberry Pi Phat
Pe partea mecanică, tăiați toate găurile necesare în cutia electrică, puneți totul în interior și atât.
Folosind această tehnică, puteți crea tot felul de difuzoare pe care le doriți.
Pasul 2: partea software
Toate aspectele software se bazează pe cadrul multimedia open source, GStreamer. Am folosit doar Linux, dar există pe sisteme de operare diferite, așa că îmi imaginez că toate pot fi adaptate pentru alte sisteme de operare.
Pentru început, trebuie să instalați Raspbian Lite pe Pi, PHAT DAC și GStreamer 1.0 cu pluginurile „bune”. Pe computerul folosit ca server de muzică, aveți nevoie de același GStreamer. Nu voi detalia aceste părți, deoarece alții au făcut acest lucru mai bine decât mine. Ultimul lucru necesar este că Pi și serverul de muzică trebuie să fie conectate la aceeași rețea prin cablu sau wifi.
Pentru a testa dacă GStreamer este instalat corect, puteți utiliza acele linii de comandă.
Pe difuzor:
$ gst-launch-1.0 udpsrc port = 5000 caps = 'application / x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 1, canale = (int) 1, sarcină utilă = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink
Pe PC:
$ gst-launch-1.0 audiotestsrc! audioconvert! audio / x-raw, format = "(șir) S16BE", aspect = "(șir) intercalat", canale = 1, rata = 44100! rtpL16pay! gazdă udpsink = port RASPBERRYPI_IP = 5000
După ce ați pus adresa IP bună în loc de „RASPBERRYPI_IP”, ar trebui să auziți un sunet sinusoidal pe difuzor. Nu este ceva ce vă va plăcea să auziți mult timp, așa că nu puneți volumul prea tare.
O explicație: PC-ul produce sunetul sinusoidal folosind „audiotestsrc”, „audioconvert! Audio / x-raw, format =” (șir) S16BE”, layout =„ (șir) intercalat”, canale = 1, rate = 44100” convert sunetul în formatul bun înțeles de „rtpL16pay” care creează pachetele audio și în cele din urmă „udpsink” trimite pachetele folosind protocolul UDP. Pe difuzor, este același, dar inversat, „udpsrc” recuperează fluxul audio, „rtpL16depay” scoate pachetele și „audioconvert! Autoaudiosink” convertește sunetul pentru a se potrivi cu formatul plăcii de sunet automate și, desigur, îl redă.
Deci, acum că lucrurile de bază funcționează, este timpul să mergem mai departe. Scopul este de a intercepta sunetul unei aplicații pentru a o trimite prin rețea.
- Creăm o ieșire falsă
$ pactl load-module module-null-sink sink_name = multiHP
- Conectăm o intrare la ieșirea falsă (oprește aplicația selectată (intrare))
$ pacmd list-chiuvete (lista de ieșiri)
$ pacmd list-sink-inputs (lista de intrări)
$ pacmd move-sink-input% input% output (înlocuiți% input și% output cu una din listele corespunzătoare)
- Punem placa de sunet la maxim
$ pactl set-sink-volume 0 100%
- Testăm pe PC modul de recuperare a ieșirii false (recuperarea sunetului)
$ gst-launch-1.0 pulssesrc device = multiHP.monitor! audioconvert! autoaudiosink
Ar trebui să auzi din nou sunetul aplicației pe care ai selectat-o.
Grozav! Acum este timpul să mergeți la ultimele linii de comandă. Iată liniile de comandă în cazul a 2 difuzoare cu sunetul redat și de PC.
Pe fiecare difuzor:
$ gst-launch-1.0 udpsrc port = 5000 caps = 'application / x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 2, sarcină utilă = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink
Pe PC:
$ gst-launch-1.0 pulssesrc device = multiHP.monitor! audioconvert! audio / x-raw, format = "(șir) S16BE", aspect = "(șir) intercalat", canale = 2, rata = 44100! rtpL16pay! tee name = t t. ! coadă! gazdă udpsink =% addrpi1 port = 5000 t. ! coadă! gazdă udpsink =% addrpi2 port = 5000 t. ! coadă! audioconvert! autoaudiosink
Pasul 3: Concluzie
Acest instructable este doar primul pas către un proiect complet. A fost doar pentru a explica principiul. Acum puteți automatiza făcând un script pe boot-ul Raspberry Pi și pe PC. Puteți adapta comanda GStreamer în funcție de nevoile dvs. Personal, mi-am modificat versiunea anterioară (RADIO VECHI BRAND NEW) pentru a o folosi ca difuzor. Există un număr infinit de lucruri de făcut pentru a îmbunătăți acest sistem de sunet cu mai multe camere. În special, toate difuzoarele nu sunt sincronizate, deci aveți unele variații atunci când treceți dintr-o cameră în alta.
Sper că veți încerca să îmbunătățiți acest lucru instructiv.
Nu ezitați să puneți întrebări dacă aveți nevoie de detalii.
Bun jucător!
Recomandat:
Tutorial: Cum Arduino controlează mai multe dispozitive cu aceeași adresă utilizând multiplexorul TCA9548A I2C: 3 pași
Tutorial: Cum Arduino controlează mai multe dispozitive cu aceeași adresă utilizând multiplexorul TCA9548A I2C: Descriere: Modulul multiplexor TCA9548A I2C permite conectarea dispozitivelor cu aceeași adresă I2C (până la 8 aceeași adresă I2C) conectate la un microcontroler. Multiplexorul acționează ca un gatekeeper, transferând comenzile la setul selectat o
Cultivarea mai multor salată în spațiu mai mic sau Cultivarea salatei în spațiu, (mai mult sau mai puțin) .: 10 pași
Cultivarea mai multor salată în spațiu mai mic sau … Cultivarea salată în spațiu, (mai mult sau mai puțin). Nu aș putea fi mai încântat să proiectez pentru producția de culturi spațiale și să postez primul meu Instructable. Pentru a începe, concursul ne-a cerut
Redați muzică cu Arduino !: 5 pași (cu imagini)
Joacă muzică cu Arduino !: În acest instructiv, îți voi arăta cum joc muzică folosind un modul Arduino UNO și un modul SD Card. Vom folosi comunicarea SPI. Să începem
Cum să redați muzică printr-un amplificator de chitară: 4 pași
Cum să cânți muzică printr-un amplificator de chitară: Acesta este un instructiv care îți va arăta cum să cânți muzică printr-un amplificator de chitară
Construirea unui sistem de camere cu cea mai mare distanță: 5 pași
Construirea unui sistem de camere în mare parte la distanță: lucrez pentru o companie de construcții și căutam o soluție de cameră mobilă. Iată ce am venit și funcționează excelent. Îl putem deplasa ușor și în majoritatea zonelor, banda largă mobilă primește o recepție adecvată pentru a funcționa bine