fanplayer is a lightweight, cross-platform video player built directly on top of FFmpeg, designed for Windows and Android environments. It is implemented in C with a focus on simplicity, performance, and minimal dependencies, avoiding external libraries such as SDL. The player directly interfaces with platform-specific rendering APIs like Direct3D and AudioTrack, enabling efficient audio and video output. It supports a wide range of media formats and streaming protocols while maintaining low CPU and memory usage compared to traditional FFmpeg players. The architecture emphasizes synchronization accuracy, ensuring smooth playback and stable audio-video alignment. fanplayer also includes advanced playback controls such as variable speed and frame stepping. Overall, it serves as both a functional player and a reference implementation for building efficient multimedia applications.
Features
- Low CPU and memory usage for efficient playback
- Direct rendering using platform-specific APIs
- Accurate audio and video synchronization
- Support for network streams and multiple formats
- Variable speed playback and frame stepping
- Snapshot capture and visual effects support