Skip to content
forked from moneytoo/Player

▶ Simple and lightweight, yet polished and powerful Android video player based on ExoPlayer

License

Notifications You must be signed in to change notification settings

bhavin1994/Player

 
 

Repository files navigation

Just (Video) Player

GitHub release (latest SemVer) Google Play F-Droid GitHub all releases Google Play Google Play ExoPlayer Weblate project translated Subreddit subscribers

Android video player based on ExoPlayer, compatible with Android 5+ and Android TV.

It uses ExoPlayer's extension-ffmpeg with all its audio formats enabled (it can handle even special formats like AC3, EAC3, DTS, DTS HD, TrueHD etc.).

It properly syncs audio with video track when using Bluetooth earphones/speaker. (I was not able to find any other nice ExoPlayer based video player so I created this one.)

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, AVI (🚧)
  • Streaming: DASH, HLS, SmoothStreaming, RTSP
  • Subtitles: SRT, SSA, ASS, TTML, VTT, DVB

HDR (HDR10+ and Dolby Vision) video playback on compatible/supported hardware.

Screenshots

Features

  • Audio/subtitle track selection
  • Playback speed control
  • Horizontal swipe and double tap to quickly seek
  • Vertical swipe to change brightness (left) / volume (right)
  • Pinch to zoom (Android 7+)
  • PiP (Picture in Picture) on Android 8+ (resizable on Android 11+)
  • Resize (fit/crop)
  • Volume boost
  • Auto frame rate matching on Android TV/boxes (Android 6+)
  • Post-playback actions (delete file/skip to next)
  • Touch lock (long tap)
  • App shortcut for direct access to file chooser (Android 7.1+)
  • 3rd party equalizer / audio processing support (e.g. Wavelet)
  • Media Session and Audio Focus support
  • Pause playback when disconnecting headphones
  • No ads, tracking or excessive permissions

To load external (non-embedded) subtitles, long press the file open action in the bottom bar. The first time you do that, you will be offered to select root video folder to enable automatic loading of external subtitles.

Some advanced features can be enabled or configured in settings. To access it, long press the ⚙️ gear icon. (Alternatively, you can also enter this settings from App info screen.)

  • File access mode. Use of Storage Access Framework / MediaStore / legacy file access.
  • Decoder priority. Prefer device or app decoders.
  • Auto frame rate matching. (On Android 11+ and "compatible" displays, ExoPlayer supports seamless refresh rate switching)
  • Tunneled playback. Enabling tunneling can improve playback of 4K/HDR content on Android TV.
  • Auto picture-in-picture. When you leave Just Player through the home button and video is playing, PiP will be activated automatically.
  • Skip silence
  • Repeat toggle

WRITE_SETTINGS ("Modify system settings") permission: When the system file chooser is opened, it will always use current system orientation, even if the Player app sets its own. Granting this permission via adb (adb shell pm grant com.brouken.player android.permission.WRITE_SETTINGS) or App info screen will allow this app to temporarily enable Auto-rotate to at least partially mitigate this imperfection.

Donate: PayPal | Bitcoin | Litecoin

Translate: Weblate

Download

Get it on Google Play Get it on F-Droid Get it on GitHub Get it on GitLab Available on Galaxy Store Explore it on AppGallery available at amazon Get it on Aptoide

Also available on OPPO App Market, Xiaomi GetApps or Uptodown.

Other links/channels: application thread on XDA Developers, subreddit on reddit, entry on AlternativeTo, git mirror on GitLab

FAQ

What to do if Bluetooth audio is not in sync with video?

Just pause and resume playback once again.

How do I change subtitle font, size or color?

Open system Caption preferences on your device (usually in the Accessibility section of Settings) and you will be able to fully customize the subtitle style. Just Player uses style defined in Caption preferences even when the Show captions option is turned off. If you want to apply additional formatting defined in subtitles, leave this option off.

To quickly access the system Caption preferences screen, long tap the subtitle button (CC).

Are there any media formats it CANNOT play?

Unfortunately, upstream ExoPlayer doesn't handle some older formats like AVI container, WMV or Theora. Majority of devices also cannot handle 10-bit AVC.

Just Player focuses on playing videos so audio only playback isn't officialy supported (request).

How to view detailed video information (like resolution, bitrate etc.)?

Install app like MediaInfo (or APK from MediaArea.net). Then, to quickly open MediaInfo from Just Player, long press the video name/title.

I prefer using media library instead of a file chooser...

Just Player uses system file chooser which already allows two different browsing modes:

  1. Videos - listing only device directories that contain videos

  2. File browser - full navigation in the device file system structure

Alternatively, some people choose to use the media library function of Nova Video Player and integrate it with Just Player by enabling "Allow using another video player" feature. This also gives you convenient access to content on network storages (SMB, UPnP, FTP and SFTP).

How to access videos on network storages (SMB, WebDAV, SFTP, etc.)?

  1. The default system file chooser allows access to any remote storage using appropriate Document Provider. I highly recommend CIFS Documents Provider for accessing Samba shares. There are also providers like WebDAV Provider/DAVx⁵ (WebDAV), FileManagerUtils (SFTP) and rcx. Sadly, Document providers are not supported on Android TV.

  2. Open video directly from your favorite file explorer. Solid Explorer works really well, especially if you also want to automatically load subtitles.

How to zoom in to get rid of black bars?

If your device has a touchscreen you can use the pinch-to-zoom gesture or just tap the Resize button for a Crop. Android TV: Long tap the Resize button to enter Zoom mode. Then use Up and Down keys for precise zoom.

Why is the APK so big?

The APK available here contains native libraries for all supported architectures (armeabi-v7a/armeabi-v7a-neon/arm64-v8a/x86/x86_64), which is what takes the most space. Although Just Player relies mostly on device decoders, it packs FFmpeg for some advanced features (video chapters and frame rate detection). The second largest dependency is ICU4J - 10 MB only for charset detection of subtitle files. 🤷

Please note that installs and updates made through Google Play are significantly smaller thanks to Android App Bundles and delta updates.

Other open source Android video players

Here's a comparison table presenting all available and significant open source video players for Android I was able to find. Just Player is something like 80% 90% feature complete. It will probably never have dozens of options or some rich media library UI. It will never truly compete with feature rich VLC. It just attempts to provide functional feature set and motive others to create greater players based on amazing ExoPlayer.

App name (source) Tested version targetSdk Media engine Gestures PiP Cutout (notch) Notes
Fermata Media Player 1.8.11 31 MediaPlayer, ExoPlayer and libVLC 🟡 Seek/Volume 🔴 No 🔴 No Some features are limited to libVLC
Just (Video) Player 0.92 31 ExoPlayer 🟢 Seek/Volume/Brightness 🟢 Yes 🟢 Yes
Kodi 19.3 29 ? 🔴 No 🔴 No 🔴 No
mpv 2021-10-28-release 29 libmpv 🟢 Seek/Volume/Brightness 🟢 Yes 🟢 Yes Possible performance issues of 4K 60 FPS HDR videos
Nova Video Player 5.15.26-20210915.1928 29 ?, (ExoPlayer in nova v7) 🔴 No 🟢 Yes 🟢 Yes
VLC 3.4.3 30 libVLC 🟢 Seek/Volume/Brightness 🟢 Yes 🟢 Yes

To find other video players (including non-FOSS), check out a list on IzzyOnDroid.

About

▶ Simple and lightweight, yet polished and powerful Android video player based on ExoPlayer

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%