* Added support for the new H.266 VVC (Versatile Video Codec) format. LAV Filters v0.79 is required for decoding.
Please note that VCC support is experimental and not fully optimized. To properly support VCC in resolutions above 1080p would require hardware accelerated decoding which is not currently supported by any GPU or CPU.
* Added Equalizer and Pre-Amp support for the libVLC media engine, please note that the values work a bit differently when compared to the DirectShow Equalizer values.
* Preferred Audio Device switching (Shift+"A") now works with libVLC. You can define you preferred devices in the advanced options dialog's libVLC section.
* New Setting (Adv. Options / Interface / Playlist) that allows you to play the next media file in the same folder when using the Del key to erase the currently playing media (or using the home theater delete option). You can see me code this feature here: https://www.youtube.com/watch?v=bs2QS5gd4VU
* New Setting (Adv. Options / Interface / On Screen Display / Actions) that allows to force the OSD Actions (Play, Pause, Volume, etc) to appear on a monitor of your choice. You can see me code this feature here: https://www.youtube.com/watch?v=bs2QS5gd4VU
* To support IPTV providers that require a specific user agent text to access automated downloads, you can now set a custom User Agent for each IPTV auto update entry (for both playlists and EPGs downloads).
* New "Configure" button next to the Video Renderer selection drop-down list (Adv. Options / Playback / Video).
* New "exMediaVidRender" extended function that allows you to switch the media video renderer at any point. As an extended function, this functionality can be accessed through the command line or TCP/IP APIs. You can see me code this feature here: https://www.youtube.com/watch?v=hr3FmIi8crI
* Selecting a URL based IPTV playlist or EPG entry in the options dialog, now displays the full text in a hover-hint.
+ Using Zoom Player to browse the web (for example, using the "/browse" command line parameter) now uses Microsoft's Chromium based WebView2 browser engine and only falls back to the old Chakra engine is WebView2 is not installed (available on the install center, comes preinstalled in Windows 11). You can see me code this feature here: https://www.youtube.com/watch?v=bs2QS5gd4VU
- The Play History editor and fullscreen navigation interface can now re-play files with a path longer than 255 characters.
- The playlist entries in the IPTV stream list drop-down would get duplicated after updated playlists were downloaded in the background.
- Pressing Alt+S to bring up the subtitle component's configuration dialog did not show the correct window title in some cases.
- Pressing Shift+"B" to disable the subtitles caused the subtitles to remain enabled when reloading the media, even if the setting to restore the previous subtitle track was enabled in the advanced options dialog. You can see me fix this code here: https://www.youtube.com/watch?v=bs2QS5gd4VU
- Fixed a really weird stability issue with the IPTV window that could have caused a freeze when trying to close the window and stream logos to never appear.
- Detaching the control bar, moving it to another monitor and then hovering with the mouse pointer over the timeline area would show the current position indicator window on the wrong monitor.
- With the "Show all filters in Stream Selection sub-menu" setting enabled, the right-click's "Stream Selection" section would show a small cosmetic glitch (an empty section).
- Setting the YouTube Channel media library plugin's "channel list strategy" to "Use 'upload' playlist" did not list the videos returned by YouTube in the correct air date order and the air date was not displayed at all.
* The IPTV dialog now allows you to filter the stream list by playlist name. You can see me code most of this feature on this live-stream: https://www.youtube.com/watch?v=nSjr8ExbZmM
* You can now define custom names for IPTV playlists and Electronic Program Guide sources (Adv. Options / Playback / IPTV). You can see me code this feature on this live-stream: https://www.youtube.com/watch?v=nSjr8ExbZmM
* New Setting (Adv. Options / Playback / History) that allows you to hide the "Recent" items section from the Windows taskbar button's right-click menu.
* New Setting (Adv. Options / Interface / Mouse / Settings) that allows you to specify the number of seconds to seek when using the mouse wheel while hovering over the timeline area. The default seek distance is 5 seconds.
* New label for the skin selection dialog to make it clearer that you can scale the skin resolution by a factor of 100% - 800%.
- Zoom Player's "Export Settings" function did not include 4 setting files: 1. Media Favorites (files and URLs). 2. Media Library TAGs. 3. Media Library Collections. 4. IPTV Favorites.
- Fixed a bug introduced in v19 beta 3 that prevented the mouse wheel from scrolling through the timeline.
* The playlist editor has received support for multiple playlists that you can instantly switch between. Multiple playlists are loaded in a background thread so even if you use massive playlists with 1000's of items, it should not have much of an impact Zoom Player's load and close time performance.
Press the new multi-playlist button on the playlist editor (top left corner) to add the current playlist, a playlist from a file or manage the multiple playlists (remove, rename, reorder).
* New "Cast to Device" feature on the main right-click menu and available as a keyboard shortcut (Shift+"/") that allows you to Cast the currently playing media to a Chromecast compatible device. This feature does requires libVLC is installed but does not require you to play the current media with libVLC (the playback engines automatically switch as the media is casted).
* You can now use libVLC to cast the playing video to supported ChromeCast devices. All you need to do is open "Adv. Options / Playback / libVLC" and scan for the ChromeCast device. Any content played through the libVLC engine will now display on the selected device. Please consider that it can take a few seconds longer to open media files for casting.
* MPC-VR can now be selected as a Video Renderer for media playback. It is not fully supported (subtitles, pixel-shaders and other unique features for the video renderer will not work presently.
* New Setting (Adv. Options / Playback / Control) that allows you to rollback the current play position when resuming playback from the Pause state. This feature is useful if you have an external receiver that requires a few seconds to restore the audio when playback resumes.
+ If you previously used as Custom Video Renderer for media playback, you must re-select the custom option (Adv. Options / Playback / Video).
+ Using the Next/Previous Track features now ensures the newly loaded track is visible in the playlist editor.
+ Cleaned up some dialogs that had elements that were too close together, especially under Windows 11.
- Scraping TheMusicDB should work once again.
- When Zoom Player's DSP filter is unable to connect to the audio renderer, the DSP filter is now removed so Smart Play will not fail (fallback to Microsoft's method of choosing components can be unstable), increasing overall stability for badly authored media files.
- Fixed a bug that caused the media library background image to be overlaid twice with a slight offset, slowing down opening a folder in the media library a little bit and causing visual ghosting effects (was really hard to see with the default background image).
* Running Zoom Player on a fresh install will now asks if you would like to enable "Performance Mode". Choosing "Yes" does two things: 1. Enables D3D11 hardware accelerated video decoding in LAV Filters, a requirement for smooth 4K video playback. 2. Sets the Video Renderer to MadVR, enabling HDR video support, high quality video scaling, hardware accelerated subtitle rendering and smoother motion.
Both settings can be modified in the advanced options dialog: Adv. Options / Playback / Video
* A new "Help" section has been added to the right-click menu. The new help section can quickly bring up the keyboard shortcut list or quick usage guides for many of Zoom Player's popular interfaces.
These toggles still require that you re-open the playing media to take affect.
* The right-click menu has been extended with a new "Help" section. The help section provides quick access to the keyboard shortcut list and quick usage guides for most of Zoom Player's interfaces.
* The Play History dialog (Alt+"H") has gotten a face-lift, an option whether to clear the playlist when playing from history, a button that automatically sets the column sizes based on the current window size and you can drag the play history window with the mouse by clicking in any empty space.
* New "/infojson" command line parameter that can be used to query a running instance of Zoom Player for information. The results are returned in the windows clipboard as a UTF8 encoded JSON string.
This feature can be used in combination with Window's Powershell to monitor and control Zoom Player entirely through the command line, without requiring a TCP/IP connection to access the more advanced API.
Special characters are encoding using standard JSON character encoding.
If no additional parameters are specified, all fields are returned. To get specific results, you can use a combination of one or more of the following: PlayState - A number representing the current play state where 0 : Closed 1 : Stopped 2 : Paused 3 : Playing
MediaName - UTF8 string containing the playing file name or URL. Title - UTF8 string containing the playing media's title. Position - The playing position in seconds. Duration - The playing duration in seconds. PlayIndex - The current playlist play index. Playlist - UTF8 string containing the current playlist, each media entry is specified as a part of a JSON array. AudTrack - The current audio track number. SubTrack - The current subtitle track number.
Example to get the playing media name, title, duration and position: zplayer.exe /infojson:MediaName,Title,Duration,Position
+ The keyboard shortcuts list (F1 keyboard shortcut) is now a single dialog which opens much faster and is no longer a part of the options dialog which takes longer to open.
+ The "Toggle Control Bar" right-click menu option has been re-located to the menu's root level.
+ If the playing media has only one audio track, it will no longer be listed in the Stream Selection section of the right-click menu.
+ If MadVR is selected as the Video Renderer without being installed, Zoom Player now notifies you and falls back to the EVR renderer.
- A bug caused some information dialogs to show the information in the window's title and the actual title in the windows body.
- Fixed several libVLC related bugs, if you're still seeing issues, please let me know on Zoom Player's Community: https://reddit.com/r/zoomplayer
* Zoom Player has integrated libVLC, the media engine used by the VLC media player. This integrating means that several new features that were unique to VLC are now available in Zoom Player, leveraging the reliability of VLC with Zoom Player's powerful and customizable user interface.
In theory, Zoom Player's default choice of Microsoft's DirectShow media engine is superior to libVLC in a lot of ways. DirectShow is a lower-level, allowing me to develop unique features that are impossible to do with libVLC. At the same time and due to it's complexity, there may be cases where libVLC can be more reliable than DirectShow.
By default only BluRay discs play using libVLC due to libVLC's support for playing BluRay discs with menus. However, since this is Zoom Player you're reading about, the ultimate choice of which engine to use is up to you!
You can enable libVLC specifically for BluRay discs, IPTV streaming, media playback (by file extension) and open-ended streaming (by URL, for example "youtube") under the new advanced options section (Adv.Options / Playback / libVLC).
To use libVLC you must either install the latest version of the 32bit VLC player or install libVLC from the install center (it does not conflict with existing VLC installations).
Most Zoom Player features are compatible with the new media engine:
- BluRay Playback with Menus! Enabled by default, opening a drive, folder or the "index.bdmv" file begins BluRay playback. Menus are navigated using the standard navigation keys (up/down/left/right Arrows + Enter keys). The same limitation that apply to playing BluRay discs in VLC applies when using the libVLC media engine in Zoom Player, along with any glitches.
This means that you must have Java installed for the BluRay menus to work and that playing encrypted discs will not work by default. As for the glitches, I encountered cases where 4K BluRay videos can freeze and verified that the same issue happens in the original VLC player.
- Aspect Ratio Controls: Zoom Player's powerful aspect ratio controls are fully supported.
- Subtitle Display: Other than re-positioning the subtitles on-screen, most of Zoom Player subtitle features should work great with libVLC.
- Add Subtitle Track on Drag & Drop / Add Sub file: You can easily add subtitle files by drag & dropping files on Zoom Player's window or by opening a subtitle file after the video is loaded.
- Subtitle Synchronization Adjustments: You can adjust subtitle synchronization through the standard keyboard macros (Alt+Ctrl+"+" and Alt+Ctrl+"-" on the keypad).
- Color Controls: Brightness, Contrast, Saturation and Hue color controls are available.
- Audio Framework Device Selection: libVLC is pretty flexible in it's audio device selection offering three different frameworks (MMDevice, DirectSound and WaveOut). Zoom Player makes it easy to choose the framework that works best for your PC.
- Audio Track Selection & Cycle: Easily select and cycle between multiple audio tracks.
- Audio Synchronization Adjustments: You can adjust audio synchronization using the standard keyboard macros (Shift+"+" and Shift+"-" on the keypad).
- Virtual Video Editing with BluRay Movies with Menus: The scene cut feature that allows you to virtually edit videos should now be compatible with BluRay titles with Menus when using libVLC. However, this feature has not been heavily tested so please let me know on reddit if it's not working as expected.
- Play History (position, audio track, subtitle track): Zoom Player's play history feature which can save and restore the last play position, active audio, subtitle tracks and more is fully compatible.
- Play Rates (fast play, slow motion): Fast Play and Slow Motion might even work on more media formats than supported by DirectShow, give it a try.
- Load Embedded Chapters (Bookmarks): Using libVLC, Zoom Player can read embedded chapters or bookmarks from both media files and BluRay titles.
- Load External Audio Tracks for playing video: Full support for one or more external audio tracks.
- Play Next Frame: The next frame feature is fully supported.
- Screenshot: The screenshot keyboard macro (Alt+"F") is fully compatible with libVLC with the exception that the screenshot file format is limited to ".png".
+ And since this is just a beta, there's more to come!
* New "Pause closes unseekable live stream (otherwise ignored)" setting that controls if Zoom Player closes a live stream when pausing or if the pause is ignored. Previously the hard-coded default was to close the stream, the new (configurable) default is to ignore the pause command.
* New button on the IPTV interface to quickly open the IPTV settings page in the advanced options dialog.
+ To support chapters (bookmarks) using the VLC Media Engine, I had to rewrite nearly all of Zoom Player's code related to managing chapters. Please let me know if something broke. As a bonus, you can now use emojis and other special Unicode characters in the chapter names.
+ Media chapters with no titles will now show a "no title" title.
+ The IPTV stream list group layout (open/close) is now saved and restored even after closing Zoom Player.
+ The Custom Action button's hint when hovering with the mouse now lists the assigned function and not just a general "Custom Action".
+ Cleaned up a few of the advanced options dialog pages.
- Trying to switch to the next audio track no longer tries to set an audio track if there is only one track present (caused muted audio for a second or two).
- Failing to play an IPTV stream will no longer highlight that stream as the active stream.
- You should no longer be able to erase embedded chapter entries (it didn't really do anything).
- Fixed all sorts of goofs that were possible through the chapter editor.
* New IPTV color-highlighting for the playing channel and program (on channels that support archive playback). You can tweak the colors in the options dialog.
* New Setting (Adv. Options / Playback / IPTV) to hide outdated archive channel EPG entries that are too old to stream.
* New Setting (Adv. Options / Interface / Playlist) that specifies the default Playlist Load / Save folder. If nothing is specified, the standard windows supplied path is used.
* New Setting (Adv. Options / Interface / Playlist) that controls whether Zoom Player should ask you for a confirmation when you clear the playlist.
* New Setting (Adv. Options / Interface) to control whether text that has no room to display fully starts scrolling. Currently this only applies to the main window's title text.
+ The IPTV EPG files are now loaded and parsed in a background thread. This means that the interface should open quickly and you can close it even before the EPG data is finished parsing so the entire interface should feel faster.
This change should also fix issues caused when Windows thinks Zoom Player's window has become unresponsive while parsing EPG data (for example, on some systems I got reports that the IPTV window would lose it's "on top" value).
- Trying to play a video with an external audio track, for example: "myvideo.mkv" and "myvideo.mp3" in the same folder with the "Load External Audio tracks" setting enabled, resulted in a lot of instability.
I rewrote the whole interface and now it's much more stable. Please note that this feature also requires Zoom Player's DSP filter to be enabled (Adv. Options / Playback / Audio - Enable Internal DSP Filter).
- The Playlist Editor's "Load Playlist" feature accidentally listed media files instead of playlists by default.
- The Folder Browser dialog should no longer appear partially off-screen or hidden by the task bar.
- Fixed an IPTV EPG Filtering issue where entering a value into the filter box and then switching to another channel would make it impossible to clear the filtering value.
- Under some conditions, the play history fullscreen navigation interface could show a value of "00:00:-1" for the last play position.
- When using a non-default font, the play history last play position could mess with the alignment of the file/url.
- IPTV Logo caching from EPG files did not work properly for some entries based solely on channel name.
- Playing too many broken URLs or files is sequence could have resulted in play history entries being generated even though nothing was played.
- Reduced the chances of showing IPTV EPG information for the wrong channel when using badly crafted playlist or EPG sources.
* Opening the IPTV interface for the first time now offers you the option to automatically download free, child-friendly, publicly available IPTV channels from around the world through the Free-TV project: https://github.com/Free-TV/IPTV
* Using the "Play Stream" button on the IPTV interface will no longer try to play an EPG program and will always try to play the channel live.
* New "Play Program" button on the IPTV interface. The "Play Program" button is used to play archived IPTV programs. If the channel does not support archive playback or tif he selected program is no longer (or not yet) archived, the "Play Program" button will remain disabled.
* New "Add Free Channels" button (Adv. Options / Playback / IPTV) that adds free, child-friendly, publicly available IPTV channels from around the world through the Free-TV project.
* You can now control outdated EPG programs background colors (Adv. Options / Playback / IPTV), making it easier to distinguish which programs have already aired.
* Support for more IPTV Archive playback schemes.
* New Setting (Adv. Options / Playback / IPTV) to specify the symbol used to highlight archive channels in the IPTV stream list.
- No longer marking IPTV channels as archive if their "catchup-days" value is "0".
- That Playlist Editor's search box did not support unicode characters.
- You can now use Ctrl+V to paste Unicode text into the Playlist Editor's search box (including special characters such as Emoji).
- Fixed a bug that could cause Zoom Player to freeze when trying to play YouTube URLs containing a space character after the URL.
* Support for IPTV Archive playback. For channels that support it, double-click the program to start playing it. You can easily identify Archive supporting channels by the icon next to their name.
There are multiple implementations of IPTV Archive support and I did my best to make sure all were covered, but if something is not working as intended, let me know on Zoom Player's sub-reddit.
* New IPTV Setting (Adv. Options / Playback / IPTV) that clears the playlist before streaming. This setting is enabled by default, disabling it adds the channel to the playlist and play it without clearing the playlist.
* New Setting (Adv. Options / Interface / Playlist) to prevent embedded playlists (playlist files within playlist files) from loading when Zoom Player loads a playlist. This setting is enabled by default as embedded playlist can lead to unfortunate infinite-loops cases and other stability problems.
+ Playing media from the Advanced Playlist Control now ensures the newly played item is visible in the Playlist Editor.
+ I Didn't like the behavior of the new setting (enabled by default) that automatically hide the control bar when clicking the video area. What annoyed me was that it was canceling my action, so if I wanted to pause the video, it would ignore the pause action and just hide the control bar. Now I adjusted this feature to hide the control bar and not block the intended action.
- Fixed a bug that caused the IPTV caches to get wiped clear when Zoom Player was pruning the media library thumbnail and meta-data cache.
- Playing an entry from the Advanced Playlist Control interface no longer loses the entry's selection.