CodeXvert is a modern web application built with Kotlin Multiplatform that simplifies managing and transcoding your video library. It provides a user-friendly interface to browse your videos, filter them by codecs, and convert between different video and audio codecs with ease.
- Video Library Management: Configure your library directory to search your video files and display the codec information.
- Codec Filtering: Filter your videos based on video and audio codecs for better organization and easy identification.
- Transcoding: Convert between different video and audio codecs with a simple interface. Supported codecs include H.264, H.265, AAC, MP3, Opus, AC3 and EAC3.
- Background Monitoring: Automatically monitor and manage your video library in the background, ensuring your library is always up-to-date.
To get started with CodeXvert, you can either run the application locally or deploy the Docker container.
- Clone the repository:
git clone https://github.com/jsixface/codexvert.git
- Navigate to the project directory:
cd codexvert
- Build the project:
./gradlew build
- Run the web application:
./gradlew :server:run
- Access the application in your browser at
http://localhost:8080
CodeXvert is available as a Docker image on the GitHub Container Registry. You can pull and run the latest image with the below command.
The indexed data about the files and their codecs are stored in /app/data/codex.db
. This should be mounted if you like
the ffprobe
parsing should be persisted.
docker run -d --rm \
--name codexvert \
-v ./data:/app/data \
-v /media:/media \
-p 8080:8080 \
ghcr.io/jsixface/codexvert:latest
services:
codexvert:
container_name: codexvert
image: ghcr.io/jsixface/codexvert:latest
restart: unless-stopped
ports:
- 8080:8080
volumes:
- ./data:/app/data
- /media:/media
- /etc/localtime:/etc/localtime:ro
This will start the CodeXvert application and expose it on http://localhost:8080.
CodeXvert is released under the AGPL-3.0 License.