glasscoder-ipc — IPC methods for the GlassCoder stream encoder
glasscoder(1) is an audio encoder that is capable of generating live streams using a variety of formats and sending them to an Icecast or Shoutcast audio streaming server or posting them as HTTP Live Streams [HLS]. For more information regarding its overall capabilities, see the glasscoder(1) man page.
A running glasscoder(1) instance can be monitored and controlled by means of two different IPC methods: its standard input/output streams and HTTP calls.
glasscoder(1) can output
realtime information about current operating state via its standard
output and/or error streams. The location and format in which this
information is generated is controlled by means of the
--errors-to
and --meter-data
options.
When --errors-to=STDOUT
is specified,
glasscoder(1) will output
error messages on standard output in the following machine-readable
format:
ER [priority
] [msg
]
where [priority
] is an
integer the indicates the priority level of the error as defined by
the syslog(3) interface and
[msg
] is a text
string describing the error. Each message is terminated by a newline
character.
When --meter-data
is specified,
glasscoder(1) will output
realtime audio level information suitable for being rendered as an
audio meter display in the following format:
ME [left-lvl
right-lvl
]
where each argument is the current audio level of the corresponding channel in hexidecimal, referenced to 0 dBFS. Each message is terminated by a newline character.
glasscoder(1) supports the following command, sent via standard input:
MD [text
]
Send the metadata
[text
] to the stream.
The command should be terminated by newline.
If the --metadata-port=
option is given a non-zero value, metadata updates can be sent to the
stream by means of HTTP calls. For details, see the METADATA section of
the glasscoder(1) man page.
port
It is possible to implement proxy connectors for
glasscoder(1)'s IceStreamer server
through use of the --server-pipe
command switch. This
switch will create a UNIX socket which can be used to pipe in open
descriptors for player connections by means of ancilliary socket messages
with the SCM_RIGHTS
message type. See the
unix(7) man page for more
information. A fully worked-out example is also available in the
GlassCoder source package in the 'src/tests/' subdirectory.