1ROC-RECV(1) Roc Toolkit ROC-RECV(1)
2
3
4
6 roc-recv - receive real-time audio
7
9 roc-recv OPTIONS
10
12 Receive real-time audio streams from remote senders and write them to a
13 file or an audio device.
14
15 Options
16 -h, --help
17 Print help and exit
18
19 -V, --version
20 Print version and exit
21
22 -v, --verbose
23 Increase verbosity level (may be used multiple times)
24
25 -o,--output=OUTPUT
26 Output file or device
27
28 -d,--driver=DRIVER
29 Output driver
30
31 -s,--source=PORT
32 Source port triplet (may be used multiple times)
33
34 -r,--repair=PORT
35 Repair port triplet (may be used multiple times)
36
37 --sess-latency=STRING
38 Session target latency, TIME units
39
40 --min-latency=STRING
41 Session minimum latency, TIME units
42
43 --max-latency=STRING
44 Session maximum latency, TIME units
45
46 --io-latency=STRING
47 Playback target latency, TIME units
48
49 --np-timeout=STRING
50 Session no playback timeout, TIME units
51
52 --bp-timeout=STRING
53 Session broken playback timeout, TIME units
54
55 --bp-window=STRING
56 Session breakage detection window, TIME units
57
58 --packet-limit=INT
59 Maximum packet size, in bytes
60
61 --frame-size=INT
62 Internal frame size, number of samples
63
64 --rate=INT
65 Override output sample rate, Hz
66
67 --no-resampling
68 Disable resampling (default=off)
69
70 --resampler-profile=ENUM
71 Resampler profile (possible values="low", "medium", "high" de‐
72 fault=`medium')
73
74 --resampler-interp=INT
75 Resampler sinc table precision
76
77 --resampler-window=INT
78 Number of samples per resampler window
79
80 -1, --oneshot
81 Exit when last connected client disconnects (default=off)
82
83 --poisoning
84 Enable uninitialized memory poisoning (default=off)
85
86 --beeping
87 Enable beeping on packet loss (default=off)
88
89 Output
90 OUTPUT should be file name or device name, for example:
91
92 • - (stdout)
93
94 • file.wav (WAV file)
95
96 • default (default output device)
97
98 • front:CARD=PCH,DEV=0 (ALSA device)
99
100 • alsa_output.pci-0000_00_1f.3.analog-stereo (PulseAudio sink)
101
102 Interpretation of the device name depends on the selected driver.
103
104 If the output is omitted, some default output is selected. If the
105 driver is omitted or it is a device driver, the default output device
106 is seelcted. If the driver is a file driver, the stdout is selected.
107
108 Driver
109 DRIVER defines the type of the output file or device, for example:
110
111 • wav
112
113 • alsa
114
115 • pulseaudio
116
117 If the driver is omitted, some default driver is selected. If the user
118 did specify the output and it is a file with a known extension, the ap‐
119 propriate file driver is selected. Otherwise, the first device driver
120 available on the system is selected.
121
122 Port
123 PORT should be in one of the following forms:
124
125 • protocol::portnum (0.0.0.0 IP address is used)
126
127 • protocol:ipv4addr:portnum
128
129 • protocol:[ipv6addr]:portnum
130
131 For example:
132
133 • rtp+rs8m::10001
134
135 • rtp+rs8m:127.0.0.1:10001
136
137 • rtp+rs8m:[::1]:10001
138
139 If FEC is enabled on sender, a pair of a source and repair ports should
140 be used for communication between sender and receiver. If FEC is dis‐
141 abled, a single source port should be used instead.
142
143 Receiver can listen on multiple source and repair ports of different
144 protocols simultaneously. This allows multiple senders which use dif‐
145 ferent protocols and FEC schemes to connect to a single receiver.
146
147 Supported protocols for source ports:
148
149 • rtp (bare RTP, no FEC scheme)
150
151 • rtp+rs8m (RTP + Reed-Solomon m=8 FEC scheme)
152
153 • rtp+ldpc (RTP + LDPC-Starircase FEC scheme)
154
155 Supported protocols for repair ports:
156
157 • rs8m (Reed-Solomon m=8 FEC scheme)
158
159 • ldpc (LDPC-Starircase FEC scheme)
160
161 Time
162 TIME should have one of the following forms:
163 123ns, 123us, 123ms, 123s, 123m, 123h
164
166 Listen on two ports on all IPv4 interfaces (but not IPv6):
167
168 $ roc-recv -vv -s rtp+rs8m::10001 -r rs8m::10002
169
170 Listen on two ports on all IPv6 interfaces (but not IPv4):
171
172 $ roc-recv -vv -s rtp+rs8m:[::]:10001 -r rs8m:[::]:10002
173
174 Listen on two ports on a particular interface:
175
176 $ roc-recv -vv -s rtp+rs8m:192.168.0.3:10001 -r rs8m:192.168.0.3:10002
177
178 Listen on two Reed-Solomon ports, two LDPC ports, and one bare RTP
179 port:
180
181 $ roc-recv -vv -s rtp+rs8m::10001 -r rs8m::10002 -s rtp+ldpc::10003 -r ldpc::10004 -s rtp::10005
182
183 Listen on two ports on all IPv4 interfaces and on two ports on all IPv6
184 interfaces:
185
186 $ roc-recv -vv -s rtp+rs8m::10001 -r rs8m::10002 -s rtp+rs8m:[::]:10001 -r rs8m:[::]:10002
187
188 Output to the default ALSA device:
189
190 $ roc-recv -vv -s rtp+rs8m::10001 -r rs8m::10002 -d alsa
191
192 Output to a specific PulseAudio device:
193
194 $ roc-recv -vv -s rtp+rs8m::10001 -r rs8m::10002 -d pulseaudio -o <device>
195
196 Output to a file in WAV format:
197
198 $ roc-recv -vv -s rtp+rs8m::10001 -r rs8m::10002 -o ./file.wav
199
200 Output to stdout in WAV format:
201
202 $ roc-recv -vv -s rtp+rs8m::10001 -r rs8m::10002 -d wav -o - > ./file.wav
203
204 Force a specific rate on the output device:
205
206 $ roc-recv -vv -s rtp+rs8m::10001 -r rs8m::10002 --rate=44100
207
208 Select higher session latency and timeouts:
209
210 $ roc-recv -vv -s rtp+rs8m::10001 -r rs8m::10002 \
211 --sess-latency=5s --min-latency=-1s --max-latency=10s --np-timeout=10s --bp-timeout=10s
212
213 Select higher I/O latency:
214
215 $ roc-recv -vv -s rtp+rs8m::10001 -r rs8m::10002 --io-latency=200ms
216
217 Select resampler profile:
218
219 $ roc-recv -vv -s rtp+rs8m::10001 -r rs8m::10002 --resampler-profile=high
220
222 roc-send(1), roc-conv(1), sox(1), the Roc web site at
223 https://roc-streaming.org/
224
226 Please report any bugs found via GitHub (‐
227 https://github.com/roc-streaming/roc-toolkit/).
228
230 See authors page on the website for a list of maintainers and contribu‐
231 tors.
232
234 2022, Roc authors
235
236
237
238
239Roc Toolkit 0.1 Oct 11, 2022 ROC-RECV(1)