Specialized format converter tools for MP3 players.
This program converts audio, images, text, and videos to device-specific formats for optimal playback and quality. Many converters are already built in converters, but you may need to create your own converter if you want optimal playback for a specific device.
A limiting criteria for device selecting is necessary to prevent redundancy.
mp3c targets constrained media devices where content must be preprocessed into the device's preferred viewing orientation and resolution. Devices that already provide robust rotation, scaling, zooming, or cropping functionality are generally out of scope, though some exceptions may apply when it makes sense. We aim to avoid writing multi-case operations and instead streamline into one consistent pipeline.
- If both portrait and orientations for an image or video display correctly, choose the device's screen orientation (i.e., portrait player receives a portrait image, even if a landscape image work, too).
- If rotation is needed or ambiguous, use the device's preferred rotation for the content. This can be determined by playing a video, or by viewing an image which has the opposite orientation of the device's screen. Most ATJ devices prefer counter-clockwise rotation, while most SL devices prefer clockwise rotation, but the rule is not always true, especially for landscape devices. If the device has a square screen, do not rotate. If intended rotation is entirely ambiguous (i.e., landscape fixed-size players), clockwise rotation is preferred.
- Always ensure the content fills the entire screen (crop).
- Copy the example config to config.sh.
- Run
./main.sh.
A Dockerfile is bundled for dependency management. docker.sh can be used to
build the image and start the conversion process. config.sh will be
bind-mounted so that the image does not need to be rebuilt when the config
changes. The working folder is shared with the docker container.
./docker.sh build: Only needs to be run once../docker.sh run: Executesmain.shand starts the program../docker.sh clean: Removes the container.