Go-based FM stereo transmitter with RDS, Windows-first and cross-platform
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

2.8KB

aoiprxkit

Standalone Go module for adding professional AoIP receive capabilities step by step.

This package covers the roadmap up to Phase 4 with a Go-native target architecture:

  1. AES67 RX-lite
  2. static SDP loading + optional SAP listener
  3. stream discovery by SAP/SDP session name
  4. live browser metering over HTTP/WebSocket
  5. NMOS IS-04 / IS-05 client scaffolding
  6. SRT WAN ingest via native transport adapter + framed PCM profile

Included components

Core RTP / AES67-lite receiver

  • IPv4 multicast RTP join
  • static config or config derived from SDP
  • L24 decoding
  • small jitter / reorder buffer
  • PCM frame callback
  • runtime counters

SDP support

  • minimal parser for:
    • c=
    • m=audio
    • a=rtpmap
    • a=ptime
  • conversion helper from parsed SDP to receiver config

SAP listener

  • optional listener for SAP announcements
  • default SAP group/port support
  • application/sdp extraction
  • callback with parsed session details

NMOS scaffolding

  • lightweight Query API client
  • lightweight Connection API client
  • helpers for receiver-side staged activation payloads

SRT WAN bridge (reworked)

  • no ffmpeg.exe dependency in the default package path
  • generic stream receiver for framed PCM
  • SRT receiver abstraction with injectable transport opener
  • default build ships a clear stub for the transport layer
  • intended production path: wire a pure-Go SRT transport (for example a gosrt opener) in the target repo

Framed WAN audio profile

The package now assumes a deliberately narrow WAN ingest profile:

  • transport: SRT
  • payload framing: custom framed stream defined in stream_proto.go
  • codec today: PCM S32LE
  • codec reserved for later: Opus

This keeps the stack deterministic and avoids generic container / demux complexity.

Deliberate non-goals

  • no full AES67 compliance claim
  • no PTP discipline
  • no full SAP session cache
  • no bundled gosrt implementation in this zip
  • no ST 2110-30 sender/receiver implementation
  • no NMOS Node/Registry server implementation

Why it is built like this

The goal is not to overbuild a broadcast plant in one step. The goal is to provide a repo-addable module that gives a realistic progression:

  • start with known multicast audio
  • add discovery
  • add control-plane interoperability
  • add WAN ingest without external EXE dependencies as the default design target

Suggested integration order

  1. integrate the core receiver into your existing audio input abstraction
  2. allow config-by-SDP
  3. enable optional SAP auto-discovery
  4. add NMOS registry/query support
  5. wire a native SRT opener in your target repo

Added in this build

  • StreamFinder for exact matching by SDP s= session name
  • LiveMeter for per-channel RMS / Peak / Latest values
  • MeterServer with /, /healthz, /api/meter and /ws/live