Custom media player for telecom/raw codecs with decoding, streaming, and waveform playback.
I-Player is a custom media player that supports non-standard telecom codecs (G711, G726, G728) and enables:
- Decoding to WAV/MP3
- Instant playback via live chunked streaming
- Stable file-based playback with waveform
- Server-generated waveform for live streams
High-fidelity engineering dashboard for real-time signal processing and archive management.
Fully responsive mobile architecture for remote telemetry monitoring.
Premium dark-theme documentation system.
High-contrast light-theme documentation.
Core system architecture and codec compatibility modules.
Industrial core design language and system identity.
Client
- React + TypeScript (Vite)
- WaveSurfer.js (file-based waveform)
- Custom canvas waveform (live chunked streaming)
Server
- Node.js + Express + TypeScript
- FFmpeg (decode/transcode/stream)
- Prisma (metadata storage)
- Node.js 18+ (recommended)
- npm 9+ (or pnpm/yarn)
- FFmpeg available in PATH
- SQLite (default Prisma DB)
Repository URL (for reference):
https://github.com/getabalewKemaw/I-Player
git clone https://github.com/getabalewKemaw/I-Player.git
cd I-Player
cd client
npm install
cd ../server
npm install
Create a .env file in the root of the server/ folder:
DATABASE_URL="postgresql://Username:Password@localhost:Port/Dbname?schema=public"
PORT=3000
FFMPEG_PATH=
FFPROBE_PATH=
UPLOADS_DIR=./uploads
PROCESSED_DIR=./processed
TEMP_DIR=./temp
cd server
npm run dev
cd client
npm run dev
http://localhost:5173
Core Features
- Decode telecom codecs to WAV/MP3
- File-based streaming with HTTP Range
- Live chunked streaming with MSE for instant playback
- Server-generated waveform peaks for live streams
- Seamless switch to file-based playback after decode
- Playback controls: play/pause, seek, skip, volume, rate
Operational Flow
- File discovery and metadata extraction
- Store metadata in Prisma DB
- Stream from
uploads/(live) orprocessed/(file-based)
client/ # React UI + hooks + components
server/ # Express API + ffmpeg + chunking
docs/ # Architecture and implementation docs
Generated by Telecom Signal Systems