-
Posts
580 -
Joined
-
Last visited
-
Days Won
5
CYCho last won the day on November 29 2024
CYCho had the most liked content!
About CYCho
- Birthday 05/13/1943
Profile Information
-
Location
Seoul
-
Interests
media player
Recent Profile Visitors
4,271 profile views
CYCho's Achievements
-
MattyD reacted to a post in a topic:
WinRT - WinUI3
-
@MattyDMany thanks for your hard work on WinRT. Your player works beautifully on my desktop. I could play a 3840x2160, 60 frames/sec video without a hitch. The keyboard accelerators worked fine, too. Best regards, CY Cho
-
CYCho reacted to a post in a topic:
WinRT - WinUI3
-
As I mentioned in my first post, the primary goal of migrating zPlayer was to support high-resolution 4K video playback, which was a limitation in the previous winmm.dll version. To achieve this, I’ve been integrating libmpv-2.dll. However, I realized that while mpv handles modern 4K codecs brilliantly, winmm.dll is still very convenient for legacy formats like CD audio (.cda) and MIDI files. The Hybrid Solution: Instead of abandoning the old engine, I’ve implemented dual playback engines in parallel. libmpv: Handles 4K/HD video and benefits from seamless gapless playback (pre-buffering the next file). winmm.dll: Handles MIDI and CD tracks where it treats .cda files as regular audio data. I managed to coordinate these via two main While loops. It took some effort to ensure smooth transitions between the two based on file extensions, but so far it seems to be stable. I've updated the attachment in the first post. Please note that some UI buttons are still being mapped to the new logic. You can use "Load Files" button to try different types of files. Currently the compiled version of this player shows CPU usage of 3.5 ~ 7.5% for a 4K video (3840 x 2160, 32048kbps, 59.94fps) on my AMD Ryzen 5 3400G with Radeon Vega Graphics (3.70 GHz) desktop with 8GB of RAM. I’d love to hear your thoughts on mpv in general and the idea of my hybrid approach.
-
bladem2003 reacted to a post in a topic:
AutoIt 4K MPV Player
-
mutleey reacted to a post in a topic:
AutoIt 4K MPV Player
-
argumentum reacted to a post in a topic:
AutoIt 4K MPV Player
-
I’ve pushed a new update to fix the random crashes occurring during file transitions and startup. The fix involves a "warm-up" routine for the libmpv-2.dll and better management of Adlib commands during file changes (including a 1.5s buffer before the end of a file to prevent command overlaps). It’s been stable in my tests so far—if you see any more crashes, please let me know! Added features: 1. "A" hotkey toggles KeepAspect mode instantly if pressed while the video window is active. 2. Using the new "✅" icon in the controls, you can lock your current window size and position as your default. Once clicked (the icon turns red), the program will remember that layout for all upcoming videos. The height may still adjust automatically based on the KeepApect settings.
-
bladem2003 reacted to a post in a topic:
AutoIt 4K MPV Player
-
Yes, they are Unicode characters available on internet sites. I came up with my set of symbols after many trials and errors. Copy and paste was easier than using ChrW().
-
mutleey reacted to a post in a topic:
AutoIt 4K MPV Player
-
As I get to know more about mpv, I am more determined to migrate my zPlayer from winmm.dll to libmpv-2.dll. It offers so many functions that it will make zPlayer do many more things more easily than the legacy winmm.dll. One feature I found fascinating is "observe" function. In winmm.dll, I had to run an adlib to "poll" the current position of a media to update the progress bar. I had to pay attention to the frequncy of adib for fear of overloading the CPU. In mpv, however, if I set the "observe" function once in the beggining of the program, it automatically saves the current position in a memory pointer as soon as it is changed. I can just read the memory at whatever frequency I want. The other function I found interesting was equalizer capability. I can make a graphical equalizer with silders for several bands if I want to. But considering the overall simplicity of zPlayer, I chose to adopt several preset audio filters instead. An update of the code is uploaded in the first post above, with the following features added or fixed: 1. Screen shot function: pressing "s" key any time while the video window is active will take a screen shot of the video image and save it as a file. 2. Display of album art for audio files 3. 7 different audio modes: Normal, Deep Bass, Crystal Clear, Pop/Rock, Cinema Voice, Midnight and Speech/Podcast 4. Option for the video to fill the GUI or keep its original aspect ratio 5. Changed the way the player gets current position. 6. Previous codes produced an error when loading a file-path containing UTF-16 unicode characters. I found that mpv accepts only UTF-8 characters, so I rewrote _mpv_command() function to convert unicode characters to UTF-8 binary before passing them to DllCall(). For now, the option for album art, audio modes and aspect ratio were hard coded in the beginning of the program. When zPlayer gets fully migrated, they will become a part of Options where they can be changed dynamically. Edit: I forgot to mention one more feature above: the ability to synchronise the audio volume and mute state with the Windows Volume Mixer for this app. Now, adjustments to the volume and mute state through the Volume Mixer are reflected in the audio controls of this player, and vice versa.
-
CYCho reacted to a post in a topic:
AutoIt 4K MPV Player
-
mutleey reacted to a post in a topic:
AutoIt 4K MPV Player
-
Three features were added in the latest file (AutoIt_4K_MPV_Player(20260327).au3): 1. Playback speed can now be adjusted in 0.1x increment by Ctrl+Alt+[ or Ctrl+Alt+] hotleys. It can be reset to default 1.0x by Ctrl+Alt+{backspace] hotkey. 2. The video can be paused/resumed by a single click on the image. 3. The full screen mode can be turned on/off by doubleclicking on the image or pressing F11 key. The full screen mode can be turned off also by pressing Esc key.
-
Through tests with many different options set, I could shorten the "seek" time to 0.5 seconds, which is so small that we don't need to worry about the audio interruption. It would be greatly appreciated if you could let me know if there were a less intrusive way to get the desired result. Func _RefreshVideo() ; Adlib to give a heartbeat to the video renderer every 5 minutes ; Check if the center of the video window is visible on the screen ; Position of video window ($aPos) is updated by WM_WINDOWPOSCHANGED in real time Local $tPoint = _WinAPI_CreatePoint($aPos[0]+$aPos[2]/2, $aPos[1]+$aPos[3]/2) Local $hTopWnd = _WinAPI_WindowFromPoint($tPoint) If $hTopWnd = $hVideoGUI Then Return ; Return if visible _mpv_command($pHandle, "seek", 0.05, "relative") _mpv_command($pHandle, "seek", -0.05, "relative") ; Please let me know if anyone knows of a less intrusive way to keep the video renderer alive EndFunc ; _RefreshVideo I also found that some of the options I set for video performance prevented low-spec computers from playing even a low-resolution video. So I added a function to check if the computer has GPU card with 2GB or more of RAM, and provided different sets of options depending on the result. Local $sSpec = _GetVideoCardSpec() If $sSpec = "low" Then _mpv_set_option_string($pHandle, "profile", "fast") _mpv_set_option_string($pHandle, "vo", "direct3d") _mpv_set_option_string($pHandle, "dither", "no") _mpv_set_option_string($pHandle, "framedrop", "vo") Else _mpv_set_option_string($pHandle, "profile", "gpu-hq") _mpv_set_option_string($pHandle, "vo", "gpu") EndIf This way, I could play low-resolution videos with a 10 year old laptop without a GPU. It could even play a 4K video, but the video rendering quality was not satisfactory. The updated code is uploaded in the first post above.
-
wakillon reacted to a post in a topic:
AutoIt 4K MPV Player
-
Thanks for your attention. It seems the freezing can be a random behaviour mainly depending on the computer and file specs. I have a 10-year old computer and I would think I should make it work at least on my computer. MPV offers so many options and I'm sure we can fix it. One problem is that one round of test takes at least an hour.
-
mLipok reacted to a post in a topic:
AutoIt 4K MPV Player
-
I noticed that, if the video was hidden in the background for about 30 minutes and brought back to foreground, the image was frozen, though the audio was alive all the time. Through googling, I learned that the Windows power management sometimes freezes the GPU renderer while the audio, which is controlled by CPU, continues to work. So I made a small adlib function which fires every 10 minutes and, sofar, it seems to work. Func _RefreshVideo() ; Adlib to update the renderer with a harmless "seek" function every 10 minutes _mpv_command($pHandle, "seek", 0, "relative") EndFunc The file in the first post was updated. Edit: The above workaround was not enough in both action and frequency. It still resulted in random freezes of video. Hopefully the following code would solve the problem. Func _RefreshVideo() ; Adlib to give a heartbeat to the renderer every 5 minutes ; Check if the center of the video window is not visible on the screen ; Position of video window ($aPos) is updated by WM_WINDOWPOSCHANGED in real time Local $tPoint = _WinAPI_CreatePoint($aPos[0]+$aPos[2]/2, $aPos[1]+$aPos[3]/2) Local $hTopWnd = _WinAPI_WindowFromPoint($tPoint) If $hTopWnd = $hVideoGUI Then Return ; Return if visible _mpv_command($pHandle, "add", "ao-volume", "-" & $iVolume) _mpv_command($pHandle, "seek", 1, "relative") Sleep(10) _mpv_command($pHandle, "seek", -1, "relative") _mpv_command($pHandle, "add", "ao-volume", $iVolume) EndFunc ; _RefreshVideo The revised code is in the first post above.
-
MPV basically fills the GUI in full. The aspect ratio can be kept or ignored with one line of code: _mpv_set_property_string($pHandle, "keepaspect", "yes") : keeps aspect ratio and fills the empty spaces with black background (Default) _mpv_set_property_string($pHandle, "keepaspect", "no") : ignores the aspect ratio and fills the GUI with image In my example, these options can be toggled with Ctrl+Alt+a hotkey. Edit: This feature can now be set in the beginning of the program. Hotkey was eliminated.
-
mutleey reacted to a post in a topic:
AutoIt 4K MPV Player
-
CYCho reacted to a post in a topic:
AutoIt 4K MPV Player
-
I am excited to share a lightweight yet powerful 4K video player that I built using AutoIt and the MPV engine. This project is the first step in my efforts to find a viable way to migrate the engine of my zPlayer from the legacy winmm.dll to the modern libmpv-2.dll which has hardware acceleration and supports high resolutions. I was especially interested in finding a way to play 4K video files. I have high expectations for @MattyD's efforts to bring WinRT functionalities to AutoIt. In the meantime, I looked into libvlc.dll and libmpv-2.dll, but frankly, I found both to be very difficult to learn. I was inclined to use MPV because it seemed oriented toward developers, whereas VLC was for users. This player has only rudimentary functions, but it uses most of the basic MPV commands and functions to support my migration. For the latest version of libmpv-2.dll, you can download mpv-dev-x86_64-YYYYMMDD-git-f9190e5.7z from this site. Any comments or suggestions would be most welcome. File updated on March 24, 2026 File updated on March 25, 2026 File updated on March 27, 2026 File updated on April 3, 2026 File updated on April 12, 2026 File updated on May 4, 2026 File updated on May 5, 2026 AutoIt_4K_MPV_Player(20260505).au3
-
CYCho reacted to a post in a topic:
'Tis the Season
-
CYCho reacted to a post in a topic:
AutoIt Snippets
-
CYCho reacted to a post in a topic:
Sudden Spike in zPlayer Downloads — Any Idea Why?
-
Sudden Spike in zPlayer Downloads — Any Idea Why?
CYCho replied to CYCho's topic in Developer General Discussion
The bot activity seemingly stopped after about 700 downloads. I'm curious why a bot would need 700 copies. If multiple bots were involved, how could they have coordinated such a precise schedule? -
CYCho reacted to a post in a topic:
Sudden Spike in zPlayer Downloads — Any Idea Why?
-
Hi everyone, I’ve noticed something unusual with my zPlayer files I uploaded in the Downloads section of this forum. Normally, it used to get 1–10 downloads per day, but starting November 11 afternoon, the numbers skyrocketed — over 200 downloads on each of November 12 and 13, and still maintaining that surge. I’m curious if anyone knows what might have triggered this surge. Was it mentioned somewhere, linked in a tutorial, or picked up by a bot? If you’ve seen anything similar or have any ideas, I’d love to hear your thoughts. Thanks in advance! C Y Cho
-
CYCho reacted to a post in a topic:
MediaPlayerElement - WinRT Xaml Island
-
zPlayer relies on Winmm.dll for media playback, which does not support 4K video files. I have high hopes for @MattyD's MediaPlayerElement project, and I look forward to its completion. In the meantime, I’ve implemented a workaround: when zPlayer encounters a 4K video file, it automatically delegates playback to the system's default media player. To ensure smooth performance, users should configure a 4K-capable player, such as the modern Media Player or the Movies & TV app, as their system default. One limitation of this workaround is that zPlayer cannot track the playback progress of the external player. As a result, users must manually close the external player's window, click 'Play Next' button(▶) in zPlayer's main GUI or press Ctl+Alt+Right Arrow when the playback is completed. Otherwise, zPlayer will not proceed to the next file.