GLASSCODER-IPC(7)

πŸ’– GLASSCODER-IPC πŸ’–

okay bestie, welcome to the glasscoder-ipc manual page β€” this is the Linux Audio Manual babe, and it's all about the IPC methods for the GlassCoder stream encoder. yes. IPC. inter-process communication. we're talking to a running encoder and it's talking back. iconic behavior fr fr πŸŽ€


✨ SYNOPSIS ✨

glasscoder [OPTIONS]

πŸ¦‹ DESCRIPTION πŸ¦‹

so glasscoder(1) is this audio encoder that can generate live streams using a whole bunch of formats, and then yeet them off to an Icecast or Shoutcast audio streaming server, or post them as HTTP Live Streams [HLS]. if you wanna know more about literally everything it can do, go read the glasscoder(1) man page, she's the main character and this one is her lil sidekick πŸ’…

now here's the tea: a running glasscoder(1) instance can be monitored AND controlled with two different IPC methods:

  • its standard input/output streams
  • HTTP calls

that's it. two doors. pick your vibe. πŸšͺ✨


πŸ‘‘ MONITORING VIA STANDARD OUTPUT πŸ‘‘

glasscoder(1) can spill realtime info about what it's currently doing through its standard output and/or error streams. where that info shows up and what format it's in? that's all decided by the --errors-to and --meter-data options. you're in control, periodt.

🚨 error messages

when you pass --errors-to=STDOUT, glasscoder(1) will output error messages on standard output in this machine-readable format, no cap:

ER  [priority]  [msg]

where [priority] is an integer that tells you the priority level of the error, as defined by the syslog(3) interface, and [msg] is a text string describing the error. every single message is terminated by a newline character. every one. 🫢

🎚️ meter data

when --meter-data is specified, glasscoder(1) will output realtime audio level info β€” the kind you'd render into an audio meter display β€” in this format:

ME  [left-lvlright-lvl]

where each argument is the current audio level of the corresponding channel, in hexidecimal, referenced to 0 dBFS. and yep, each message is terminated by a newline character too. consistency slay. ✨


πŸŽ€ CONTROL VIA STANDARD INPUT πŸŽ€

glasscoder(1) supports this one command, sent via standard input:

MD  [text]

send the metadata [text] to the stream. the command should be terminated by a newline. that's the whole thing bestie, short and sweet πŸ“


🌈 CONTROL VIA HTTP 🌈

if you give the --metadata-port=port option a non-zero value, you can send metadata updates to the stream with HTTP calls. for the deets, go peek at the METADATA section of the glasscoder(1) man page. iykyk πŸ’œ


🧚 PROXY CONNECTIONS 🧚

not me telling you that you can implement proxy connectors for glasscoder(1)'s IceStreamer server using the --server-pipe command switch?? πŸ”₯

this switch will create a UNIX socket, and you can use it to pipe in open file descriptors for player connections by means of ancilliary socket messages with the SCM_RIGHTS message type. go read the unix(7) man page if you want the full lore. 🌸

there's also a fully worked-out example chillin' in the GlassCoder source package, in the 'src/tests/' subdirectory. go look, it's giving tutorial energy πŸ’…


πŸ’« AUTHOR πŸ’«

Fred Gleason <fredg@paravelsystems.com>


⭐ SEE ALSO ⭐


πŸ™ˆ AUTHOR πŸ™ˆ

Fred Gleason <fredg@paravelsystems.com>

  • Application Author

okay that's the whole page bestie, you ate it up 🫢 this was the GLASSCODER-IPC(7) page from the Linux Audio Manual, dated October 2019, and this particular copy is rockin' the 07/24/2026 date. go forth and talk to your encoder. mwah πŸ’–πŸŽ€βœ¨

πŸ“¦ where this page comes from