forked from ElvishArtisan/GlassCoder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathglasscoder-ipc.xml
165 lines (156 loc) · 5.76 KB
/
glasscoder-ipc.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<?xml version="1.0" encoding="ISO-8859-1"?>
<refentry id="stdin" xmlns="http://docbook.org/ns/docbook" version="5.0">
<!--
Header
-->
<refmeta>
<refentrytitle>glasscoder-ipc</refentrytitle>
<manvolnum>7</manvolnum>
<refmiscinfo class='source'>October 2019</refmiscinfo>
<refmiscinfo class='manual'>Linux Audio Manual</refmiscinfo>
</refmeta>
<refnamediv>
<refname>glasscoder-ipc</refname>
<refpurpose>IPC methods for the GlassCoder stream encoder</refpurpose>
</refnamediv>
<info>
<author>
<personname>
<firstname>Fred</firstname>
<surname>Gleason</surname>
<email>fredg@paravelsystems.com</email>
</personname>
<contrib>Application Author</contrib>
</author>
</info>
<!--
Body
-->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>glasscoder</command>
<arg choice='opt'><replaceable>OPTIONS</replaceable></arg>
<sbr/>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'><title>Description</title>
<para>
<command>glasscoder</command><manvolnum>1</manvolnum> 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
<command>glasscoder</command><manvolnum>1</manvolnum> man page.
</para>
<para>
A running <command>glasscoder</command><manvolnum>1</manvolnum>
instance can be monitored and controlled by means of two different IPC
methods: its standard input/output streams and HTTP calls.
</para>
</refsect1>
<refsect1 id='stdoout-control'><title>Monitoring via Standard Output</title>
<para>
<command>glasscoder</command><manvolnum>1</manvolnum> 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
<option>--errors-to</option> and <option>--meter-data</option> options.
</para>
<para>
When <userinput>--errors-to=STDOUT</userinput> is specified,
<command>glasscoder</command><manvolnum>1</manvolnum> will output
error messages on standard output in the following machine-readable
format:
</para>
<para>
<synopsis>
ER <arg><replaceable>priority</replaceable></arg> <arg><replaceable>msg</replaceable></arg>
</synopsis>
</para>
<para>
where <arg><replaceable>priority</replaceable></arg> is an
integer the indicates the priority level of the error as defined by
the <command>syslog</command><manvolnum>3</manvolnum> interface and
<arg><replaceable>msg</replaceable></arg> is a text
string describing the error. Each message is terminated by a newline
character.
</para>
<para>
When <userinput>--meter-data</userinput> is specified,
<command>glasscoder</command><manvolnum>1</manvolnum> will output
realtime audio level information suitable for being rendered as an
audio meter display in the following format:
</para>
<para>
<synopsis>
ME <arg><replaceable>left-lvl</replaceable><replaceable>right-lvl</replaceable></arg>
</synopsis>
</para>
<para>
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.
</para>
</refsect1>
<refsect1 id='stdin-control'><title>Control via Standard Input</title>
<para>
<command>glasscoder</command><manvolnum>1</manvolnum> supports the
following command, sent via standard input:
</para>
<para>
<synopsis>
MD <arg><replaceable>text</replaceable></arg>
</synopsis>
</para>
<para>
Send the metadata
<arg choice='opt'><replaceable>text</replaceable></arg> to the stream.
The command should be terminated by newline.
</para>
</refsect1>
<refsect1 id='http-control'><title>Control via HTTP</title>
<para>
If the <option>--metadata-port=<replaceable>port</replaceable></option>
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 <command>glasscoder</command><manvolnum>1</manvolnum> man page.
</para>
</refsect1>
<refsect1 id='http-control'><title>Proxy Connections</title>
<para>
It is possible to implement proxy connectors for
<command>glasscoder</command><manvolnum>1</manvolnum>'s IceStreamer server
through use of the <option>--server-pipe</option> 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 <userinput>SCM_RIGHTS</userinput> message type. See the
<command>unix</command><manvolnum>7</manvolnum> man page for more
information. A fully worked-out example is also available in the
GlassCoder source package in the 'src/tests/' subdirectory.
</para>
</refsect1>
<refsect1 id='author'><title>Author</title>
<para>
Fred Gleason <fredg@paravelsystems.com>
</para>
</refsect1>
<refsect1 id='see_also'><title>See Also</title>
<para>
<citerefentry>
<refentrytitle>glasscoder</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>cmsg</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>sendmsg</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>unix</refentrytitle><manvolnum>7</manvolnum>
</citerefentry>
</para>
</refsect1>
</refentry>