yuroyami / syncplay-mobile

📱 Unofficial Syncplay client app for Android and iOS. Watch stuff in sync with your friends. Works well with Syncplay on PC. Fully written in Kotlin and Compose multiplatform.
113 stars 5 forks source link

Use libmpv instead as it can't play h.265 hevc 10bit hi10p video #64

Closed aicynide closed 1 year ago

yuroyami commented 1 year ago

The app will be introduced with libmpv or libvlc (whichever is more stable) soon enough in order to support more formats, not sure when, but it'll happen

aicynide commented 1 year ago

The app will be introduced with libmpv or libvlc (whichever is more stable) soon enough in order to support more formats, not sure when, but it'll happen

I highly suggest to use libmpv and let us access app data from settings so that we can edit mpv.conf and add mpv scripts https://github.com/stax76/awesome-mpv#user-configuration Also let us install mpv scripts dependencies like node.js , python, curl, wget, luajit, aria2c etc. (Best solution would be to develop a termux add-on app to integrate with termux so that we can use termux package manager to install mpv script dependencies 😉 ) Also add a option to open keyboard in player so that we can use custom mpv key binds. Thank You, if you can do these you would be call a hero

z411 commented 1 year ago

I found the same problem earlier, a lot of shows are being encoded to HEVC lately so I can't watch most stuff. I highly suggest libmpv as it has proven to be highly stable and well maintained.

yuroyami commented 1 year ago

@z411, The problem you're facing might not be with the HEVC format itself, but with the bit-depth. Many devices can't handle bit-depths higher than 8-bit

syncplay-android video decoding abilities are inherently tied to (and almost limited by) what your device can handle. So if your device doesn't support the format you want to play, syncplay-android will probably not be able to play it either. To illustrate, on one of my devices, I can play 10-bit HEVC videos just fine, but on another device, it can only handle 8-bit HEVC videos and fails with higher bit-depths

I'll work on integrating libmpv into syncplay, but for now, a temporary workaround is to watch videos that are encoded at 8-bit

z411 commented 1 year ago

Indeed, it just seems to happen that a lot of HEVC videos are encoded in 10-bit. I'm using 8-bit reencodes for now, but mpv-android plays 10bit fine (I'm assuming through software decoding) and the original Syncplay recommends mpv, so libmpv would certainly be the best choice and improvement. Thanks for your work.

yuroyami commented 1 year ago

Now mpv is officially supported and is the default engine as of version (0.12.0)