How it works ? - jbinkley60/MezzmoKodiPlugin GitHub Wiki
Mezzmo Overview
Updated February 11, 2025
Mezzmo is a powerful and flexible Windows based media server that lets you stream all your media to your devices and web browsers inside your home and outside your home. Install Mezzmo onto your PC or laptop and start streaming all your files in minutes!
It provides a centralized easier and more secure way to manage all of your media. Mezzmo can serve media content to Kodi and non-Kodi clients, including web clients via its internal web server. Mezzmo supports many different types of media and provides full control of what each client sees. With Mezzmo you no longer have to manage complex SMB shares to all of your clients. This is more simple and secure, since only Mezzmo will be accessing remote content on NAS or other SMB devices. If all of your content is already on a server / PC / laptop with internal or USB attached storage then SMB mounts go away. Simply import your library into Mezzmo (existing NFO file imports or rescraping are both fine) and then let the Mezzmo Kodi addon sync process do the rest automatically. No more managing each Kodi client individually. Just update Mezzmo once and let it handle updating all of your Kodi clients.
Media scraping, resume point management, trailers, configuring Kodi paths / complicated scrapers, artwork dumping and many other common Kodi features / complexities that often require a list of addons and lots of maintenance time, all can go away and be centrally managed by existing Mezzmo capabilities. The Mezzmo Kodi addon was designed to play nice with other Kodi addons and since Mezzmo doesn't leverage existing SMB mounts and similar you can test Mezzmo with the Mezzmo Kodi Addon in parallel with existing SMB mount or MySQL solutions to see the difference. While the Mezzmo Kodi addon tracks its own data inside of the Kodi database, it cannot account for all other possible Kodi addons which may not play as nicely. It is recommended that you backup your Kodi clients before deploying the Mezzmo Kodi Addon. However, there have not been any recently reported issues with this.
Managing Sharing
Mezzmo provides a rich set of tools via its Media Devices function to control what clients see and can access within Mezzmo, including parental controls. For a complete description of Media Devices sharing and options, please see the device settings Wiki page
In this example Mezzmo has been configured just to serve 3 playlists to the specified Kodi client.
And here you see Kodi with the 3 playlists in the order specified. This is just an example of the power of Mezzmo.
All metadata, artwork and media is sharable across all Kodi clients. Mezzmo includes a built-in web server for local or remote / Internet based access to your media.
Resume Point Sharing
Resume points / bookmarks are also globally sharable. By default they are local to each client. To make your resume points / bookmarks global you need to edit the mezzmomediaserver.ini file. It is typically located in: /users/{user}/appdata/local/conceiva/mezzmo
You will need to add the line "UseGlobalBookmarks=1" in the DB section like the example below. Then restart the Mezzmo server and your resume points / bookmarks will be shared across all of your clients, including web users.
[DB] LoggingFolder=C:\Users\Video\AppData\Local\Conceiva\Logs FileName=M:\Mezzmo\Mezzmo.db UseGlobalBookmarks=1 PluginsFolder=C:\ProgramData\Conceiva\Mezzmo\plugins
Parental Controls
In addition to deciding what folders and playlists can be shared with any Mezzmo client, including Kodi, Mezzmo has a comprehensive set of parental controls. These include by content rating, time of day, by device, system-wide and managing unrated material. See here for a complete description. Here is a screenshot of the parental controls in the Media Devices tab for managing parental controls on a specific device.
Mezzmo Background Sync
Synchronizing Mezzmo library data to the Kodi video database is a key capability of the Mezzmo Kodi addon. A complete set of sync options are available in the Content Control and Native Mode settings. When you first install the Mezzmo Kodi addon it will automatically select your Mezzmo server as a sync server the first time you launch the GUI. If you ever have a problem with No Sync Server selected error messages then go to the Timers & Servers settings and use the Select Mezzmo Sync Server option.
Note that to ensure optimal performance, the Mezzmo Kodi addon will not perform a sync activity event if you are playing music or a video file with Kodi. It will skip that sync activity and will pickup syncing again once playback has stopped. A message will be placed in the Kodi logfile and the Mezzmo addon log database indicating a sync event was skipped. It really shouldn't be a problem to have sync occur while something is playing but this playback checking was added for optimal Kodi client performance.
Beginning with versions 1.1.6.6 and 2.1.6.6 of the Mezzmo Kodi Addon you also have the ability to sync all or portions of your Mezzmo library to Kodi with the Mezzmo Selective Sync Tag option. Selective synchronization can be useful when you are running multiple profiles on a Kodi instance in native mode and want each profile to have a different view of your Mezzmo library or if you want different views across Kodi devices. The Mezzmo Selective Sync Tag option is found in the Native Mode settings in the addon.
The synchronization process has three modes of operation:
Real Time - When running in GUI mode and real time sync is enabled (the your Mezzmo library will sync to your Kodi database as you browse your library. If Auto Background Sync is enabled real time sync will be disabled when the Mezzo Kodi addon detects that Mezzmo and Kodi are in Sync.
Background - The background sync process begins when the Mezzmo Kodi addon is started and then runs every hour. It detects when a video or music is playing and will skip syncing for that period. Hourly it will sync only the 400 newest items in your Mezzmo library or the 400 newest items and 1/6th of your library (depending on the Mezzmo Background Sync setting). The background sync process also does a full daily sync where it will rebuild your Kodi database completely between midnight and 6AM. This is how content which is deleted in Mezzmo is removed from Kodi. This also ensure your video database is in pristine condition.
On Demand - At any time you can trigger a full rebuild of your Kodi database by selecting FULL SYNC in the Kodi DB clear Mezzmo data on startup setting in Content Control. When FULL SYNC is selected the Mezzmo Kodi addon will first clear the Mezzmo data in your Kodi database and then perform a full synchronization. You will get a notification along the way and at successful completion (see below). If you cancel out during the sync process the background process will complete the remaining sync as part of the hourly process.
Recommendation: While the overall sync processing can sound confusing at first, like almost everything in the Mezzmo Kodi addon there is an easy button. I recommend keeping the Auto Background Sync setting enabled in Content Control and it will handle everything automatically.
Full Sync interim notification
Full Sync completion notification
Mezzmo Background Sync Logging
All sync logging (background and on demand ) addon activities are logged to the Kodi.log file and to the Mezzmo Kodi addon logging utility, for easy searching and CSV exporting.
Managing Kodi Upgrades
Managing Kodi upgrades for traditional Kodi usage has sometimes been somewhat complicated requiring NFO file exports, backing up / restoring data and much more. This is especially true going from Kodi 18 to 19, where many addons broke and many folks did a full rebuild of Kodi. With the Mezzmo Kodi addon, the Kodi upgrade process is seamless and easy to do, regardless of which version of Kodi you are starting with or going to. Whether you are rebuilding your Kodi client to the new version or upgrading in place, the Mezzmo Kodi addon process is simply to have the proper version of client installed. This process is the same whether you are upgrading or downgrading Kodi. Afterwards the Mezzmo Kodi addon takes care of the rest automatically via the background sync processing described above.
There are two versions of the Mezzmo Kodi client:
Once the proper version of client is installed, it automatically takes care of synchronizing the Kodi database with Mezzmo and performs automatic upgrades of the Mezzmo Kodi addon, as long as automatic updates are enabled. If you do rebuild your Kodi client you will want to check the Mezzmo Kodi addon settings, especially if you've made change to support native mode. If you do an upgrade in place, from say Kodi 18 to 19, just install the new version of the Mezzmo Kodi addon and your settings should be maintained.
You also have the flexibility of mixing and matching your versions of Kodi with Mezzmo. If you are doing a staged upgrade you can run clients with Kodi 18, 19, 20 and 21 all at the same time as you upgrade each client individually. If you have problems and need to rollback to a prior version of Kodi, no problem. Just have the right version of the Mezzmo Kodi addon installed and it will automatically figure out the rest. I challenge you to find this level of ease and simplicity with another solution.
Notes
- The Kodi music database is currently not supported by the Mezzmo Kodi addon so traditional approaches are needed to handle Kodi upgrades and rebuilds. If there is enough interest, synchronization of the Kodi music database can be added to the Mezzmo Kodi addon. This limitation only impacts Kodi native mode operation. The rich powerful tools of the Mezzmo server handling music are all available via the Mezzmo Kodi addon GUI mode.
- The Mezzmo Kodi addon performance stats and logs are not synchronized with Mezzmo and can be lost with a full Kodi client rebuild. They will be rebuilt over time but if you want to keep the old logs and statistics then copying the \userdata\Database\Mezzmo10.db file from the old Kodi instance to the new one is required.
DLNA Features
Mezzmo and Kodi both support the Digital Living Network Alliance (DLNA) standards which denotes and simplifies how various DLNA media devices can interoperate. Some main components of the DLNA standard are:
DMP - Digital media player. A device which can play media. DMS - Digital media server. A device which stores and serves up media content DMC - Digital media controller. A device which sends command and controls media being played. DMR - Digital media renderer. An expanded DMP which can reproduce content and often includes a DMS.
DLNA devices can often perform multiple of these capabilities depending upon how they are configured. For example Kodi is a DMP / DMR and Mezzmo a DMS / DMC depending upon configuration and how you utilize them.
One key capability of Mezzmo and Kodi working together is the DLNA Play-To functionality. In this example the Mezzmo server will send music to Kodi to play via the Mezzmo DLNA Play-To functionality of its web interface. I use this for a headless whole home audio setup. The first thing is to enable UPnP (UPnP is a network protocol used by DLNA for devices to communicate) DMP functionality in Kodi. This is done within the Services --> UPnP settings. Enable the first and last options, Enable UPnP support and Allow remote control via UPnP.
Next simply go into the Mezzmo web interface a browse your media.
Select something to play and click on the cast icon at the bottom.
This will bring up the target selection list so you can choose where to send the music. In this case I am interested in Homeaudio. If I select Homeaudio the selected music will be sent from Mezzmo to this Kodi instance acting as a DMP. This is a simple example of how, via DLNA, you can easily have your media devices interoperate.
In addition to the web Interface the DLNA Play-To functionality is available via the Mezzmo Android application and the Mezzmo Management GUI below with additional controls for the volume, FF/RW etc...
Managing Storage
If you are like me your storage needs have grown over time as your media library has increased. Mezzmo offers a number of key features and tools to simplify this process without resorting to things like rebuilding your entire library and such. Before discussing the features and tools, I have some suggestions on how to organize your media. Setting up a flexible structure will make managing your library much easier in the future.
My recommended structure is to separate media types and don't place media folders at the root level of your storage. Here's an example of the format I use:
Audio
e:\audio library\audio books e:\audio library\christmas e:\audio library\country e:\audio library\jazz etc....
Video
e:\video library\action e:\video library\comedy f:\video library2\mystery f:\video library2\science fiction g:\video library3\television etc ....
I also suggest placing your Mezzmo database separate from your media libraries, even if in a different folder on the same physical hard drive. Mezzmo does this by default. I don't suggest changing this but Mezzmo does offer a tool if you need to move your Mezzmo database but I don't generally recommend it. I have a very large library of 18,000 videos and 10,00 music files and my Mezzmo database is 15GB in size, including all artwork. My suggestion is when you setup Mezzmo just allocation enough space for your Mezzmo database and artwork. Then don't touch it. It is your media files which will grow quite a bit.
This logical grouping approach makes it easier if I want to make a change to a subset of my library including things like adding more storage, changing the path etc. The folders become important when you leverage the Mezzmo Kodi addon in GUI mode because you'll be browsing the logical folder structure you built, as well as the various smart, active and similar playlists you create. In native mode it is less important because your Mezzmo library is synchronized to your Kodi library. You also no longer need to manage sources, path tables, SMB shares and similar on your Kodi clients. You manage your library under Mezzmo and the Mezzmo Kodi addon handles updating your clients.
Adding Capacity
Mezzmo supports a broad set of underlying storage methods including internal drives, external drives and Windows shares from other systems. A Mezzmo folder can be used to combine multiple multiple storage locations into a single Mezzmo folder for your library. This can be an easy way to add capacity without replacing hard drives. For example, if you have videos on multiple NAS systems and you begin to run our of storage on one. You can easily add the second NAS system to your Mezzmo folder. You can add as many as you want and they can be a mix of storage types (i.e. internal and external, internal and NAS etc..). For more details on merging folders see here. Adding a new logical folder for more capacity is exactly the same. Just create the new media folder on your underlying storage and then add it to an existing Mezzmo folder.
Another common thing you might want to do is replace a hard drive for more media storage. With Mezzmo all you need to do is copy your media from your old hard drive to your new one. As long as you aren't changing any storage paths, drive letters or similar then nothing else is required. Again, you won't need to do anything in Kodi. If you do want to change the drive letters then see the next section below on leveraging Mezzmo's tool to update folder locations.
Moving Media Locations
Have you ever struggled to move your media in Kodi without having to rescrape your library for the items which moved, as well as deleting the old media files from your library ? This is partially due to the reliance on sources and not having an internal tool to help you make a bulk path change. Mezzmo provides a tool if you want to move portions of your library. As with any of these types of operations, it is highly suggested that you backup your Mezzmo database before starting.
In this example the media in d:\videos was moved to \NAS-DRIVE\media\video_files. The Mezzmo change path tool will update the Mezzmo database for you including any media files and associated artwork (i.e. poster.jpg, folder.jpg etc..) files. You won't need to do anything in Kodi.
Performance
In order to have an effective media sharing service, the ability to serve library content to multiple clients simultaneously with no stuttering, skips or similar is extremely important. As is supporting multiple audio / video codecs, container formats, subtitles and versions of Kodi client. This is in addition to the standard things like automatic sharing of play counters, bookmarks / watch statuses, library content, playlists, trailers, artwork, library metadata etc..
Here's a stress test I ran on my setup running 6 streams to 3 difference versions of Kodi (18, 19 and 20) all at the same time. The clients were a mix of LibreElec, OSMC and Windows running on an Intel NUC, Vero 4K+, Raspberry Pi and a PC. One of the clients was even a Kodi 18.9 LibreElec virtual machine running under Windows Workstation. The source content had 3 full bitrate 4K UHD streams with HEVC encoding with Dolby Atmos and TrueHD audio. The other 3 streaming were all full bitrate Blu-Ray 1080P streams with a mix of container, video codec and audio formats.
Here's the network interface on the server while all 6 were running. All ran perfectly with no playback issues, no issues with FF/RW or similar. 2 of the devices were connected via wireless and 4 were connected with Ethernet.
In order to really stress the system I also had a 10TB file copy running on the Mezzmo server in the background which is why you see high disk utilization on drives G and F. Content to the 6 streams was being served off of drives E, F and G. My goal was to attempt maximum stress on the Mezzmo server.
Endpoint Devices
Kodi can run on a multitude of endpoint devices and operating systems. These various environments have a different performance characteristics and code support for hardware decoding. This table is a representation of devices which I have tested with Mezzmo and the Mezzmo Kodi addon to help provide same relative performance information. The exact performance for these devices in your environment may be different.
Check back for updates.
Device | Processor | OS | HW Decode | Display 150 items | Full sync |
---|---|---|---|---|---|
Intel NUC 8i7BEH | i7-8559U 4C/8T | LibreElec | MPEG2/4, h264, h265, | 108 items/sec | 4m 50s |
AV1, VP8/9 | |||||
Desktop Computer | i7-4790k 4C/8T | Windows 10 | N/A | 100 items/sec | 8m 39s |
Desktop Computer | AMD AI-9 HX 370 | Windows 11 | N/A | 96 items/sec | 6m 12s |
Raspberry Pi 4 | BCM2711 ARM 4C/4T | LibreElec | MPEG2/4, h264, VC-1 | 52 items/sec | 18m 43s |
Raspberry Pi 5 | BCM2712 ARM 4C/4T | LibreElec | h265 | 106 items/sec | 7m.45s |
Vero 4K+ | S905D ARM 4C/4T | OSMC | MPEG2/4, h264, h265, VP9 | 59 items/sec | 18m 11s |
Vero V | S905X4 ARM 4C/4T | OSMC | MPEG2/4, h264, h265, | 71 items/sec | 14m 20s |
AV1, HDR, VP9, VC-1 | |||||
Beelink N100 | Intel N100 4C/4T | LibreElec | MPEG2/4, h264, h265, | 105 items/sec | 4m 4s |
AV1, VP8/9 , VC-1 | |||||
Beelink SER6 | AMD R7 5800H 8C/16T | LibreElec | MPEG4, h264, h265, | 104 items/sec | 3m 42s |
AV1, VP8/9 , VC-1 |
Bold sync times indicate SSD storage for Kodi database and local artwork. The 150 items are in a random unsorted Mezzmo Smart Playlist. Sorted standard playlists are typically much faster.