gitmyhub

vlc-android

Kotlin ★ 3.9k updated 2d ago

VLC for Android, Android TV and ChromeOS

The official VLC media player for Android, supporting a huge range of video and audio formats, network streaming over SMB/FTP/NFS, hardware decoding up to 8K, Blu-ray menus, and HD audio, plus a standalone LibVLC SDK developers can embed in their own apps.

KotlinAndroidC++LibVLCsetup: hardcomplexity 4/5

This is the official Android version of VLC, the widely used open-source media player. VLC for Android is maintained by the VideoLAN organization and supports the same broad range of file formats as the desktop version of VLC, along with a media database for organizing audio and video files and streams on the device.

At the core of the Android app is LibVLC, a library that bundles the VLC playback engine for use on Android. LibVLC handles format compatibility, hardware decoding, and network features. It can play files up to 8K resolution, supports streaming protocols including SMB, FTP, SFTP, and NFS for browsing network shares, and can play physical media like DVDs and Blu-rays including their menu systems. Audio features include HD audio passthrough formats (Dolby TrueHD, DTS-HD, and others), and the library also supports 360-degree video and 3D audio. LibVLC is also available as a standalone Android library that developers can use to add media playback to their own apps, distributed through Maven.

The project is structured into several modules: the main Android application code, the LibVLC module that wraps the VLC engine, a medialibrary module for the media database, and build scripts for CI and packaging. The app targets Android, Android TV, and ChromeOS.

Building the application can be done at different levels. A standard build pulls precompiled native libraries from a package repository and only compiles the application code. A full build compiles LibVLC from source, which requires a Linux environment with specific dependencies and the Android SDK and NDK installed. Instructions are in the README and the VideoLAN wiki.

Code contributions are accepted through the project's GitLab instance, not GitHub. Translation contributions go through Transifex. The app is licensed under GPLv2 or later, and LibVLC is licensed under LGPLv2. Bug reports and feature requests are tracked on the VideoLAN GitLab issue tracker.

Where it fits