# doikki/dkvideoplayer

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/doikki-dkvideoplayer).**

5,296 stars · 1,067 forks · Java · apache-2.0

## Links

- GitHub: https://github.com/Doikki/DKVideoPlayer
- awesome-repositories: https://awesome-repositories.com/repository/doikki-dkvideoplayer.md

## Topics

`android` `exoplayer` `ffmpeg` `filter` `ijkplayer` `mediaplayer` `opengl` `player` `tiktok` `video` `video-player` `watermark`

## Description

DKVideoPlayer is an Android video player library and media playback framework designed to integrate advanced streaming and playback capabilities into mobile applications. It provides a hardware-accelerated video renderer and a customizable UI kit for building player interfaces, including support for picture-in-picture floating windows.

The framework distinguishes itself through specialized interactive features, such as real-time comment overlays, frame capture snapshots, and gesture-based controls for adjusting volume, brightness, and playback progress. It also supports multi-stream playback, allowing multiple independent player instances to run simultaneously within a single application.

The library covers a broad range of playback management capabilities, including multi-format media support, sequential playlist playback with preloading, and playback speed control. To optimize performance, it utilizes stream caching and texture-based rendering, while providing sensor-driven orientation switching for automatic fullscreen transitions.

The system includes monitoring tools to track playback state, window visibility, and dimensional changes to trigger application logic.

## Tags

### Mobile Development

- [Mobile Video Player Development](https://awesome-repositories.com/f/mobile-development/mobile-video-player-development.md) — Provides a comprehensive framework for building custom video player interfaces and streaming capabilities for Android apps.

### Part of an Awesome List

- [Sequential Playlists](https://awesome-repositories.com/f/awesome-lists/media/video-playback/sequential-playlists.md) — Implements sequential playlist playback with preloading to ensure seamless transitions between videos. ([source](https://github.com/Doikki/DKVideoPlayer/wiki))
- [Concurrent Player Instances](https://awesome-repositories.com/f/awesome-lists/media/video-playback/concurrent-player-instances.md) — Allows multiple independent player instances to run simultaneously within a single application process.
- [Multi-Window Stream Players](https://awesome-repositories.com/f/awesome-lists/media/video-playback/multi-window-stream-players.md) — Supports running multiple independent video player instances simultaneously for side-by-side or complex layout viewing. ([source](https://github.com/Doikki/DKVideoPlayer/wiki))

### Data & Databases

- [Video Content Caching](https://awesome-repositories.com/f/data-databases/local-first-storage/local-caching-layers/video-content-caching.md) — Utilizes a memory-buffered caching mechanism for network video streams to minimize playback stuttering. ([source](https://github.com/Doikki/DKVideoPlayer/wiki))

### Development Tools & Productivity

- [Video Playback Libraries](https://awesome-repositories.com/f/development-tools-productivity/api-development-sdks/embeddable-libraries/video-playback-libraries.md) — Offers an embeddable video playback library for integrating advanced streaming and playback into Android applications.

### Graphics & Multimedia

- [Digital Media Playback](https://awesome-repositories.com/f/graphics-multimedia/digital-media-playback.md) — Provides a comprehensive framework for streaming and rendering digital video from various storage mediums on mobile.
- [Video Renderers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/3d-graphics-pipelines/scene-renderers/high-quality-scene-rendering/high-dynamic-range-rendering/video-renderers.md) — Implements a hardware-accelerated rendering system for high-quality video output and frame capturing.
- [Render-to-Texture Buffers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/3d-graphics-pipelines/texture-mapping-pipelines/render-to-texture-buffers.md) — Utilizes hardware-accelerated texture-based rendering to enable high-performance video playback and frame capturing.
- [Video Encoding and Decoding](https://awesome-repositories.com/f/graphics-multimedia/video-encoding-and-decoding.md) — Provides hardware-accelerated video decoding options to ensure compatible playback across different devices. ([source](https://github.com/Doikki/DKVideoPlayer/wiki))
- [UI Overlay Layers](https://awesome-repositories.com/f/graphics-multimedia/visual-layer-composition/ui-overlay-layers.md) — Uses a layer-based system to stack UI overlays for subtitles and real-time comments on top of video.
- [Playback Preloaders](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-playback/playback-preloaders.md) — Implements playback preloading to buffer upcoming media files for seamless transitions in sequential playlists.
- [Interactive Video Features](https://awesome-repositories.com/f/graphics-multimedia/interactive-video-features.md) — Integrates advanced interactive capabilities including picture-in-picture mode, real-time comment overlays, and frame capture.
- [Media Playback Controls](https://awesome-repositories.com/f/graphics-multimedia/media-playback-controls.md) — Provides interfaces and APIs for controlling playback state, volume, and brightness through gesture-based inputs. ([source](https://github.com/Doikki/DKVideoPlayer/wiki))
- [Media Stream Buffering](https://awesome-repositories.com/f/graphics-multimedia/media-stream-buffering.md) — Implements media stream buffering to store segments locally and prevent playback stuttering from remote sources.
- [Multi-Format Media Players](https://awesome-repositories.com/f/graphics-multimedia/multi-format-media-players.md) — Capable of rendering a wide array of video and audio codecs and container formats via common network protocols. ([source](https://github.com/Doikki/DKVideoPlayer/wiki/%E6%94%AF%E6%8C%81%E7%9A%84%E5%AA%92%E4%BD%93%E6%A0%BC%E5%BC%8F))
- [Playback Quality Optimizations](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/video-streaming/playback-quality-optimizations.md) — Optimizes streaming quality using content caching and preloading to ensure seamless transitions between clips.
- [Video Frame Capture](https://awesome-repositories.com/f/graphics-multimedia/video-frame-capture.md) — Allows users to take snapshots of current video frames using texture-based view extraction. ([source](https://github.com/Doikki/DKVideoPlayer/wiki))

### User Interface & Experience

- [Customizable UI Components](https://awesome-repositories.com/f/user-interface-experience/customizable-ui-components.md) — Provides a collection of customizable UI components for building branded player controls and interactive overlays.
- [Custom Video Player UIs](https://awesome-repositories.com/f/user-interface-experience/mobile-interfaces/video-interfaces/custom-video-player-uis.md) — Provides a framework for building specialized video player interfaces with gesture-based controls and custom overlays.
- [Playback Controllers](https://awesome-repositories.com/f/user-interface-experience/playback-controllers.md) — Provides a customizable UI kit and APIs for building personalized video player interfaces and controls. ([source](https://github.com/Doikki/DKVideoPlayer/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98))
- [Gesture-to-Action Mappings](https://awesome-repositories.com/f/user-interface-experience/touch-gesture-handlers/touch-event-processors/coordinate-to-translation-mapping/input-to-action-mappings/gesture-to-action-mappings.md) — Provides logic to map touch gestures and double-taps to player actions like volume and brightness adjustments.
- [Picture-in-Picture Interfaces](https://awesome-repositories.com/f/user-interface-experience/picture-in-picture-interfaces.md) — Implements a picture-in-picture interface allowing video to play in a detached floating window over other apps.
- [Sensor-Driven Toggles](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/presentation-modes/fullscreen-controls/windowed-fullscreen-toggles/sensor-driven-toggles.md) — Implements automatic fullscreen transitions triggered by the device gravity sensor. ([source](https://github.com/Doikki/DKVideoPlayer/wiki))
- [Video Players](https://awesome-repositories.com/f/user-interface-experience/video-players.md) — Provides components for embedding and controlling multiple concurrent video playback instances within a user interface.

### Content Management & Publishing

- [Bullet Comment Rendering](https://awesome-repositories.com/f/content-management-publishing/content-aggregation-curation/comment-systems/bullet-comment-rendering.md) — Ships an engine for rendering scrolling, overlay-style bullet comments over live video playback. ([source](https://github.com/Doikki/DKVideoPlayer/wiki))
- [Custom Overlay Layers](https://awesome-repositories.com/f/content-management-publishing/media-management/subtitle-management-systems/subtitle-rendering-layers/custom-overlay-layers.md) — Supports inserting additional view layers into the player container for subtitles and real-time comment overlays. ([source](https://github.com/Doikki/DKVideoPlayer/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98))
