• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[APP][5.0+] Just (Video) Player - no Bluetooth lag / ExoPlayer / FFmpeg audio codecs

Search This thread

moneytoo

Recognized Developer
Feb 20, 2007
1,416
1,275
brouken.com
Just Player is a video player based on the ExoPlayer library/framework from Google. Just Player is fairly trivial right now - most work is done by ExoPlayer and I have just added few actions and controls here and there. The whole app is basically just a single screen with an option to load video - no library view or application settings.

Why?
  • Compensation for Bluetooth audio lag. ExoPlayer does that automatically, plays video in sync with audio.
  • All special audio formats. Thanks to FFmpeg, ExoPlayer can handle even special formats like AC-3, E-AC-3, DTS, DTS-HD, TrueHD etc.
  • Free / open source
  • (Clean, uncluttered GUI)
I wasn't able to find any video player satisfying all above needs. I personally use nPlayer which does well with both Bluetooth and audio codecs. Another competitor to Just Player is SimplePlayer (also ExoPlayer based) though Just Player tries making the UI easier.

I also found out that VLC isn't able to play HDR videos properly (colors are washed out) or that MX Player isn't that able to play 4K 60 FPS HDR video without shuttering (even on Snapdragon 855 / OnePlus 7). Tested with "The World in HDR" video from Kodi Samples. This Player plays it just fine.

Supported formats
  • Audio: Vorbis, Opus, FLAC, ALAC, PCM/WAVE (μ-law, A-law), MP1, MP2, MP3, AMR (NB, WB), AAC (LC, ELD, HE; xHE on Android 9+), AC-3, E-AC-3, DTS, DTS-HD, TrueHD
  • Video: H.263, H.264 AVC (Baseline Profile; Main Profile on Android 6+), H.265 HEVC, MPEG-4 SP, VP8, VP9, AV1
  • Containers: MP4, MOV, WebM, MKV, Ogg, MPEG-TS, MPEG-PS, FLV
  • Subtitles: SRT, SSA, ASS, TTML, VTT
HDR and HDR10+ video playback on compatible/supported hardware.

Features
  • Audio/subtitle track selection
  • Playback speed control
  • Horizontal swipe to quickly seek
  • Vertical swipe to change brightness (left) / volume (right)
  • PiP (Picture in Picture) on Android 8 or higher
  • Resize (fit/crop)
  • No ads, tracking or even the Internet permission
Then there are the little things like supporting notch, fine tuning the brightness curve, making file open dialog remember its last position, forcing landscape when playing video...

To load an external (non-embedded) subtitles, long press the file open action in the bottom bar.

Screenshot
screenshot.jpg


Download
Play Store: https://play.google.com/store/apps/details?id=com.brouken.player
F-Droid: https://f-droid.org/en/packages/com.brouken.player/

Source code
Github: https://github.com/moneytoo/Player

What's next
It's amazing to me that in just a few hours of work and few hundreds lines of code it is possible to create a video player that I actually can use. I probably won't be adding support for features that are too big for this little player - like playlists, media library etc. but I should probably be able to improve things like subtitles (it should be easy with ExoPlayer). So just let me know what do you think.
 
Last edited:

moneytoo

Recognized Developer
Feb 20, 2007
1,416
1,275
brouken.com
The app got suspended on Google Play for listing compatible subtitle formats. 😞
Check the link - it's ironic because I reused the description from a Google library (for playing videos) and this is what caused the suspension.

EDIT: Fortunately the app was reinstated few hours later.
 
Last edited:
Great app, especially for the feature i am asking about:
There is a "timeshift" if i access certain free TV-Streams in Germany. The only program for the PC is a version of KMPlayer, which -and that's different- starts the stream up to -2hours* from now w/o the option to seek up to the "live feed" (i could save the stream-starting in the past or speed up the play speed but it's no fun). Just Player can seek to any point from -2hours* to the live feed.
Is that included by accident or on purpose, if so what is the name of that feature or how does it work - is there a "proxy mechanism" involved? D
No other player (i dare to say i know some) on Android or PC beside the 2 mentioned have that feature...and i would like to seek to any time* on the PC.
* the time to look into the past varies...but the last 2 hours is mostly true.
Example - probably geo-blocked: https://derste247livede.akamaized.net/hls/live/658317/daserste_de/master_1280p_3328.m3u8
i tried to find international streams but they go back 1Minte max.

Any insight would be appreciated
 
@ks123_reloaded This player uses ExoPlayer which is a library from Google, primarily intended for integrating/creating streaming apps on Android & TV. They probably care a lot about media consumption and supporting the ecosystem as a whole so they really integrate the streaming well. The feature you are asking about is probably something like this: https://github.com/google/ExoPlayer/issues/87
sounds like it. Thx
Now my quest for finding the PC version can go on