forked from twoconk/darwin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
streamingserver.xml
582 lines (454 loc) · 28 KB
/
streamingserver.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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
<?xml version ="1.0"?>
<!-- This is a sample /Library/QuickTimeStreaming/Config/streamingserver.xml file -->
<!-- The Document Type Definition (DTD) for the file -->
<!DOCTYPE CONFIGURATION [
<!ELEMENT CONFIGURATION (SERVER, MODULE*)>
<!ELEMENT SERVER (PREF|LIST-PREF)*>
<!ELEMENT MODULE (PREF|LIST-PREF)*>
<!ATTLIST MODULE
NAME CDATA #REQUIRED>
<!ELEMENT PREF (#PCDATA)>
<!ATTLIST PREF
NAME CDATA #REQUIRED
TYPE (UInt8|SInt8|UInt16|SInt16|UInt32|SInt32|UInt64|SInt64|Float32|Float64|Bool16|Bool8|CharArray) "CharArray">
<!ELEMENT LIST-PREF (VALUE*)>
<!ELEMENT VALUE (#PCDATA)>
<!ATTLIST LIST-PREF
NAME CDATA #REQUIRED
TYPE (UInt8|SInt8|UInt16|SInt16|UInt32|SInt32|UInt64|SInt64|Float32|Float64|Bool16|Bool8|CharArray) "CharArray">
]>
<CONFIGURATION>
<SERVER>
<!-- Port(s) for accepting client connections -->
<!-- NOTE: Add port 80 to the list of "rtsp_port"'s -->
<!-- if you are streaming across the internet -->
<!-- and want clients behind firewalls to be -->
<!-- able to connect to the streaming server -->
<LIST-PREF NAME="rtsp_port" TYPE="UInt16">
<VALUE>7070</VALUE>
<VALUE>554</VALUE>
<VALUE>8000</VALUE>
<VALUE>8001</VALUE>
</LIST-PREF>
<!-- The text to display as the login entity "realm" by the client is defined by default_authorization_realm -->
<!-- if the default realm is not defined here, then the default realm is set to "Streaming Server" -->
<!-- the realm used in a response can also be dynamically set by authorizating modules -->
<PREF NAME="default_authorization_realm">Streaming Server</PREF>
<!-- when behind a round robin DNS, the client needs to be told the specific -->
<!-- ip address of the matching handling its request. this pref tells the server -->
<!-- to report its IP address in the reply to the HTTP GET request when -->
<!-- tunneling RTSP through HTTP. -->
<PREF NAME="do_report_http_connection_ip_address" TYPE="Bool16">disabled</PREF>
<!-- "scaling factor" to appropriately scale the buffer size. -->
<!-- Using the bitrate of the movie as a guide, the server will set the TCP send -->
<!-- buffer to fit this number of seconds of data. -->
<PREF NAME="tcp_seconds_to_buffer" TYPE="Float32">.5</PREF>
<!-- Maximum size the send buffer can be set to. -->
<PREF NAME="max_tcp_buffer_size" TYPE="UInt32">200000</PREF>
<!-- Minimum size the send buffer can be set to. -->
<PREF NAME="min_tcp_buffer_size" TYPE="UInt32">8192</PREF>
<!-- Either "true" or "false". This toggles error -->
<!-- logging on and off. -->
<PREF NAME="error_logging" TYPE="Bool16">true</PREF>
<!-- if screen_logging is true, all content for the error log will be -->
<!-- written to the terminal window. Note that in order to see these messages -->
<!-- onscreen, the server must be launched from the command-line, and must be -->
<!-- launched in foreground mode (triggered by the addition of the -d flag). -->
<PREF NAME="screen_logging" TYPE="Bool16">true</PREF>
<!-- This controls how much information is to be -->
<!-- logged in the error log. A value of 0 means only log fatal errors. 1 -->
<!-- means log fatal errors and warnings. 2 means log fatal errors, warnings, -->
<!-- and asserts. 3 means log fatal errors, warnings, asserts, and debug messages. -->
<PREF NAME="error_logfile_verbosity" TYPE="UInt32">3</PREF>
<!-- Maximum allowed size in bytes for the error log. A -->
<!-- value of 0 means unlimited -->
<PREF NAME="error_logfile_size" TYPE="UInt32">256000</PREF>
<!-- Amount of time in days between rolls of the -->
<!-- error log. A value of 0 means unlimited. -->
<PREF NAME="error_logfile_interval" TYPE="UInt32">7</PREF>
<!-- error log. A value of 0 means unlimited. -->
<PREF NAME="error_logfile_dir">/Library/QuickTimeStreaming/Logs</PREF>
<!-- Name of the error log file. -->
<PREF NAME="error_logfile_name">Error</PREF>
<!-- Path to the pid file. Mac OSX and Darwin unixes only. -->
<PREF NAME="pid_file">/var/run/QuickTimeStreamingServer.pid</PREF>
<!-- Path to the folder containing dynamic loadable server modules -->
<PREF NAME="module_folder">/Library/QuickTimeStreaming/Modules</PREF>
<!-- If the server discovers it is serving more than its -->
<!-- allowed maximum bandwidth (using the average bandwidth computation) it -->
<!-- will attempt to disconnect the most recently connected clients until the -->
<!-- average bandwidth drops to acceptable levels. However, it will not -->
<!-- disconnect clients if they've been connected for longer than this time, -->
<!-- in seconds. If this value is set to 0, it will never disconnect clients. -->
<PREF NAME="safe_play_duration" TYPE="UInt32">600</PREF>
<!-- This is the interval in seconds between computations of the server's average bandwidth. -->
<PREF NAME="average_bandwidth_update" TYPE="UInt32">60</PREF>
<!-- The interval in seconds between updates of the -->
<!-- server's total bytes and current bandwidth statistics. -->
<PREF NAME="total_bytes_update" TYPE="UInt32">1</PREF>
<!-- if this is true, the server will automatically restart itself if it crashes. -->
<PREF NAME="auto_restart" TYPE="Bool16">true</PREF>
<!-- If this is true, the server will stop when an assert condition is hit. -->
<PREF NAME="break_on_assert" TYPE="Bool16">false</PREF>
<!-- This tells the server what IP address it should accept -->
<!-- client connections on. A value of 0 means all IP addresses currently -->
<!-- enabled for the machine. -->
<PREF NAME="bind_ip_addr">0</PREF>
<!-- Path to the root folder for movies. -->
<PREF NAME="movie_folder">/Library/QuickTimeStreaming/Movies</PREF>
<!-- Maximum amount of bandwidth the server is allowed to serve. -->
<!-- value is in kilobits/sec. While this limit is exceeded, new client requests. -->
<!-- for additional streams will be responded to with the RTSP error 453, "Not Enough Bandwidth". -->
<PREF NAME="maximum_bandwidth" TYPE="SInt32">102400</PREF>
<!-- Maximum number of concurrent connections allowed by the server -->
<PREF NAME="maximum_connections" TYPE="SInt32">1000</PREF>
<!-- Amount of time in seconds the server will wait before -->
<!-- disconnecting idle RTP clients. This timer is reset each time the server -->
<!-- receives an RTCP status packet from the client. -->
<PREF NAME="rtp_timeout" TYPE="UInt32">1200</PREF>
<!-- rtsp_timeout is the timeout that gets reported to the client. This is the actual timeout value -->
<PREF NAME="real_rtsp_timeout" TYPE="UInt32">1800</PREF>
<!-- Amount of time in seconds the server will wait before -->
<!-- disconnecting idle RTSP clients. This timer is reset each time the server -->
<!-- receives a new RTSP request from the client. -->
<PREF NAME="rtsp_timeout" TYPE="UInt32">1800</PREF>
<!-- Run as this user -->
<PREF NAME="run_user_name"></PREF>
<!-- Member of this group -->
<PREF NAME="run_group_name"></PREF>
<!-- The following 8 prefs implement the server's thinning algorithm. -->
<!-- They are all in milliseconds -->
<!-- If a packet is this late, it is dropped -->
<PREF NAME="drop_all_packets_delay" TYPE="SInt32">2500</PREF>
<!-- If a video packet is this late, it is dropped -->
<PREF NAME="drop_all_video_delay" TYPE="SInt32">1750</PREF>
<!-- If a packet is this late, the server thins the stream as much as possible -->
<PREF NAME="thin_all_the_way_delay" TYPE="SInt32">1500</PREF>
<!-- If a packet is this late, thin some more -->
<PREF NAME="always_thin_delay" TYPE="SInt32">750</PREF>
<!-- If a packet is this late, we might thin some more -->
<PREF NAME="start_thinning_delay" TYPE="SInt32">0</PREF>
<!-- If a packet is this late, start thicking -->
<PREF NAME="start_thicking_delay" TYPE="SInt32">250</PREF>
<!-- If a packet is this late (negative means it is ahead of time), restore full quality -->
<PREF NAME="thick_all_the_way_delay" TYPE="SInt32">-2000</PREF>
<!-- The server checks packet delay differences this often -->
<PREF NAME="quality_check_interval" TYPE="UInt32">1000</PREF>
<!-- If this is true, the server will add its source address to its transport. -->
<!-- headers. This is necessary on certain networks where the source address -->
<!-- is not necessarily known. -->
<PREF NAME="append_source_addr_in_transport" TYPE="Bool16">false</PREF>
<!-- The server appends its own IP addr into the Transport: header. -->
<!-- If you want an alternate address placed there, use this pref to specify -->
<!-- the address. -->
<PREF NAME="alt_transport_src_ipaddr" TYPE="UInt32"></PREF>
<!-- Reliable UDP: maximum interval between when a retransmit is supposed -->
<!-- to be sent and when it actually gets sent. -->
<!-- Lower values means smoother flow but slower server performance -->
<PREF NAME="max_retransmit_delay" TYPE="UInt32">500</PREF>
<!-- Reliable UDP: if the client doesn't explicitly say what its window is, -->
<!-- the server will use this as a default value. In K bytes -->
<PREF NAME="small_window_size" TYPE="UInt32">24</PREF>
<!-- Reliable UDP: if the client doesn't explicitly say what its window is, -->
<!-- the server will use this as a default value. In K bytes -->
<PREF NAME="medium_window_size" TYPE="UInt32">48</PREF>
<!-- Reliable UDP: if the client doesn't explicitly say what its window is, -->
<!-- the server will use this as a default value. In K bytes -->
<PREF NAME="large_window_size" TYPE="UInt32">64</PREF>
<!-- Reliable UDP: if the client doesn't explicitly say what its window is, -->
<!-- the server will use the small_window_size if the bit rate is below this threshold in kbps -->
<PREF NAME="window_size_threshold" TYPE="UInt32">200</PREF>
<!-- Reliable UDP: if the client doesn't explicitly say what its window is, -->
<!-- the server will use the small_window_size if the bit rate is below this threshold in kbps -->
<PREF NAME="window_size_max_threshold" TYPE="UInt32">1000</PREF>
<!-- Reliable UDP: For debugging only. This turns on massive -->
<!-- server logging of reliable udp acking -->
<PREF NAME="ack_logging_enabled" TYPE="Bool16">false</PREF>
<!-- Reliable UDP: Time in msec between server checks for incoming RTCP packets. -->
<!-- Longer interval means better server performance but grosser -->
<!-- mis-estimates of packet round-trip-times -->
<PREF NAME="rtcp_poll_interval" TYPE="UInt32">100</PREF>
<!-- Reliable UDP: Size in Kbytes for the RTCP UDP socket receive buffers. -->
<!-- This in general needs to be big to absorb bursts of RTCP ACKs. -->
<!-- Lower value may mean ACKs will get dumped by the kernel. -->
<PREF NAME="rtcp_rcv_buf_size" TYPE="UInt32">768</PREF>
<!-- This is also the minimum time the server will wait between sending packet data to a client -->
<PREF NAME="send_interval" TYPE="UInt32">50</PREF>
<!-- The server tries to get ahead of clients. This is the farthest ahead -->
<!-- in seconds that the server can go. -->
<PREF NAME="max_send_ahead_time" TYPE="UInt32">25</PREF>
<!-- Reliable UDP: Is Reliable UDP slow start enabled. Having this off may lead to an initial -->
<!-- burst of packet loss due to mis-estimate of the client's available bandwidth. Having it -->
<!-- on may lead to premature thinning. -->
<PREF NAME="reliable_udp_slow_start" TYPE="Bool16">true</PREF>
<!-- Turn on or off the SDP file deleter: files are deleted after the SDP t= endtime passes -->
<PREF NAME="auto_delete_sdp_files" TYPE="Bool16">false</PREF>
<!-- Set this to be the authentication scheme you want the server to use. -->
<!-- "basic", "digest", and "none" are the currently supported values. -->
<PREF NAME="authentication_scheme">digest</PREF>
<!-- feature removed -->
<PREF NAME="sdp_file_delete_interval_seconds" TYPE="UInt32">10</PREF>
<!-- Enabled / disable reliable UDP protocol. -->
<PREF NAME="reliable_udp" TYPE="Bool16">true</PREF>
<!-- If reliable UDP is enabled, specify the directories in which -->
<!-- it is enabled. Directories should be relative to the movies -->
<!-- folder, with a leading slash but no trailing slash. For example: -->
<!-- /reliable_udp_dir -->
<PREF NAME="reliable_udp_dirs">/</PREF>
<!-- Enable printfs of some interesting stats about each reliable UDP client -->
<PREF NAME="reliable_udp_printfs" TYPE="Bool16">false</PREF>
<!-- Enable debugging error messages in RTSP error response -->
<PREF NAME="RTSP_error_message" TYPE="Bool16">false</PREF>
<!-- If value is greater than zero, then the server creates run_num_threads threads -->
<!-- If value is zero, the server creates a thread for each processor -->
<!-- This setting is used to override the default behavior - one thread per process -->
<PREF NAME="run_num_threads" TYPE="UInt32">0</PREF>
<!-- Rate at which to overbuffer: number of times the data rate -->
<PREF NAME="overbuffer_rate" TYPE="Float32">2.0</PREF>
<!-- Enables debugging of the RTSP protocol (used for developer debugging) -->
<PREF NAME="RTSP_debug_printfs" TYPE="Bool16">false</PREF>
<!-- The monitor status file is for updating the file -->
<!-- used by an external monitor application. -->
<PREF NAME="enable_monitor_stats_file" TYPE="Bool16">true</PREF>
<PREF NAME="monitor_stats_file_interval_seconds" TYPE="UInt32">10</PREF>
<PREF NAME="monitor_stats_file_name" >server_status</PREF>
<!-- RTP packet debugging options (used for developer debugging) -->
<PREF NAME="enable_packet_header_printfs" TYPE="Bool16" >false</PREF>
<PREF NAME="packet_header_printf_options" >rtp;rr;sr;app;ack;</PREF>
</SERVER>
<MODULE NAME="QTSSAccessLogModule">
<!-- Amount of time in days between rolls of the -->
<!-- access log. A value of 0 means unlimited. -->
<PREF NAME="request_logfile_interval" TYPE="UInt32">7</PREF>
<!-- Maximum allowed size in bytes for the access log. A -->
<!-- value of 0 means unlimited. -->
<PREF NAME="request_logfile_size" TYPE="UInt32">10240000</PREF>
<!-- Path to directory where access logs are stored. -->
<PREF NAME="request_logfile_dir">/Library/QuickTimeStreaming/Logs</PREF>
<!-- Name of the access log file. -->
<PREF NAME="request_logfile_name">StreamingServer</PREF>
<!-- Either "true" or "false". Logs date time field -->
<!-- in GMT if true and in localtime if false-->
<PREF NAME="request_logtime_in_gmt" TYPE="Bool16">true</PREF>
<!-- Either "true" or "false". This toggles access. -->
<!-- logging on and off. -->
<PREF NAME="request_logging" TYPE="Bool16">true</PREF>
</MODULE>
<MODULE NAME="QTSSFileModule">
<!-- This URL will be included in the dynamically generated SDP -->
<!-- returned to the client. Typically, this should be set to your default web URL. -->
<PREF NAME="sdp_url"></PREF>
<!-- This email address will be included in the dynamically -->
<!-- generated SDP returned to the client. -->
<PREF NAME="admin_email"></PREF>
<!-- File module accepts the rtsp Speed header, which controls the overall -->
<!-- play rate. This is the maximum rate it will allow -->
<PREF NAME="max_allowed_speed" TYPE="Float32">4.000000</PREF>
<!-- When sending packets to the client, the connection may sometimes get -->
<!-- flow controlled. When that happens, the server periodically checks to -->
<!-- see if the condition has been lifted. This is how often it checks -->
<PREF NAME="flow_control_probe_interval" TYPE="UInt32">10</PREF>
<!-- These options control the use of private/shared file -->
<!-- buffers in the QTSSFileModule. These options allow for -->
<!-- performance tuning of buffering, -->
<PREF NAME="enable_shared_file_buffers" TYPE="Bool16">true</PREF>
<PREF NAME="enable_private_file_buffers" TYPE="Bool16">true</PREF>
<PREF NAME="num_shared_buffer_increase_per_session" TYPE="UInt32">2</PREF>
<PREF NAME="shared_buffer_unit_k_size" TYPE="UInt32">32</PREF>
<PREF NAME="private_buffer_unit_k_size" TYPE="UInt32">32</PREF>
<PREF NAME="num_shared_buffer_units_per_buffer" TYPE="UInt32">0</PREF>
<PREF NAME="num_private_buffer_units_per_buffer" TYPE="UInt32">1</PREF>
<PREF NAME="max_shared_buffer_units_per_buffer" TYPE="UInt32">8</PREF>
<PREF NAME="max_private_buffer_units_per_buffer" TYPE="UInt32">8</PREF>
<PREF NAME="add_seconds_to_client_buffer_delay" TYPE="Float32">0.000000</PREF>
<!-- These options allow you to enable/disable recording of SDP files for debugging. -->
<PREF NAME="record_movie_file_sdp" TYPE="Bool16">false</PREF>
<PREF NAME="enable_movie_file_sdp" TYPE="Bool16">false</PREF>
<!-- If this is true, the server will allow streaming of files that have invalid hint track references -->
<PREF NAME="allow_invalid_hint_track_refs" TYPE="Bool16">false</PREF>
</MODULE>
<MODULE NAME="QTSSMP3StreamingModule">
<!-- Set this to false if you would like to disable native MP3 streaming -->
<PREF NAME="mp3_streaming_enabled" TYPE="Bool16">true</PREF>
<!-- This is the broadcaster application's password -->
<PREF NAME="mp3_broadcast_password"> </PREF>
<!-- This is the number of bytes we read from a broadcaster before sending to clients -->
<!-- You can use this for performance tuning. -->
<PREF NAME="mp3_broadcast_buffer_size" TYPE="UInt32" >8192</PREF>
<!-- This is the number of milliseconds we will wait for flow control to be -->
<!-- lifted blocked clients. -->
<!-- You can use this for performance tuning. -->
<PREF NAME="mp3_max_flow_control_time" TYPE="SInt32" >10000</PREF>
<!-- This is the name of the log file excluding the ".log" ending -->
<PREF NAME="mp3_request_logfile_name" >mp3_access</PREF>
<!-- Path to directory where access logs are stored. -->
<PREF NAME="mp3_request_logfile_dir">/Library/QuickTimeStreaming/Logs</PREF>
<!-- Either "true" or "false". This toggles -->
<!-- mp3 access logging on and off. -->
<PREF NAME="mp3_request_logging" TYPE="Bool16">true</PREF>
<!-- Maximum allowed size in bytes for the access log. A -->
<!-- value of 0 means unlimited. -->
<PREF NAME="mp3_request_logfile_size" TYPE="UInt32">10240000</PREF>
<!-- Amount of time in days between rolls of the -->
<!-- access log. A value of 0 means unlimited. -->
<PREF NAME="mp3_request_logfile_interval" TYPE="UInt32">7</PREF>
<!-- Either "true" or "false". Logs date time field -->
<!-- in GMT if true and in localtime if false-->
<PREF NAME="mp3_request_logtime_in_gmt" TYPE="Bool16">true</PREF>
</MODULE>
<MODULE NAME="QTSSWebStatsModule">
<!-- This sets the URL for the server's web stats page. If this -->
<!-- is set to "stats" for instance, if you request: -->
<!-- http://my.server.com:554/stats in a web browser, the server will respond -->
<!-- with current status information. -->
<PREF NAME="web_stats_url"></PREF>
</MODULE>
<MODULE NAME="QTSSHttpFileModule">
<!-- Module enabled or disabled -->
<PREF NAME="http_xfer_enabled" TYPE="Bool16" >false</PREF>
<!-- Path to the http download folder. All files -->
<!-- that are requested from this folder are sent via HTTP -->
<PREF NAME="http_folder">/Library/QuickTimeStreaming/Movies/http</PREF>
<!-- Either "true" or "false". This toggles http module -->
<!-- logging on and off. -->
<PREF NAME="http_logging" TYPE="Bool16">true</PREF>
<!-- Name of the http module log file. -->
<PREF NAME="http_logfile_name">Http</PREF>
<!-- Path to directory where http module logs are stored. -->
<PREF NAME="http_logfile_dir">/Library/QuickTimeStreaming/Logs</PREF>
<!-- Maximum allowed size in bytes for the http module log. A -->
<!-- value of 0 means unlimited. -->
<PREF NAME="http_logfile_size" TYPE="UInt32">256000</PREF>
<!-- Amount of time in days between rolls of the -->
<!-- http module log. A value of 0 means unlimited. -->
<PREF NAME="http_logfile_interval" TYPE="UInt32">7</PREF>
</MODULE>
<MODULE NAME="QTSSReflectorModule">
<!-- The reflector imposes time delays between groups, -->
<!-- or "buckets" of clients for a given multicast. This value is the number -->
<!-- of clients to put in one bucket. -->
<PREF NAME="reflector_bucket_size" TYPE="UInt32">16</PREF>
<!-- This value is the number of milliseconds to delay each bucket of clients. -->
<PREF NAME="reflector_delay" TYPE="UInt32">100</PREF>
<!-- This tells the reflector whether it should append a '.sdp' to the end -->
<!-- of URLs when looking for a .sdp file -->
<PREF NAME="allow_non_sdp_urls" TYPE="Bool16">true</PREF>
<!-- Turn on or off a broadcaster RTSP push to the server -->
<PREF NAME="enable_broadcast_push" TYPE="Bool16">true</PREF>
<!-- Turn on or off a broadcaster Announce of an SDP file to the server -->
<PREF NAME="enable_broadcast_announce" TYPE="Bool16">true</PREF>
<!-- Force announced SDPs to this maximum duration in seconds. 0 = infinite duration. -->
<PREF NAME="max_broadcast_announce_duration_secs" TYPE="UInt32">0</PREF>
<!-- Turns on or off accepting setups on an existing broadcast stream -->
<PREF NAME="allow_duplicate_broadcasts" TYPE="Bool16">false</PREF>
<!-- Turns on or off checking static ports in sdp files against a valid range -->
<!-- If an sdp file is played and it contains a port outside the min to max static sdp range then an invalid media error is returned to the client. -->
<!-- Announced broadcasts will also receive the invalid media error from the server for setups on an invalid static port. -->
<PREF NAME="enforce_static_sdp_port_range" TYPE="Bool16">false</PREF>
<!-- The maximum value for a static port. See enforce_static_sdp_port_range -->
<!-- Ports in the range 6970 to 9999 are expected to be available for use by the server. -->
<!-- If enforce_static_sdp_port_range is true a warning will be logged -->
<!-- when the minimum_static_sdp_port and maximum_static_sdp_port range crosses the server 6970 to 9999 range. -->
<PREF NAME="maximum_static_sdp_port" TYPE="UInt16">65535</PREF>
<!-- The minimum value for a static port. See enforce_static_sdp_port_range -->
<!-- Ports in the range 6970 to 9999 are expected to be available for use by the server. -->
<!-- If enforce_static_sdp_port_range is true a warning will be logged -->
<!-- when the minimum_static_sdp_port and maximum_static_sdp_port range crosses the server 6970 to 9999 range. -->
<PREF NAME="minimum_static_sdp_port" TYPE="UInt16">20000</PREF>
<!-- If no packets for the current SSRC are received in timeout seconds, use the next SSRC we see -->
<!-- This timeout is only in use when use_one_SSRC_per_stream is true -->
<PREF NAME="timeout_stream_SSRC_secs" TYPE="UInt32">30</PREF>
<!-- Only reflect packets from a single SSRC -->
<!-- Setting this value to false allows all packets from any source to be passed to the clients -->
<PREF NAME="use_one_SSRC_per_stream" TYPE="Bool16">true</PREF>
<!-- When a broadcaster RTSP session goes down also teardown the clients watching the stream -->
<PREF NAME="kill_clients_when_broadcast_stops" TYPE="Bool16">false</PREF>
<!-- These options allow you to configure buffering for the relector module. -->
<PREF NAME="reflector_bucket_offset_delay_msec" TYPE="UInt32">73</PREF>
<PREF NAME="reflector_buffer_size_sec" TYPE="UInt32">10</PREF>
<PREF NAME="reflector_use_in_packet_receive_time" TYPE="Bool16">false</PREF>
<PREF NAME="reflector_in_packet_max_receive_sec" TYPE="UInt32">60</PREF>
<PREF NAME="enable_rtp_play_info" TYPE="Bool16" >false</PREF>
<PREF NAME="timeout_broadcaster_session_secs" TYPE="UInt32">20</PREF>
<PREF NAME="authenticate_local_broadcast" TYPE="Bool16">false</PREF>
<PREF NAME="disable_overbuffering" TYPE="Bool16">false</PREF>
<!-- Maximum content length (in K bytes) of the SDP that is announced -->
<!-- A value of 0 indicates that no maximum is imposed -->
<PREF NAME="max_announced_sdp_length_kbytes" TYPE="UInt32">0</PREF>
<!-- allow broadcasts - broadcasts are reflected only if this is set to true -->
<PREF NAME="allow_broadcasts" TYPE="Bool16">true</PREF>
<!-- Redirect broadcasts if URI begins with the keyword -->
<PREF NAME="redirect_broadcast_keyword"></PREF>
<!-- Redirect broadcasts to this directory if the the URI begins with the "redirect_broadcast_keyword" -->
<PREF NAME="redirect_broadcasts_dir"></PREF>
<!-- List of directories from which to allow broadcasts. -->
<!-- Can be relative to the "movie_folder" or to the "redirect_broadcasts_dir" -->
<!-- The latter directory will be used if the URI also has the "redirect_broadcast_keyword" prefix -->
<!-- Can also be an absolute file system path -->
<PREF NAME="broadcast_dir_list"></PREF>
</MODULE>
<MODULE NAME="QTSSFlowControlModule">
<!-- If a client reports loss percentages greater than loss_thin_tolerance, -->
<!-- over the course of num_losses_to_thin consecutive RTCP (status) packets, the -->
<!-- server will drop the bitrate of stream. -->
<PREF NAME="loss_thin_tolerance" TYPE="UInt32">30</PREF>
<PREF NAME="num_losses_to_thin" TYPE="UInt32">3</PREF>
<!-- If a client reports loss percentages less than loss_thick_tolerance, over -->
<!-- the course of num_losses_to_thick consecutive RTCP (status) packets, the -->
<!-- server will increase the bitrate of the stream. -->
<PREF NAME="loss_thick_tolerance" TYPE="UInt32">5</PREF>
<PREF NAME="num_losses_to_thick" TYPE="UInt32">6</PREF>
<!-- After this number of RTCP packets where the client is reporting degrading quality, -->
<!-- the server will drop the bitrate of the stream -->
<PREF NAME="num_worses_to_thin" TYPE="UInt32">2</PREF>
</MODULE>
<MODULE NAME="QTSSRelayModule">
<!-- Relay preferences file. This file should be in the documented .rcf (Relay config file) -->
<!-- format. The Relay will use this to load up all relay streams -->
<PREF NAME="relay_prefs_file">/Library/QuickTimeStreaming/Config/relayconfig.xml</PREF>
<!-- enter this URL into a web browser and get a web page with current stats on -->
<!-- your active relays -->
<PREF NAME="relay_stats_url"></PREF>
</MODULE>
<MODULE NAME="QTSSAccessModule">
<!-- The file name for the AccessModule's access file as it appears in controlled directories. -->
<PREF NAME="modAccess_qtaccessfilename">qtaccess</PREF>
<!-- The default path and file name for the AccessModule's groups list -->
<PREF NAME="modAccess_groupsfilepath">/Library/QuickTimeStreaming/Config/qtgroups</PREF>
<!-- The default path and file name for the AccessModule's user list -->
<PREF NAME="modAccess_usersfilepath">/Library/QuickTimeStreaming/Config/qtusers</PREF>
</MODULE>
<MODULE NAME="QTSSAdminModule">
<!-- The delay processing a new admin request until this many milliseconds has passed -->
<PREF NAME="RequestTimeIntervalMilli" TYPE="UInt32">50</PREF>
<!-- Only requests from 127.0.0.1 are allowed if LocalAccessOnly is true -->
<!-- If this is set to false, then IP addresses as defined by the IPAccessList may make requests -->
<PREF NAME="LocalAccessOnly" TYPE="Bool16">true</PREF>
<!-- Require Admin requests to authenticate with the server -->
<PREF NAME="Authenticate" TYPE="Bool16">true</PREF>
<!-- turn on or off admin request processing -->
<PREF NAME="enable_remote_admin" TYPE="Bool16">true</PREF>
<!-- A list of IP addresses that are allowed to make admin requests. -->
<!-- LocalAccessOnly must be set to false before network addresses will be accepted. -->
<!-- A wildcard of * is allowed for designating ranges. *.*.*.* means all addresses. -->
<PREF NAME="IPAccessList">127.0.0.*</PREF>
<!-- The user has to belong to this group in order to be authorized -->
<!-- by the admin module for admin protocol requests -->
<PREF NAME="AdministratorGroup">admin</PREF>
</MODULE>
<MODULE NAME="QTSSRefMovieModule" >
<!-- Set refmovie_xfer_enabled to false to disable RTSP ref movie generation -->
<PREF NAME="refmovie_xfer_enabled" TYPE="Bool16">true</PREF>
<!-- refmovie_rtsp_port is the RTSP port used in the generated RTSP ref movie address -->
<PREF NAME="refmovie_rtsp_port" TYPE="UInt16">554</PREF>
</MODULE>
<MODULE NAME="QTSSOnDemandRelayModule" >
<PREF NAME="zfltest" >hello ok</PREF>
<PREF NAME="ondemandrelay_deviceinfo_xml" >/etc/streaming/DeviceInfo.xml</PREF>
<PREF NAME="reflector_bucket_offset_delay_msec" TYPE="UInt32" >73</PREF>
<PREF NAME="reflector_buffer_size_sec" TYPE="UInt32" >10</PREF>
<PREF NAME="reflector_use_in_packet_receive_time" TYPE="Bool16" >false</PREF>
<PREF NAME="reflector_in_packet_max_receive_sec" TYPE="UInt32" >60</PREF>
<PREF NAME="reflector_rtp_info_offset_msec" TYPE="UInt32" >500</PREF>
</MODULE>
</CONFIGURATION>