kanishka-linux / kawaii-player

Multimedia player, media library manager and portable media server with PC-To-PC casting feature.
GNU General Public License v3.0
617 stars 44 forks source link

Kawaii-Player fails to play any videos under mpv internal player #24

Closed phongvu99 closed 4 years ago

phongvu99 commented 4 years ago

I've attached the log here, any help would be appreciated! Thanks!

kawaii-player.log

kanishka-linux commented 4 years ago

It seems like few cache related options have been removed/changed from mpv. I've pushed fix. Can you try installing from master branch? Apart from that don't use internal config file option, when using internal mpv player.

phongvu99 commented 4 years ago

Still no luck. Here's the log based on the latest version.

kawaii-player.log

kanishka-linux commented 4 years ago

can you try this on your local terminal and see if it is working

mpv --cache-secs=120 --cache=auto --cache-pause --idle -msg-level=all=v --osd-level=1 --cursor-autohide=no --no-input-cursor --no-osc --no-osd-bar --ytdl=no --input-file=/dev/stdin --input-terminal=no --input-vo-keyboard=no --video-aspect -1 -wid 134217750 --input-conf="/home/home/.config/kawaii-player/src/input.conf" --screenshot-directory="/home/home/.config/kawaii-player/tmp" "full_path_to_media"

above output is from your log..

And internal settings box has config box.. just uncheck it, in case you are using it. Maybe some options from config box can also cause conflicting issues.

By the way, is libmpv backend is not working for you?

In between please mention your OS/distro and mpv version.. If possible also paste the output of mpv vo help

phongvu99 commented 4 years ago

Have to modify a bit of the config since it's deprecated in the latest version, btw video-aspect -1 is incorrect I think? Have to remove it in order to run. Anyway, running the test video with this config give me a better insight of why the player failed to play.

mpv --cache-secs=120 --cache=auto --cache-pause --idle -msg-level=all=v --osd-level=1 --cursor-autohide=no --no-input-cursor --no-osc --no-osd-bar --ytdl=no --input-terminal=no --input-vo-keyboard=no -wid 134217750 --input-conf="/home/home/.config/kawaii-player/src/input.conf" --screenshot-directory="/home/home/.config/kawaii-player/tmp" "./test.mp4"

Output: kawaii-player2.log

I'm not using the internal settings box if you're wondering. Out of 3 options, libmpv, mplayer and mpv. Only mplayer works for a reason.

Distro: Linux Mint 19.3 Cinnamon MPV: I installed through this PPA: ppa:mc3man/mpv-tests. Seems to be the latest build, I think.

Output of mpv -vo help (You have a typo, the '-' sign):

Available video outputs: libmpv render API for libmpv gpu Shader-based GPU Renderer vdpau VDPAU with X11 wlshm Wayland SHM video output (software scaling) xv X11/Xv vaapi VA API with X11 x11 X11 (software scaling) null Null video output image Write video frames to image files tct true-color terminals drm Direct Rendering Manager (software scaling)

phongvu99 commented 4 years ago

I think I got it!

The -wid 134217750 option in the config somehow mess up with the playback. By trial and error, I managed to finally play the test video, by removing the -wid option. If anyone is having this issue, give this solution a try.

But then this is through the terminal. Kawaii-Player still cannot play any videos.

kanishka-linux commented 4 years ago

Thanks for the detailed reply.

I've removed video-aspect option..It seems lot of options have changed in mpv since last few months.

Now, Install from latest master source. You can check internal config box: preferences -> config -> use this config file. In this config box, comment out all all the options..

And try again.. If things didn't work..then, in the config box you can try various vo values like gpu, xv or libmpv... Atleast one of these vo values should work.

phongvu99 commented 4 years ago

Still not working. Only the internal mplayer works.

By the way, when running with mplayer. There's a small bug which makes it irritating. If I hover to and fro from the video screen to the seek bar, there will be a flash which is annoying. So moving the mouse up and down constantly, or even by accident this will happen.

kanishka-linux commented 4 years ago

I'm testing mainly with either Arch linux or OSX (with mpv 0.32), and it seems to be working fine on them after removing deprecated options. Arch linux has all the latest version of software, so mpv v0.32 is working fine with the kawaii-player.

Anyway some time back when I tested with ppa:mc3man/mpv-tests on some ubuntu based distro, I was also getting problem in video playback, but it was working fine with the mpv that was available in the distro repository when using vo=opengl (in the settings box).

phongvu99 commented 4 years ago

Well, I will use the mplayer instead but the flashing issue is a bit annoying, any solutions for that? And why the 'sub-seek' option isn't working as intended, I can't seek the video to the next line of the subtitle, only backward.

kanishka-linux commented 4 years ago

I'm not sure about what to do about that flashing issue and also sub-seek option. mplayer is just the fallaback player in case mpv doesn't work. I don't test it regularly, and at one time thought of removing it, due to difficulty in maintenance. Mplayer will certainly won't give good experience with kawaii-player. Mpv available in ubuntu lts 18.04 based distros is stable and seemed to work well with kawaii-player, once you adjust proper vo driver. But yes, it is your choice.

Managing mpv, mplayer, libmpv along with testing compatibility with every linux distro, OSX, windows and raspberry-pi is difficult and time consuming. It is difficult to keep track of everything.

phongvu99 commented 4 years ago

Hi there, don't know if this helps or not. I tried to build mpv from source and use it with kawaii-player but still no luck. I'm theorizing that maybe it's a hardware-related problem on my end. Any chance the player doesn't play well with NVIDIA GPU?

kanishka-linux commented 4 years ago

Any chance the player doesn't play well with NVIDIA GPU?

maybe possible, I'm not sure.

I've managed to run it even on raspberry-pi 4 with debian buster. In every ubuntu/debian based distro, I've found that kawaii-player works well with the mpv availble in official distro repository.

My guess is that there is some dependency mismatch especially (ffmpeg version) which is causing the issue. I've old version of linux mint installed on one system. This weekend, maybe I'll try installing mpv from that ppa once again on the linux mint box to get more idea about what is happening.

phongvu99 commented 4 years ago

I finally got it!

So here's what I did to get the video running on kawaii-player:

mpv --cache-secs=120 --cache=auto --cache-pause --idle -msg-level=all=v --osd-level=1 --cursor-autohide=no --no-input-cursor --no-osc --no-osd-bar --ytdl=no --input-file=/dev/stdin --input-terminal=no --input-vo-keyboard=no -wid 127926294 --input-conf="/home/home/.config/kawaii-player/src/input.conf" --screenshot-directory="/home/home/.config/kawaii-player/tmp" "/media/home/Data/Download/Punch-Drunk.Love.2002.1080p.BluRay.H264.AAC-RARBG/Punch-Drunk.Love.2002.1080p.BluRay.H264.AAC-RARBG.mp4"

Error parsing option input-file (option not found) Setting commandline option --input-file=/dev/stdin failed. Exiting... (Fatal error)

By the way, no more flashing problem on mpv as the internal player.

Removed the flag from the source code, replace with --input-ipc-server flag, re-build the .deb package and re-install the application. Now it can play any video under mpv. But there's stuttering issue and still no control over the video.

To further support this, I read the mpv docs and found out that the --input-file flag is deprecated.

Deprecated. Use --input-ipc-server.

Read commands from the given file. Mostly useful with a FIFO. Since mpv 0.7.0 also understands JSON commands (see JSON IPC), but you can't get replies or events. Use --input-ipc-server for something bi-directional. On MS Windows, JSON commands are not available.

This can also specify a direct file descriptor with fd://N (UNIX only). In this case, JSON replies will be written if the FD is writable.

kanishka-linux commented 4 years ago

I finally got it!

Hey, that's really great! Well done

I read the mpv docs and found out that the --input-file flag is deprecated.

So, finally they really removed this option.. This is going to be difficult. In order to use --input-ipc-server, it will take significant amount of effort to implement it in the kawaii-player..

still no control over the video.

that is bound to happen, since --input-ipc-server accepts commands in a completely different way compared to --input-file

But there's stuttering issue

It can happen due to driver issue or compositing manager. I've seen it happen mostly on xfce/lxde desktop.. but with compton manager it goes away.. In Gnome desktop it doesn't happen.

phongvu99 commented 4 years ago

Closing this since the initial issue is resolved.

kanishka-linux commented 3 years ago

Added support for mpv input-ipc-server mode. It is available in the latest master branch. Instructions are available in the README

phongvu99 commented 3 years ago

Added support for mpv input-ipc-server mode. It is available in the latest master branch. Instructions are available in the README

Thank you for the update! Now I can finally use Kawaii in all of its glory.