30 open-source projects similar to google/exoplayer, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best ExoPlayer alternative.
GSYVideoPlayer is a versatile video player framework for Android that acts as a multi-engine playback wrapper. It provides a unified playback interface to control different video playback kernels, such as ExoPlayer, IJKplayer, and MediaPlayer, ensuring compatibility across diverse mobile hardware. The framework distinguishes itself through a flexible architecture that allows for core component swapping, enabling the replacement of playback engines, managers, or rendering layers. It includes a dedicated video caching manager for local storage and a customizable media UI component that supports
Clappr is an HTML5 web media player and plugin-based framework used to render video and audio across different web platforms. It functions as a playback engine supporting adaptive bitrate streaming through HLS and DASH protocols to ensure smooth media delivery. The project is distinguished by a modular architecture that allows developers to extend player functionality and add support for new media formats via a plugin system. It also includes a dedicated controller for managing digital rights management license requests to secure premium content. The player covers a broad range of capabiliti
react-native-video is a cross-platform video player component for React Native that enables the playback of local and remote video files using native platform decoders. It functions as an adaptive streaming player supporting HLS, DASH, and SmoothStreaming formats with automatic bitrate selection and quality adaptation. The project is distinguished by its support for industry-standard digital rights management, including Widevine, FairPlay, and PlayReady, and a plugin-based architecture that allows for the injection of custom analytics or playback logic without modifying the core library. It a
hls.js is a JavaScript player library that enables HTTP Live Streaming playback in web browsers using the Media Source Extensions API. It functions as an adaptive bitrate streaming engine and a media streamer that manages the buffering and playback of video segments. The library features specialized capabilities for low latency streaming and digital rights management, allowing it to decrypt protected content via Encrypted Media Extensions. It includes a metadata processor for handling ID3 tags and date-range elements, as well as a pluggable loader interface to replace default network request
react-native-video is a cross-platform mobile video player component for applications that requires the ability to render local files and streaming media. It provides a specialized client for adaptive media streaming, adjusting video quality based on real-time network conditions. The project includes a DRM protected video player that secures and decrypts video assets using digital rights management standards. It also features a picture-in-picture video component that allows content to be detached into a floating window for multitasking on mobile devices. The library covers offline video play
Video.js is a customizable HTML5 video player framework and JavaScript media plugin system. It provides a foundation for rendering and controlling web video playback across different devices and screen sizes, supporting both standard HTML5 integration and adaptive bitrate streaming for live or on-demand content. The project is distinguished by a modular architecture that allows for the extension of playback functionality through a class-based plugin system and middleware-based method interception. This enables the development of tailored media interfaces and the integration of specialized beh
PLDroidPlayer is an Android video player SDK and customizable media playback framework. It provides a cross-platform media engine and a hardware-accelerated video decoder that supports multiple hardware architectures and includes an automatic fallback to software processing. The project functions as a network-optimized streaming client featuring custom DNS resolution and automatic latency optimization to reduce the delay in live broadcasts. It includes specialized capabilities for secure content playback of encrypted video streams using specific provider protocols. The framework covers a wid
This repository is a comprehensive collection of reference implementations and sample libraries for the Universal Windows Platform. It provides practical examples of how to use Windows Runtime APIs to build cross-device applications, including detailed guidance on XAML-based declarative user interfaces and DirectX-integrated rendering. The project distinguishes itself by providing a wide array of hardware integration suites, covering low-level communication with USB, Serial, I2C, SPI, and GPIO peripherals. It includes specialized implementations for mixed reality holographic rendering, advanc
This Android logging library is a toolkit for printing formatted, stylized, and filtered debug messages to the Android console and local files. It functions as a console log styler, a log file writer, and a formatter for converting complex data into human-readable text. The library provides specific utilities for customizing the visual appearance of logs by tracking thread information and call depth. It includes capabilities for converting JSON, XML, and collection data into readable formats and saving console entries to local files for offline analysis. The system covers broader log managem
ButterKnife is an Android view binding library and Java annotation processor that automates the linking of UI elements and resources to class fields and methods. It functions as a system for managing view references and event listeners to reduce repetitive setup code in Android applications. The library uses compile-time code generation to replace manual view lookups and type casting with generated helper classes, ensuring a reflection-free runtime. It differentiates itself by providing mechanisms for binding interaction events directly to methods, eliminating the need for anonymous inner cla
uamp is an audio media application framework and reference implementation for building music playback applications on Android. It provides a cross-device media framework designed to maintain functional and visual consistency across phones, tablets, Wear OS, Android TV, and Android Auto. The project features specific implementations for automotive-safe music control and Google Cast integration for remote playback. It includes a multi-form factor UI kit that demonstrates how to adapt a single media codebase to various screen sizes and device types. The framework covers core media capabilities
Toasty is a JavaScript toast notification library and frontend feedback widget. It provides a reusable UI notification component for displaying temporary, styled alert messages and status notifications within web applications. The library focuses on application status signaling and custom notification UI, allowing for the creation of personalized alert messages with unique icons and formatted text. It implements non-intrusive notification overlays to provide visual feedback without interrupting user workflow. The system manages notifications through a state-based queue and a centralized noti
VitamioBundle is an Android media player library and playback framework designed for decoding and rendering high-performance audio and video content. It provides a hardware-accelerated video decoder to reduce CPU load and battery consumption on mobile devices. The project includes an adaptive bitrate streaming client that adjusts video quality in real-time based on network conditions to prevent playback interruptions. It also features a video rendering engine capable of configuring pixel formats and chroma output to optimize visual quality for mobile displays. The library covers broad multim
XCL-Charts is a native Android charting library designed as a high-performance graphics engine for rendering complex, interactive data visualizations. It provides a comprehensive framework for drawing diverse 2D and 3D plots directly onto the native canvas, enabling the creation of custom user interface components for mobile applications. The library distinguishes itself through a robust architecture that handles coordinate mapping and object-oriented composition, allowing for the construction of sophisticated, multi-axis layouts. It supports real-time data exploration through gesture-driven
android-common is a collection of shared utility components and framework libraries for Android development. It provides specialized toolkits for reverse engineering, system utility management, data caching, and high-performance user interface components. The project includes a reverse engineering toolkit for inspecting application internals through package decompilation and manifest data extraction. It also features a system utility toolkit for managing file operations and executing shell commands within the Android operating system. The library covers several capability areas, including da
Shaka Player is a JavaScript library for streaming adaptive bitrate video and audio using open web standards in browsers. It functions as a media player that handles Dynamic Adaptive Streaming over HTTP and HTTP Live Streaming manifests and segments. The project includes a playback engine that integrates with Encrypted Media Extensions to authorize and unlock protected media streams. It further provides capabilities for downloading adaptive media and metadata to local storage for offline playback and rendering 360 and 180-degree video using specialized projections for virtual reality. The li
RxTool is an Android development utility library consisting of reusable components and helper classes for common mobile development tasks. It provides a coordinated set of toolkits for hardware interfacing, media processing, and user interface construction. The project features specialized implementations for mobile payment integration with Alipay and WeChat Pay, as well as dedicated tools for social sharing workflows. It includes a security-focused set of human verification widgets, such as puzzle and sliding captchas, to prevent automated bot interactions. The library covers a broad capabi
AndroidX is the official collection of Android Jetpack libraries for building Android applications. It provides a suite of backward-compatible APIs that expose modern platform features on older Android versions, ensuring consistent functionality across devices. The project is built around lifecycle-aware component architecture, with tools like ViewModel for preserving UI data across configuration changes, LiveData for lifecycle-aware data observation, and WorkManager for constraint-based background task scheduling. The project distinguishes itself through compile-time code generation and type
android-ktx is a Kotlin extension library for the Android framework. It provides a collection of idiomatic helper functions that wrap native system calls to reduce boilerplate and improve code readability throughout Android application development. The library implements a set of tools for building styled strings, transformation matrices, and graphical elements. It utilizes a builder-based syntax to simplify the construction of system objects such as content values and data bundles. The project covers a broad range of capabilities, including the simplification of view manipulations and time
AndroidUtilCode is an Android utility library and system API wrapper designed to reduce development boilerplate. It provides a collection of helper classes for common tasks including system settings management, file I/O, and hardware access. The project distinguishes itself through a comprehensive toolset for device management and UI assistance. It includes specialized capabilities for monitoring battery status, managing system volume and brightness, and implementing UI helpers to prevent duplicate click events. It also provides a dedicated system for coordinate conversion between different m
PiliPalaX is a video streaming mobile client designed for discovering and playing video content, including anime and live streams. It functions as a media content browser and a social media video platform, integrating video playback with community engagement features. The application includes a personalized video player with hardware acceleration and gesture-based controls for adjusting volume and brightness. It also incorporates privacy-focused tools, such as incognito browsing modes and user-blocking capabilities to control content visibility. The system covers broad capability areas inclu
This library is an Android animation framework designed to manage the visual transitions and entrance effects of dynamic list components. It provides a collection of pre-built animation primitives that trigger automatically when items are added, removed, or moved within a list, allowing developers to apply polished motion effects to interface elements. The project distinguishes itself by offering granular control over the timing, interpolation, and sequencing of these transitions. It supports the composition of multiple animation layers and the implementation of staggered motion effects, whic
Tinker is an Android hotfix framework designed to update application code, resources, and native libraries at runtime without requiring a full reinstallation or store update. It provides a comprehensive engine for injecting runtime fixes and managing the software lifecycle of deployed mobile applications. The framework distinguishes itself through a robust binary patching system that generates compact difference files between application versions, significantly reducing bandwidth usage during distribution. To ensure operational stability, it incorporates a crash-resilient safe mode that autom
JiaoZiVideoPlayer is an Android media player framework used to build mobile video interfaces. It serves as a unified interface layer that abstracts multiple backend playback engines to ensure consistent video delivery on mobile devices. The project integrates ExoPlayer and ijkPlayer, utilizing FFmpeg for broad codec support and efficient media decoding. This cross-backend approach allows the user interface to remain decoupled from specific playback engines, enabling the use of different decoding technologies based on hardware or software requirements. The framework provides a modular playbac
react-native-track-player is a cross-platform mobile audio player library for playing local and streamed audio files. It provides a background audio service that maintains music playback and responds to remote commands from lock screens and Bluetooth devices. The library includes a playback engine capable of decrypting audio files secured by industry-standard digital rights management and an adaptive bitrate streaming client that supports HLS and DASH formats to adjust audio quality based on network conditions. It also features an offline media storage manager for saving audio content locally
Icepick is an Android instance state library and persistence tool designed to automate the serialization and restoration of object state within Android bundles. It provides a framework for maintaining application state during activity recreation, configuration changes, and process death. The project utilizes annotation-driven code generation to create the boilerplate logic required for bundle manipulation and key management. It distinguishes itself through a provider-based serialization system that allows for custom serialization and deserialization logic when handling complex types that do n
PictureSelector is an Android media selection library and toolkit for browsing and picking images, videos, and audio files from a device album. It provides a comprehensive framework for capturing new photos and videos via system hardware, extracting media metadata, and managing the resulting files. The library features a modular architecture that allows for custom media engine implementations to replace default image loading, file compression, and video playback logic. It offers extensive UI customization, enabling the replacement of default layout resources and theme configurations to modify
CustomActivityOnCrash is an Android crash handling library that replaces the default system crash dialog with a custom activity. It functions as an application recovery tool and error interface manager, designed to handle application failures gracefully. The library provides mechanisms to customize the visual appearance of error screens using specific themes and translated strings. It manages application stability by preventing infinite crash cycles through time-based loop prevention and configuring whether error screens launch during background execution. The tool includes capabilities for
This project is a browser-based video conferencing platform that facilitates direct, peer-to-peer communication between participants. By utilizing browser-native media capture and direct network connections, it enables real-time audio, video, and screen sharing without relying on central media relay servers. The platform distinguishes itself through its focus on ephemeral, private communication. It generates unique, short-lived session identifiers for virtual rooms that exist only in memory, ensuring that no persistent user accounts or long-term storage are required. To maintain connection st
MVVMHabit is an Android development framework and base library that implements the MVVM architecture using Android Architecture Components. It provides a pre-integrated foundation designed to decouple business logic from user interface rendering and lifecycle management. The project distinguishes itself by bundling a comprehensive set of architectural templates, including a reactive event bus for decoupled component communication, token-based data exchange between logic instances, and a single-activity fragment hosting system to reduce manifest overhead. The framework covers broad capability