-
Notifications
You must be signed in to change notification settings - Fork 0
/
params.cfg
183 lines (169 loc) · 6.04 KB
/
params.cfg
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
// default config file for ndnrtc
// basic information:
name = "Ndn-RTC";
// general parameters
general =
{
log_level = "all"; // all, debug, none, default
log_file = "ndnrtc.log";
use_tlv = true; // [true | false] -- determines, whether the library should use TLV encoding
use_rtx = true; // [true | false] -- reissue timedout interests (late data cases)
use_fec = true; // [true | false] -- use Forward Error Correction
use_cache = true; // [true | false] -- use in-memory content cache for producer
use_avsync = true; // [true | false] -- enable synchronization between audio/video streams
audio = false;
video = true;
skip_incomplete = true; // [true | false] -- indicates, whether incomplete frames should be skipped for playback
prefix = "/test"; // default ndn prefix which will be inserted before app-specific names
ndnnetwork =
{
connect_host = "localhost";
connect_port = 6363;
};
};
// defines username and prefix for headless consumer or producer
headless = {
mode = 0; // [0 - off | 1 - consumer | 2 - producer] -- use headless mode (starts right away in the chosen mode)
username = "test";
};
// default consumer configuration
consumer = {
audio = {
interest_lifetime = 2000;
jitter_size = 300; // minimal jitter buffer size in milliseconds
buffer_size = 150; // assembling buffer size
slot_size = 16000; // frame buffer's slot size (for assembling frames fetched from network)
};
video = {
interest_lifetime = 2000;
jitter_size = 300; // minimal jitter buffer size in milliseconds
buffer_size = 150; // assembling buffer size
slot_size = 16000; // frame buffer's slot size (for assembling frames fetched from network)
};
};
// default producer configuration
producer = {
// publishing parameters
// define actual segment size in bytes and freshness period for
// published data per data type (audio/video)
audio = {
segment_size = 500;
freshness = 1000;
};
video = {
segment_size = 1000;
freshness = 1000;
};
// capture devices lists
// these lists enumerate current capture devices installed in the system;
// they come handy only when system has more than one capturing device per
// media and devices' IDs are known before starting the app;
// otherwise, id equals 0 always points to the current default capture
// device installed in the system
// for video, id equals -1 defines desktop virtual capture device
// actual device IDs can be queried from the library - it'll return
// enumerated list of currently available audio and video capture devices
// list of audio capture devices
// actual IDs can be queried from the
acapture = ({
device_id = 0;
});
// list of video capture devices and preferrable capturing parameters
// id equals -1 indicates desktop capturing device
vcapture = ({
device_id = 0;
capture_width = 640;
capture_height = 480;
framerate = 30;
},
{
device_id = -1;
capture_width = 1280;
capture_height = 768;
framerate = 30;
});
// media streams and media threads
// media stream represents a stream of media packets of a certain media type
// (audio/video) and associated with certain capture device
// each media stream can have several media stream threads (or stream
// threads) which provide specific processing (encoding) of the incoming
// media data from the capture device
// audio streams that will be established after creating default producer;
// capture_idx specifies index of the capture device in "acapture" list (above)
// (above);
astreams = (
{
name = "audio0";
capture_idx = 0; // index of capturing device from the acapture list
threads = (
{
name = "pcmu";
} // pcmu
);
} // audio0
); // astreams
// video streams that will be created after creating default producer;
// capture_idx specifies index of the capture device in "vcapture" list (above)
vstreams = (
{
name = "video0";
capture_idx = 0;
threads = (
{
name = "thread1";
frame_rate = 30; // encoding frame rate
gop = 30;
start_bitrate = 200;
max_bitrate = 0;
drop_frames = true; // should drop frames to keep up with the bitrate
}, // thread1
{
name = "thread2";
frame_rate = 30; // encoding frame rate
gop = 30;
start_bitrate = 500;
max_bitrate = 0;
drop_frames = true; // should drop frames to keep up with the bitrate
}, // thread2
{
name = "thread3";
frame_rate = 30; // encoding frame rate
gop = 30;
start_bitrate = 1000;
max_bitrate = 0;
drop_frames = true; // should drop frames to keep up with the bitrate
} // thread3
);
}, // video0
{
name = "desktop";
capture_idx = 1;
threads = (
{
name = "thread1";
frame_rate = 30; // encoding frame rate
gop = 30;
start_bitrate = 500;
max_bitrate = 0;
drop_frames = true; // should drop frames to keep up with the bitrate
}, // thread1
{
name = "thread2";
frame_rate = 30; // encoding frame rate
gop = 30;
start_bitrate = 700;
max_bitrate = 0;
drop_frames = true; // should drop frames to keep up with the bitrate
}, // thread2
{
name = "thread3";
frame_rate = 30; // encoding frame rate
gop = 30;
start_bitrate = 1000;
max_bitrate = 0;
drop_frames = true; // should drop frames to keep up with the bitrate
} // thread3
);
} // desktop_sharing
); // vstreams
}