About this project

VLC for Android is the official Android port of the VLC media player, covering phones, Android TV and ChromeOS. It is a libre and open-source project maintained by VideoLAN and released under GPLv2 or later (effectively GPLv3 for the app), while the embedded LibVLC engine is LGPLv2. What it does - Plays the same broad range of files as desktop VLC, with a media database for audio and video files and streams. - LibVLC, the embedded engine, advertises support for many media formats, codecs and streaming protocols, hardware and efficient decoding up to 8K, network browsing of remote filesystems (SMB, FTP, SFTP, NFS) and servers (UPnP, DLNA), Audio CD/DVD/Blu-ray playback with menu navigation, HDR including tonemapping for SDR streams, audio passthrough over SPDIF and HDMI (including DD+, TrueHD, DTS-HD), video and audio filters, 360 video and 3D audio including Ambisonics, and casting to remote renderers such as Chromecast and UPnP. Project layout - extension-api: application extensions SDK (not yet released) - application: Android app source, organized by modules - buildsystem: build scripts, CI and Maven publication configuration - libvlc: Gradle module for LibVLC; VLC source is cloned into vlc/ at the root - medialibrary: Gradle module for the media library Reusing LibVLC Developers can use the LibVLC module to power their own Android media players, either by downloading the .aar from Maven or building from source. Sample code is available in a separate libvlc-android-samples repository. Building Gradle build modes include Release and Debug (fetch LibVLC and Medialibrary from Bintray and build only app code), SignedRelease (same, with local keystore signing), and Dev (build LibVLC, Medialibrary and the app together via build scripts). Building LibVLC itself needs a recent Linux distribution; Windows 10 and macOS may work but are not officially supported. The wiki's AndroidCompile page lists dependencies, and buildsystem/compile.sh takes flags such as -l for LibVLC, -ml for Medialibrary, -a for ABI (arm, arm64, x86, x86_64 or all) and -r for a release build. ANDROID_SDK and ANDROID_NDK environment variables must be set. Contributing and support Pull requests go through VideoLAN's GitLab instance; contributors are asked to follow the Code of Conduct and open an issue before UI changes or new features. Translations are handled on Transifex, and merge requests are generated from that work. Bugs and feature requests are tracked on VideoLAN GitLab with a provided template. Support channels include the in-app feedback option on the About screen, the android@videolan.org mailing list, the GitLab bugtracker, the #videolan IRC channel on Libera, and the VideoLAN forum.