Giter Site home page Giter Site logo

agaconv's Introduction

AGAConv

Overview

This is a retro computing just-for-fun project. AGAConv is a CDXL video converter for Commodore-Amiga computers. It can convert modern videos (MP4, etc.) into the CDXL format which can be played with AGABlaster on an AGA Commodore-Amiga computer. The first Commodore-Amiga computer with the AGA chipset was released in 1992. Commodore went bankrupt in April 1994.

The CDXL format was created by Commodore primarily for the Commodore CDTV, released 1991, to permit playback of video from CD-ROM in the early 1990s. The CDXL format is a simple streaming format, consisting of linear concatenated chunks (packets), each with an uncompressed frame and associated audio data. In addition to the original 12-bit colors, AGAConv also supports 24-bit colors, as supported by Commodore Amiga AGA systems released in 1992+.

AGAConv utilizes ffmpeg to extract video frames and audio data from videos and encodes the extracted data into the CDXL format.

Features

Overview of supported features:

  • Configuration file allows to set any options as default.
  • Formats:
    • Standard CDXL with optimized bitplanes and frequency adjustment
    • Standard CDXL with fixed frames and frequency adjustment
    • Custom CDXL with optimized color palette and bitplanes, and exact frequency
  • Each CDXL frame with its own color palette
  • Color modes:
    • AGA8 to AGA2, 24 bit colors
    • OCS5 to OCS2, 12 bit colors
    • HAM8, 24 bit colors (requires ham_convert)
    • HAM6, EHB, 12 bit colors (requires ham_convert)
  • Screen (resolution) modes:
    • Lores, Hires, Superhires
  • Audio
    • 8-bit mono/stereo
  • Encoding of custom CDXL videos (minimal number of bitplanes in each frame)
    • With 24-bit color palette and variable length frames
    • Any audio frequency
  • Encoding of standard CDXL videos (fixed number of bitplanes)
    • Audio Frequency is automatically adjusted such that all CDXL frames have the same size
    • 12-bit colors (default)
    • 24-bit colors are supported in RGB 3-byte format (same as IFF/ANIM CMAP chunk body data)
  • More information about video conversions can be found on the AGAConv website.

How It Works

AGAConv uses ffmpeg to extract video frames and audio data from any video format supported by ffmpeg and encodes them into a CDXL video. For HAM conversions it can integrate the tool ham_convert into the conversion pipeline. The CDXL video can be played with AGABlaster on a Commodore-Amiga computer.

Requirements (Ubuntu)

You need to install the following dependencies before you can build:

  • sudo apt install make g++ libpng-dev man-db ffmpeg

Requirements (MacOS)

On MacOS you will need to install dependencies via Homebrew:

  • brew install libpng ffmpeg doxygen pandoc

Building from source

AGAConv can be built from source and run on Ubuntu as follows:

  • cd agaconv
  • make -j6

Builds the excutable 'bin/agaconv'.

  • 'make view-man' shows the man page (without installing it)
  • 'make clean' removes all generated files.

Binary Distribution - Ubuntu PPA Installer

  • A binary distribution of AGAConv 1.0+ is available as PPA package and can be installed with apt on Ubuntu.
  • Instructions for the binary PPA installation can be found on the AGAConv website.

Where to find more information

Version

Version: 1.1.0

Author

Author: Markus Schordan, Copyright 2019-2024.

Contributors

Contributor: Emiliano Esposito (2024) - MacOS layer support/fixes, last frame audio spike bugfix

License

License: GPL v3+ open-source

Acknowledgments

  • Thanks to Jean Bollaërt for testing the pre-release version of AGAConv 0.9.4 on Windows 10 with Microsoft's Ubuntu app/terminal.
  • Thanks to Sebastian Sieczko for adding command line options to his graphic converter ham_convert such that it could be integrated into the AGAConv conversion pipeline.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.