Az IP valóság hangos szemszögből

Lassan két hónapja ért véget a Budapest Music Expo, ahol hosszú kihagyás után ismét volt standunk. Szeretjük mindig az elegánsabb megoldásokat választani, még akkor is, ha bonyolultabbak. Ezért – egy kicsit a tavaszi hangos nap folytatásaként, és reflektálva az IBC-n látott trendekre – nem az általunk forgalmazott eszközök bemutatására helyeztük a hangsúlyt, hanem a rendszerre, amit össze lehet belőlük rakni.

Egy AES67 rendszert álmodtunk meg. Elég sokszor néztük meg a Yamaha AES67 videóját a YouTube-on, úgy gondoltuk, erre mi is képesek vagyunk. Leültünk a whiteboard elé, kitaláltuk mi mindent szeretnénk az AES67 felhőre akasztani. Első körben leszűkítettük az AES67 kompatibilis protokollok listáját háromra (Dante, Ravenna, Livewire) praktikus okokból, aztán nekiláttunk a munkának. A gyártók és partnerek, akiket megkerestünk az ötlettel, mind örömmel szálltak be a megvalósításba, kaptunk egy csomó ígéretet mindenféle eszközre.

A rendszer logikája elvben igen egyszerű volt: fogjuk az eszközöket, felkötjük őket egy switchre, és pár kattintással bárhonnan bárhova elküldjük a hangot.

A megvalósítás első lépése még könnyedén követte az elvet: felkötöttünk mindent a switchre, az érdekes rész ezután kezdődött. A különféle AoIP protokollok (ahogy ez elvárható) saját világukon belül tökéletesen működnek, a nehézségek a protokollok közötti átjárással kezdődtek. Ezen a ponton érdemes egy kicsit megnézni, mit is mond az AES67 (és mit nem). A szabványban specifikálják, hogy a transport layer-t hogyan kell kezelni.

– A szinkronizáció IEEE-1588-2008 (PTPv2) szerint működjön, és ebből generáljanak az eszközök lokális órajelet.

– A hálózat IP (v4 vagy v6) legyen, unicast vagy multicast (IGMPv2-vel) streamekkel.

– A kódolás 16/24 bit lineáris, 44.1/48/96kHz-en, 1-8 csatornára.

– A csomagok maximum 1440byte hosszúak, 6/12/16/48/192 mintát tartalmaznak.

 

Hiányzik viszont a szabványból a minőség biztosítása (QoS) és a felderítés, a kapcsolatok felépítésének a módja. Utóbbiakra csak ajánlásokat adnak, vagy még azt se:

– Kapcsolatok kezelése: SDP vagy SIP (unicast-hoz).

– Felderítés: ZeroConf vagy SAP.

– Egységes kontroll layerről (pl. Ember+, AMWA NMOS vagy AES70) nem beszélnek.

 

Ebből adódnak a kellemetlenségek, a Dante hálózatok például SAP üzenetek formájában továbbítják az SDP leírókat, a Ravenna hálózatok RTSP üzenetként. A hálózat kezelés (pl. sávszélesség foglalás) és QoS (hogy lehet garantált teljesítményt/minőséget nyújtani QoS switchek nélkül?) esetében is csak ajánlásokat tesznek, DiffServ w/ 3 használata javasolt, ez azonban nem automatikus, nem univerzálisan használt, és implementációja az adott switch gyártójától függ.

A protokollok közti különbségről jó összefoglalást ad ez a táblázat (köszönjük, Anthony!):

A rendszer protokollok összefésüléséhez végül is két dolog kellett. A RAV2SAP szoftver, ami a SAP és RTSP világ közt továbbítja az SDP üzeneteket, és a hálózatok paramétereinek közös halmazát kellett meghatározni (és követni).

– Csak Multicast streamek (flow-k) használata.

– Maximum 8 csatorna /flow.

– A multicast címeknek a 239.69.0.0-239.69.255.255/16 tartományba kell esniük.

– 48kHz/24bit mintavétel.

– 2ms fix késleltetés.

– 1Gbps kapcsolatok.

– Csak egyszeres kapcsolatok (a redundáns kapcsolatok kezelése nem támogatott).

 

A hardverek konfigurálása után elindítottuk a RAV2SAP szoftvert, az SAP ablakban megjelenő (a mi esetünkben főleg Dante) streameket pár kattintással áttettük a RAVENNA oldalra és fordítva.

A Ravenna és Livewire eszközök streamjei innentől kezdve megjelentek a Dante controllerben, és a szokott módon be lehetett választani őket Dante nyelőkre. Ugyanígy a Ravenna és Livewire eszközök webes felületein is megjelentek a Dante források, és meg lehetett őket hallgatni. Pár kivétellel, persze…

Kezdjük a pozitívval: a Ward-Beck annyira komolyan gondolja az AES67 kompatibilitást, hogy a Ravennás eszközei az SAP világba is hirdetik magukat, így a RAV2SAP nélkül is lehet használni őket Dante környezetben! A negatív kivétel a Livewire eszközökkel kapcsolatos, bár látszottak a források a Dante világban, a hangjukat nem tudtuk meghallgatni. Még egy érdekes megfigyelésünk volt: Dante forrást hallgattunk egyszerre egy Dante és egy Ravenna audio monitoron, a Ravenna monitoron kb. egy másodperccel le volt maradva a hang, és ez fordítva is igaz volt. Mivel a multicast, amit mindkét monitoron hallgattunk (amiben az audio csomagok érkeztek) azonos volt mindkét esetben, az egyetlen magyarázat amire gondolni tudunk az, hogy a PTP források különbsége miatt (Dante: PTPv1, Ravenna: PTPv2) volt a késés.

Az AES67 technológia demónk konklúziója vegyes. Az biztos, hogy amíg az AoIP protokollok közti átjáráshoz ennyit kell dolgozni, napi szinten nem szeretnénk ilyen rendszert konfigurálgatni. Ha egy fixen telepített rendszerről beszélünk, ahol nem (vagy nem túl gyakran) változik a konfiguráció, talán már ma is mernénk olyan rendszert tervezni, amiben AES67 a közös nevező. Ha több gyártó lép rá a Ward-Beck féle útra (azaz a vagylagos AES67 javaslatok mindegyikével kompatibilis firmware-eket írnak), és nem csak azért írják rá a termékeikre, hogy AES67 kompatibilis, mert valamelyik kompatiblis jellegű protokollt használják, a macerák el fognak tűnni, és tényleg egyszerű lesz keverni a protokollokat. Ezt az egy-két évet érdemes lesz kivárni.

Források:

https://www.smpte.org/sites/default/files/users/user27446/AES67%20for%20Audio%20Production-Background%20Applications%20and%20Challenges.pdf

http://download.yamaha.com/api/asset/file/?language=en&site=ae.yamaha.com&asset_id=68829

https://doc-0o-8c-docs.googleusercontent.com/docs/securesc/l33e8hki2glda8ter0ajov90jrh0c5q6/mlmev4ithv1lt0e8r5ahddm4hr1n4p7p/1511870400000/08515162358008993679/08919589502891704776/0B9I0nu1MPkm6TlZnc0ZNWlQxVVU?e=download&nonce=d4n5s48nv3bqm&user=08919589502891704776&hash=8onulaoefen2tjre4653sa1e053f0uri

https://www.ravenna-network.com/aes67/rav2sap/

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>