vlc-android/README.md

150 lines
5.4 KiB
Markdown
Raw Normal View History

2017-01-04 16:54:24 +08:00
# VLC for Android
2022-03-07 13:59:32 +08:00
2018-12-16 23:29:21 +08:00
This is the official **Android** port of [VLC](https://videolan.org/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.
2017-01-04 16:54:24 +08:00
2020-03-27 15:39:42 +08:00
- [Project Structure](#project-structure)
- [LibVLC](#libvlc)
- [License](#license)
2020-03-27 15:39:42 +08:00
- [Build](#build)
- [Build Application](#build-application)
- [Build LibVLC](#build-libvlc)
- [Contribute](#contribute)
- [Pull requests](#pull-requests)
- [Translations](#translations)
- [Issues and feature requests](#issues-and-feature-requests)
- [Support](#support)
## Project Structure
Here are the current folders of vlc-android project:
2022-03-07 13:59:32 +08:00
- extension-api : Application extensions SDK (not released yet)
2020-03-27 15:39:42 +08:00
- 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.
2018-12-16 23:29:21 +08:00
2020-03-27 15:39:42 +08:00
And more.
![LibVLC stack](https://images.videolan.org/images/libvlc_stack.png)
You can use our LibVLC module to power your own Android media player.
2022-03-07 14:02:38 +08:00
Download the `.aar` directly from [Maven](https://search.maven.org/artifact/org.videolan.android/libvlc-all) or build from source.
Have a look at our [sample codes](https://code.videolan.org/videolan/libvlc-android-samples).
2017-01-04 16:54:24 +08:00
## License
2022-03-07 13:59:32 +08:00
VLC for Android is licensed under [GPLv2 (or later)](COPYING). Android libraries make this, de facto, a GPLv3 application.
VLC engine *(LibVLC)* for Android is licensed under [LGPLv2](libvlc/COPYING.LIB).
2017-01-04 16:54:24 +08:00
## Build
2020-03-27 15:39:42 +08:00
Native libraries are published on bintray. So you can:
2022-03-07 13:59:32 +08:00
2020-03-27 15:39:42 +08:00
- 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 :
2022-03-07 13:59:32 +08:00
2020-03-27 15:39:42 +08:00
- `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
2017-01-04 16:54:24 +08:00
You will need a recent Linux distribution to build VLC.
2018-12-16 23:29:21 +08:00
It should work with Windows 10, and macOS, but there is no official support for this.
2017-01-04 16:54:24 +08:00
2020-03-27 15:39:42 +08:00
#### Setup
Check our [AndroidCompile wiki page](https://wiki.videolan.org/AndroidCompile/), especially for build dependencies.
Here are the essential points:
On Debian/Ubuntu, install the required dependencies:
2022-03-07 13:59:32 +08:00
```bash
2020-03-27 15:39:42 +08:00
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`
2017-01-04 16:54:24 +08:00
## Contribute
VLC is a libre and open source project, we welcome all contributions.
Just respect our [Code of Conduct](https://wiki.videolan.org/CoC/), and if you want do contribute to the UI or add a new feature, please open an issue first so there can be a discussion about it.
2018-12-16 23:29:21 +08:00
2018-05-24 17:53:58 +08:00
### Pull requests
2020-03-27 15:39:42 +08:00
Pull requests must be proposed on our [gitlab server](https://code.videolan.org/videolan/vlc-android/).
So you must create an account, fork vlc-android project, and propose your merge requests from it.
2022-03-07 13:59:32 +08:00
**Except for translations**, see the section below.
2018-05-24 17:53:58 +08:00
2020-03-27 15:39:42 +08:00
### Translations
You can help improving translations too by joining the [transifex vlc project](https://www.transifex.com/yaron/vlc-trans/dashboard/)
2018-05-24 17:53:58 +08:00
2020-03-27 15:39:42 +08:00
Translations merge requests are then generated from transifex work.
2017-01-04 16:54:24 +08:00
2018-05-24 17:53:58 +08:00
## Issues and feature requests
2020-03-27 15:39:42 +08:00
VLC for Android bugtracker is hosted on [VideoLAN gitlab](https://code.videolan.org/videolan/vlc-android/issues)
Please look for existing issues and provide as much useful details as you can (e.g. vlc app version, device and Android version).
2018-05-24 17:53:58 +08:00
2020-03-27 15:39:42 +08:00
A template is provided, please use it!
2017-01-04 16:54:24 +08:00
2022-03-07 13:59:32 +08:00
Issues without relevant information will be ignored, we cannot help in this case.
2017-01-04 16:54:24 +08:00
2020-03-27 15:39:42 +08:00
## Support
2017-01-04 16:54:24 +08:00
- Android mailing list: android@videolan.org
- bugtracker: https://code.videolan.org/videolan/vlc-android/issues
2017-01-04 16:54:24 +08:00
- IRC: *#videolan* channel on [freenode](http://freenode.net/)
- VideoLAN forum: https://forum.videolan.org/