Serverconfig.xml¶
ServerConfig.xml holds all the server's settings. It is stored in
C:\ProgramData\FastVideoCataloger\ServerConfig.xml and is read once, when the server
starts.
In most cases you should not edit this file by hand:
- The Share Video Catalog wizard (Start → Server → Setup) writes it for you.
- Admin Server (Start → Server → Admin Server) edits the same file through a user interface. Saving there stops the service, writes the file and starts the service again, so your changes take effect immediately.
If you do edit the file by hand, restart the Fast Video Cataloger service afterwards, or the server will keep running with the old settings. If the console server is started without a serverconfig.xml file, it will create one for you after you answer some questions.
Catalog¶
| Setting | Default | Description |
|---|---|---|
<CatalogFile> |
(none) | Fully qualified local path to the .vcat file to host. The server reads and writes exactly the same file format as the standalone program, so a catalog built on a single machine can be shared as it is. A server hosts one catalog — see Working with more than one catalog. The file must be local to the server, see Distributed file system. |
<CatalogPassword> |
(empty) | Password for a password protected catalog. A password protected catalog cannot be shared — remove the password from the Info menu's Set password page, by entering an empty password, before you share it. |
<LicenseKey> |
(empty) | The Fast Video Cataloger license key this server activates against. It decides how many catalog user accounts you may create. An empty key still serves the catalog, it only caps new accounts. |
Network and file hosting¶
| Setting | Default | Description |
|---|---|---|
<NetworkPort> |
8754 |
The port the server opens for clients. Clients connect to machine:port, for example YourComputer:8754. All communication except large file transfers goes over this port. |
<AllowRemoteConnections> |
false |
When true, the server accepts connections from other computers. When false, only connections from the same machine are accepted. The sharing wizard sets this to true. |
<EnableBuiltInFileHosting> |
false |
When true, the server serves videos, companion images and actor photos over HTTP itself, with no external web server needed. The wizard sets this when you pick built-in hosting. |
<RequireAuthForFileHosting> |
true |
When true, a client needs a catalog account to fetch files from the built-in HTTP server. |
<UseIdBasedStreaming> |
false |
When true, clients stream videos through /api/v1/videos/{id}/stream instead of by file path. The server looks the path up in the catalog, so video files do not need a common root folder and can live anywhere the server can reach. The wizard sets this together with built-in file hosting. |
Video, photo and actor photo locations¶
These settings map a file's location on the server to the path a client uses to read it. They
are only needed when clients access files by path, that is over a Windows share or an external
web server. With <UseIdBasedStreaming> turned on they are optional.
| Setting | Description |
|---|---|
<VideoFileLocalRoot> |
Local path on the server to the folder that is the root of all video files. |
<VideoFileShareRoot> |
The path clients use to reach that same folder, for example \\fredrik_asus\videocatalog\videos for a Windows share, or an http:// address for a web server. |
<PhotoFileLocalRoot> |
Local path to the root of all video companion images. |
<PhotoFileShareRoot> |
The path clients use to reach the companion images. |
<ActorPhotoFileLocalRoot> |
Local path to the root of all actor companion images. |
<ActorPhotoFileShareRoot> |
The path clients use to reach the actor images. |
<VideoFileLocalRootNoCloud> <PhotoFileLocalRootNoCloud> <ActorPhotoFileLocalRootNoCloud> |
The same local roots with any cloud drive (Dropbox, OneDrive) path resolved to a real folder on disk. The wizard fills these in when a root is on a cloud drive, and the server uses them in preference to the plain roots when serving files. Leave them empty otherwise. |
If a root is missing or unreachable when the server starts, the server writes a warning to its log and keeps running. See Troubleshooting for what that means for the files under it.
Uploads¶
| Setting | Description |
|---|---|
<ServerUploadFolder> |
Local folder that receives uploads from clients while the transfer is in progress. Failed uploads are left here, so with the server stopped this folder should be empty. |
<VideoUploadDestination> |
Folder that finished video uploads are moved to. This must be a real folder, not a drive root. If it is empty, uploaded videos stay in <ServerUploadFolder>. |
Indexing¶
The server can index videos added to it. These settings match the equivalent preferences in the desktop application.
| Setting | Default | Description |
|---|---|---|
<ThumbnailWidth> |
320 |
Width in pixels of captured thumbnails. |
<SampleStart> |
0 |
Where in the video to start sampling. |
<SampleTime> |
30 |
Seconds between captured thumbnails. |
<MinThumbnails> |
5 |
Fewest thumbnails to capture per video. |
<MaxThumbnails> |
30 |
Most thumbnails to capture per video. |
<UseDirectshowMerit> |
false |
Use the decoders registered on the system instead of the bundled ones. |
<LAVSplitterPath> |
LAVFilters\LAVSplitter.ax |
Splitter used for decoding. A relative path is resolved from the Fast Video Cataloger program folder. |
<LAVDecoderPath> |
LAVFilters\LAVVideo.ax |
Video decoder used for decoding. |
<ExtractMetaShellInfo> |
true |
Read Windows shell metadata from the video file. |
<ExtractMetaXMPInfo> |
true |
Read XMP metadata from the video file. |
<ExtractMetaMediaInfo> |
true |
Read media metadata such as resolution, codec and frame rate. |
<RemoveSimilarThumbnails> |
false |
Discard thumbnails that are near duplicates of the previous one. |
<RemoveSimilarThreshold> |
0.90 |
How alike two thumbnails must be to count as duplicates. |
<RemoveFacelessThumbnails> |
false |
Discard thumbnails that contain no face. |
AI during indexing¶
All AI features are off by default and need their models downloaded before they can be enabled. Model paths that are not absolute are resolved from the Fast Video Cataloger program folder. If a model is missing, the server logs it, skips that step and carries on indexing.
| Setting | Default | Description |
|---|---|---|
<EnableFaceRecognition> |
false |
Detect and recognise actor faces while indexing. |
<FaceRecognitionConfidenceThreshold> |
0.90 |
How certain a match must be before an actor is tagged. |
<FaceRecognitionFrameSkip> |
1 |
Process every n:th frame. Raise it to trade detail for speed. |
<FaceRecognitionModelPath> |
FaceModels |
Folder holding the face models. |
<FaceRecognitionUseCnn> |
false |
Use the slower, more accurate face detector. |
<EnableSceneClassification> |
false |
Classify what kind of scene a thumbnail shows. |
<EnableObjectDetection> |
false |
Detect objects in thumbnails. |
<SceneClassificationMinConfidence> |
0.60 |
Lowest confidence that still produces a tag. |
<SceneClassificationFrameSkip> |
1 |
Process every n:th frame. Raise it to trade detail for speed. |
<SceneClassificationModelPath> |
SceneModels |
Folder holding the scene and object models. |
<ObjectDetectionModel> |
yolox_l.onnx |
File name of the object detection model inside that folder. A custom imported model can be named here instead. |
<EnableImageTagging> |
false |
Tag thumbnails with the image tagging vocabulary while indexing. |
<ImageTaggingSensitivity> |
3.0 |
Higher values give fewer, more confident tags. |
<ImageTaggingModelPath> |
TagModels |
Folder holding the image tagging model and preset. |
<TagPacks> |
(empty) | Extra vocabulary packs to enable, comma separated. The core vocabulary is always active. |
<EnableTrainedTags> |
false |
Match thumbnails against the catalog's own trained tags while indexing. |
<TrainedTagModelPath> |
TrainedTagModels |
Folder holding the trained tags encoder. |
<EnableTranscription> |
false |
Transcribe speech in videos while indexing. |
<TranscriptionModelPath> |
WhisperModels\ggml-base.en.bin |
The speech to text model file to use. |
<TranscriptionLanguage> |
auto |
Spoken language, or auto to detect it per video. |
Example¶
A minimal configuration using the built-in HTTP server:
<?xml version="1.0"?>
<ServerConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CatalogFile>c:\videocatalog\test.vcat</CatalogFile>
<NetworkPort>8754</NetworkPort>
<AllowRemoteConnections>true</AllowRemoteConnections>
<EnableBuiltInFileHosting>true</EnableBuiltInFileHosting>
<RequireAuthForFileHosting>true</RequireAuthForFileHosting>
<UseIdBasedStreaming>true</UseIdBasedStreaming>
<ServerUploadFolder>c:\videocatalog\uploads</ServerUploadFolder>
<VideoUploadDestination>c:\videocatalog\videouploads</VideoUploadDestination>
</ServerConfiguration>
The same catalog served over a Windows share instead, where every video file lives under one common root folder:
<?xml version="1.0"?>
<ServerConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CatalogFile>c:\videocatalog\test.vcat</CatalogFile>
<VideoFileLocalRoot>c:\videocatalog\videos\</VideoFileLocalRoot>
<VideoFileShareRoot>\\fredrik_asus\videocatalog\videos</VideoFileShareRoot>
<PhotoFileLocalRoot>c:\videocatalog\photos\</PhotoFileLocalRoot>
<PhotoFileShareRoot>\\fredrik_asus\videocatalog\photos</PhotoFileShareRoot>
<ActorPhotoFileLocalRoot>c:\videocatalog\actorphotos\</ActorPhotoFileLocalRoot>
<ActorPhotoFileShareRoot>\\fredrik_asus\videocatalog\actorphotos</ActorPhotoFileShareRoot>
<NetworkPort>8754</NetworkPort>
<AllowRemoteConnections>true</AllowRemoteConnections>
<ServerUploadFolder>c:\videocatalog\uploads</ServerUploadFolder>
</ServerConfiguration>