The server's basic configuration is done via config.json file (/StServer/data folder) If this file does not exist, it is created automatically on the first run.
{
"db": {
"connection_str": "mongodb://localhost:27017/db"
},
"videos": {
"dir": "c:/StServer/videos"
},
"annotations": {
"dir": "c:/StServer/annotations"
},
"license": {
"key": "57634006-CD1B8A78-F5EE465A-D5D4D008"
},
"ingester": {
"path": "c:\\StServer\\dlls\\SegmentIngesterProc.exe"
},
"player": {
"path": "c:\\StServer\\dlls\\KlvPlayerRawCapture.exe"
}
"redis": {
"connection_str": "redis://localhost:6379"
},
"ramdrive": {
"path": "R:"
},
"logs": {
"accessLogsMax": 5000
},
"videoserver": {
"useInternal": true,
"externalUrl": "http://localhost:4000"
},
"maps": {
"layers": [
{
"title": "OpenStreet Maps",
"tileLayer": "http://{s}.tile.osm.org/{z}/{x}/{y}.png",
"attribution": "© <a href=\"http://osm.org/copyright\">OpenStreetMap</a>"
},
{
"title": "Thunderforest Landscape",
"tileLayer": "http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png",
"attribution": "© <a href=\"http://www.opencyclemap.org\">OpenCycleMap</a>, © <a href=\"http://www.openstreetmap.org/copyright\">OpenStreetMap</a>"
},
{
"title": "Esri WorldImagery",
"tileLayer": "http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
"attribution": "Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"
}
]
}
}
- db MongoDB configuration
- videos Missions / Video directory. Specifies the location of the uploaded videos and other mission related resources.
- annotations Annotations directory. Specifies the location of the uploaded annotations and other annotation related resources.
- license License Key.
- ingester Ingester module location.
- player Raw Capture / Video Player module location.
- redis Redis configuration parameters.
- ramdrive Ramdrive configuration parameters.
- logs Logs configuration parameters.
- videoserver Videoserver parameters. If useInternal is set to false, the server will try to use an external video server cluster at externalUrl location.
- maps Maps configuration parameters.
Video server cluster.
A single instance of StanagOnDemand Server runs in a single thread, as it uses Node.js. To take advantage of multi-core systems for video serving it is better to separate video delivery from other server tasks to handle the load. It can be easily done by launching a cluster of videoServer processes.
The video server is located in \videoserver directory
You can run it with the following parameters:
'Option: -p <port> Port, -r <path> Root, -t <limit> Throttle'
- port to send the requests.
- path to the video directory.
- limit to throttle the output rate.