* MPC-VR can now be selected as a Video Renderer for media playback. Some of this video renderer's features are not yet supported (e.g. pixel-shaders). But subtitles and Dolby Vision support do work thanks to the help of Chetan Ullal and his work on the MPC-VR Subtitle Helper component: https://github.com/Chetan-Ullal/MPC-BE-SubtitleHelper/releases
* Added support for 2 more IPTV archive playback modes.
* The IPTV EPG (Electroic Program Guide) will now add EPG "No Info" entries for missing time blocks, allowing archived playback for these time blocks. You can see me live coding this feature here: https://www.youtube.com/watch?v=mQldufSuJfU
* Enabling IPTV's "Safe Mode" now hides the IPTV settings button shortcut from the IPTV interface.
* New "exSetAudioBalance" extended function (not assigned to any key) that can be used to specify an exact balance percent value from "-100" (left) to "100" (right). A value of "0" resets the balance changes. Please note that using this function will not update the balance widget in the user interface, only the actual audio balance on the output device.
* New setting on the media library's YouTube plugins (disabled by default) to filter videos shorter than a specified number of seconds with a default value of 62 seconds (to hide shorts). You can see me live coding this feature here: https://www.youtube.com/watch?v=r7V_F62j4C4
* New "Activities" search strategy option on the media library's YouTube plugins. I was hopeful the "Activities" entry point into YouTube's DATA v3 API would provide more reliable results, but it seems limited to uploads in the last 2 months and some uploads will simply not show up.
+ The media library's YouTube Playlist plugin now retrieves the playlist, channel name and thumbnail automatically. Since the playlist image usually reflects the last uploaded video, the plugin will use the channel's thumbnail for the playlist instead, but you can disable this behavior in the plugin's configuration dialog.
Previously you had to manually specify the playlist name and a generic thumbnail was used.
+ The options window's search feature does a better job at highlighting the selected element from the search result.
+ Opening the play history dialog (Alt+"H") for the very first time now uses reasonable initial values for the columns.
+ The default mouse wheel function on new install is now set to volume adjustments instead of the previous default that Zoomed in/out.
+ The "Please upgrade" dialog now shows the current Zoom Player version.
- Fixed a bug introduced in one of the v19 betas that prevented a URL from being replayed through the play history interfaces.
- When creating a media library YouTube channel with an "@" channel name prefix, for example "https://www.youtube.com/@zptechnology", YouTube can return multiple channels if they share the same name. The fix now checks all the channel to make sure their customURL field matches the name in the specified URL.
- The 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 did not work correctly, showing the OSD on the same monitor as the player window instead.
- Using Shift+"/" to Cast a video using libVLC accidentally forced all the next videos to play using the libVLC media engine until Zoom Player was restarted.
- Fixed a few cases where changing the current play position was not shown correctly in the active playlist entry.
- When playing media of unknown video resolution, the timeline will no longer display "0x0" if you enabled resolution display on the timeline.
- Playing audio-only media files using the libVLC engine did not show the audio mode TAG display. Please note that audio-only media detection using the libVLC engine is based on the media file's extension, for example ".mp3" or ".wav".
* 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.