VLC for Android, Android TV and ChromeOS

Overview

VLC for Android

This is the official Android port of VLC.

VLC on Android plays all the same files as the classical version of VLC, and features a media database for Audio and Video files and stream.

Project Structure

Here are the current folders of vlc-android project:

  • extension-api : Application extensions SDK (not released yet)
  • application : Android application source code, organized by modules.
  • buildsystem : Build scripts, CI and maven publication configuration
  • libvlc : LibVLC gradle module, VLC source code will be cloned in vlc/ at root level.
  • medialibrary : Medialibrary gradle module

LibVLC

LibVLC is the Android library embedding VLC engine, which provides a lot of multimedia features, like:

  • Play every media file formats, every codec and every streaming protocols
  • Hardware and efficient decoding on every platform, up to 8K
  • Network browsing for distant filesystems (SMB, FTP, SFTP, NFS...) and servers (UPnP, DLNA)
  • Playback of Audio CD, DVD and Bluray with menu navigation
  • Support for HDR, including tonemapping for SDR streams
  • Audio passthrough with SPDIF and HDMI, including for Audio HD codecs, like DD+, TrueHD or DTS-HD
  • Support for video and audio filters
  • Support for 360 video and 3D audio playback, including Ambisonics
  • Ability to cast and stream to distant renderers, like Chromecast and UPnP renderers.

And more.

LibVLC stack

You can use our LibVLC module to power your own Android media player. Have a look at our sample codes.

License

VLC for Android is licensed under GPLv2 (or later). Android libraries make this, de facto, a GPLv3 application.

VLC engine (LibVLC) for Android is licensed under LGPLv2.

Build

Native libraries are published on bintray. So you can:

  • Build the application and get libraries via gradle dependencies (JVM build only)
  • Build the whole app (LibVLC + Medialibrary + Application)
  • Build LibVLC only, and get an .aar package

Build Application

VLC-Android build relies on gradle build modes :

  • Release & Debug will get LibVLC and Medialibrary from Bintray, and build application source code only.
  • SignedRelease also, but it will allow you to sign application apk with a local keystore.
  • Dev will build build LibVLC, Medialibrary, and then build the application with these binaries. (via build scripts only)

Build LibVLC

You will need a recent Linux distribution to build VLC. It should work with Windows 10, and macOS, but there is no official support for this.

Setup

Check our AndroidCompile wiki page, especially for build dependencies.

Here are the essential points:

On Debian/Ubuntu, install the required dependencies:

sudo apt install automake ant autopoint cmake build-essential libtool-bin \
    patch pkg-config protobuf-compiler ragel subversion unzip git \
    openjdk-8-jre openjdk-8-jdk flex python wget

Setup the build environment: Set $ANDROID_SDK to point to your Android SDK directory export ANDROID_SDK=/path/to/android-sdk

Set $ANDROID_NDK to point to your Android NDK directory export ANDROID_NDK=/path/to/android-ndk

Then, you are ready to build!

Build

buildsystem/compile.sh -l -a <ABI>

ABI can be arm, arm64, x86, x86_64 or all for a multi-abis build

You can do a library release build with -r argument

Medialibrary

Build Medialibrary with -ml instead of -l

Contribute

VLC is a libre and open source project, we welcome all contributions.

Just respect our Code of Conduct.

Pull requests

Pull requests must be proposed on our gitlab server.

So you must create an account, fork vlc-android project, and propose your merge requests from it.

Exept for translations, see the section below.

Translations

You can help improving translations too by joining the transifex vlc project

Translations merge requests are then generated from transifex work.

Issues and feature requests

VLC for Android bugtracker is hosted on VideoLAN gitlab
Please look for existing issues and provide as much useful details as you can (e.g. vlc app version, device and Android version).

A template is provided, please use it!

Issues without relevant informations will be ignored, we cannot help in this case.

Support

Comments
  • CI with Github actions

    CI with Github actions

    I see you urgent need a CI on each pull request to avoid of new errors.

    Currently

    • Espresso can't build
    • Unit tests can't build
    • Lint has several errors

    But step by step and start with this build-only pull request to see if it makes sense to contribute here by merging this first

    Btw, I observed this introduce of Github action only starts running on upstream when it's merged. -no clue why- In my fork it's working even now.. https://github.com/hannesa2/vlc-android/pull/1

    opened by hannesa2 4
  • Margins

    Margins

    All the commits are related but does different things:

    1. Avoid the overlaping between views
    2. Left and right margins equal
    3. Don't overflow the selection using a RecyclerView.ItemDecorator

    I can squash them if you prefer.

    Before: old

    After: new

    opened by BraisGabin 4
  • l10n: updates

    l10n: updates

    100% completed translations from Tx: Czech, Danish, Spanish, French, Hebrew, Hungarian, Icelandic, Italian, Korean, Malay, Dutch, Slovak, Swedish, Turkish, Ukrainian, Simplified Chinese

    over 90% completed translations from Tx: Japanese, Romanian, Basque, Welsh, Croatian, Thai, Portuguese, Russian, Tatar, Norwegian Bokmål, Slovenian, Corsican

    opened by mtrz 4
  • Smooth vertical touch

    Smooth vertical touch

    Hi, Existing vertical touch gestures have some limitations and can be improved to look more appealing. Volume and brightness can be only changes in uneven chunks in range of 5-7% on my phone, there is no way to fine tune (even just to see nice rounded percent value), another issue is that gestures feel unresponsive - even a long swipe changes value not that much.

    Changes in this PR allow to fine tune volume and brightness and make gestures a bit more responsive

    opened by vitaliyg2 3
  • Avoid remeasurement of view hierarchy every 1 sec

    Avoid remeasurement of view hierarchy every 1 sec

    time, length and header_time textboxes are updated every 1 second while playing audio; wrap_content width and height of these boxes cause unnecessary remeasurement of the entire view hierarchy. Changing them to have fixed width and height avoids such remeasurement.

    opened by codenet 3
  • Does this work in apps , to make this as an INTERNATL player ?

    Does this work in apps , to make this as an INTERNATL player ?

    i have an app that plays videos , i was wondering if this can be used ,, like exoplayer. i mean , can i use this Vlc sources to play videos inside my app , not externaly.

    because exoplayer doesn support m3u8 links good

    opened by littlelitleStar 2
  • Fix Playlist Random play bug

    Fix Playlist Random play bug

    Unnecessary instance creation

    @@ -558,1 +558,1 @@
    -                        random = Random(System.currentTimeMillis())
    +                        random.setSeed(System.currentTimeMillis())
    

    Unnecessary code

    @@ -561,1 @@
    -                random = Random(System.currentTimeMillis())
    

    Fix previous indexes when expand list

    @@ +615,7 @@
    +            if (shuffling && ml.count > 1 && !previous.isEmpty()) {
    +                for (i in 0 until previous.size) {
    +                    if (previous[i] > index) {
    +                        previous[i] += ml.count - 1
    +                    }
    +                }
    +            }
    

    alltimes play the top when expand list

    @@ -616,1 +622,5 @@
    -            ret = index
    +            if (shuffling && ml.count > 1) {
    +                ret = index + random.nextInt(ml.count)
    +            } else {
    +                ret = index
    +            }
    
    opened by neetsdkasu 2
Owner
VideoLAN
VideoLAN
Simple and lightweight, yet polished and powerful Android video player based on ExoPlayer

Just (Video) Player Android video player based on ExoPlayer It uses ExoPlayer's extension-ffmpeg with all its audio formats enabled (it can handle eve

Marcel Dopita 677 Dec 28, 2022
Android app for streaming and downloading Movies, TV-Series and Anime.

CloudStream ⚠️ Warning: By default this app doesn't provide any video sources, you have to install extensions in order to add functionality to the app

null 309 Aug 21, 2022
Android app for streaming and downloading Movies, TV-Series and Anime.

CloudStream-3 DOWNLOAD: https://github.com/KillerDogeEmpire/Cloudstream/releases Features: AdFree, No ads whatsoever No tracking/analytics Bookmarks D

Sushil Great 3 Aug 15, 2022
Android app for streaming and downloading Movies, TV-Series and Anime.

CloudStream ⚠️ Warning: By default this app doesn't provide any video sources, you have to install extensions in order to add functionality to the app

Obaida AlBitar 2 Sep 22, 2022
A simple library for parsing and playing links from YouTube, YouTube Music, Vimeo and Rutube is WebView without the need to connect api data services. Request caching is available now

Android Oembed Video A simple library for parsing and playing links from YouTube, YouTube Music, Vimeo and Rutube and others in the WebView without th

Alexey Mostovoy 32 Oct 8, 2022
Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface.

Fermata Media Player About Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface. It is focused on

Andrey 227 Jan 6, 2023
Is an All in One app for Muslims with lots of features such as Prayer Times & Adhan, Collections of Dhikr and Prayer sourced from Authentic Hadith, The Holy Qur'an, Qibla, Notes and many more!

Is an All in One app for Muslims with lots of features such as Prayer Times & Adhan, Collections of Dhikr and Prayer sourced from Authentic Hadith, The Holy Qur'an, Qibla, Notes and many more!

DzikirQu 112 Dec 26, 2022
A Spotify Clone that plays music and has similar UI to actual Spotify Mobile App. Made with Exoplayer and love ❤️

Spotify Clone A Spotify Clone App that can play music, and has a good looking UI that is very similar to actual Spotify Mobile App on Play Store I use

Utku Oruç 4 Oct 12, 2022
Youtube Android Clone 🚀an Android Youtube Clone made out of XML and Kotlin

Youtube Android Clone ?? This app consumes The Youtube Api to fetch and display a list of popular videos, The app uses MVVM design pattern to allow se

Breens Robert 38 Dec 13, 2022
Custom Android view with video player, loader and placeholder image

VideoPlayerView Custom Android view with video player, loader and placeholder image. To stay up-to-date with news about the library Usage Here is an e

Marcin Moskała 89 Nov 18, 2022
Android Texture VideoView having a variety of scale types like the scale types of ImageView such as fitCenter, centerCrop, centerTopCrop and more

Android-ScalableVideoView Looking for the extra scale types of ImageView? Check out ScalableImageView. Android Texture VideoView having a variety of s

Yoshihito Ikeda 1.1k Jan 7, 2023
A elegant and light weight music player for android

A elegant and light weight music player for android

Atul Patare 45 Dec 21, 2022
Android podcast app made with Jetpack Compose and ExoPlayer.

Podcast App Android podcast app made with Jetpack Compose and ExoPlayer. Podcast information provided by Listen Notes API. Features Jetpack Compose UI

Fabian 302 Jan 2, 2023
Fire TV Sample App Android - Touch and D-Pad

Fire TV Sample App Android - Touch and D-Pad This sample Android project demonstrates how to build the main UI of a Fire TV application in order to su

Amazon 10 Nov 11, 2022
An offline music player android app, with modern UI and powerful features

Pulse Music An offline music player android app, with modern UI and powerful features If you liked this repo, fork it and leave a STAR. Your support m

Sharath 7 Apr 11, 2022
Xtra is a Twitch player and browser for Android.

Xtra for Twitch Xtra is a Twitch player and browser for Android. Download APK You can find released APKs here. Project status The app was removed from

Andrey Asadchy 102 Jan 5, 2023
Music Player - This is a basic music player built with Android Studio and Kotlin

Music Player Made by Jenny Cárdenas This is a basic music player built with Android Studio and Kotlin, it shows two views in the UI, the user can play

Jenny C 3 Oct 28, 2021
SocyMusic is an open-source Android music player written in Java with the aim of creating an easy-to-use app for exchanging and listening to top-quality music. Help us create it!

SocyMusic SocyMusic is an open-source Android music player written entirely in Java. It's objectives are to provide top-quality music to everyone for

Benji 23 Dec 26, 2022