PHPackages                             media-alchemyst/media-alchemyst - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. media-alchemyst/media-alchemyst

ActiveLibrary[Image &amp; Media](/categories/media)

media-alchemyst/media-alchemyst
===============================

An Object Oriented wrapper for easy multimedia conversion, based on Imagine, FFMpeg, SwfTools, Unoconv and other libs

v4.1.9(2y ago)68220.2k↑368.7%16[2 issues](https://github.com/alchemy-fr/Media-Alchemyst/issues)[1 PRs](https://github.com/alchemy-fr/Media-Alchemyst/pulls)1MITPHPPHP &gt;=5.3.3CI failing

Since Jul 18Pushed 2y ago9 watchersCompare

[ Source](https://github.com/alchemy-fr/Media-Alchemyst)[ Packagist](https://packagist.org/packages/media-alchemyst/media-alchemyst)[ RSS](/packages/media-alchemyst-media-alchemyst/feed)WikiDiscussions master Synced yesterday

READMEChangelog (10)Dependencies (17)Versions (40)Used By (1)

MediAlchemyst
=============

[](#medialchemyst)

A PHP 7.0+ lib to transmute media files.

[![CircleCI](https://camo.githubusercontent.com/4f2341cb8a934361b81776875295579bd36dc83cbad230c6ad21d93a985b3f42/68747470733a2f2f636972636c6563692e636f6d2f67682f616c6368656d792d66722f4d656469612d416c6368656d7973742e7376673f7374796c653d737667)](https://circleci.com/gh/alchemy-fr/Media-Alchemyst)

- Want to extract audio from a video file ?
- Want to convert an office document to an image?
- Want to resize images ?
- Want to generate a Gif animation from a video ?

Media-Alchemyst is a tool to transmute your medias from media-type to media-type.

Usage example
-------------

[](#usage-example)

```
use MediaAlchemyst\Alchemyst;
use MediaAlchemyst\Specification\Animation;
use MediaAlchemyst\Specification\Image;
use MediaAlchemyst\Specification\Video;

$alchemyst = Alchemyst::create();

$video = new Video();
$video->setDimensions(320, 240)
    ->setFramerate(15)
    ->setGOPSize(200);

// AMAZING
$alchemyst
    ->turnInto('movie.mp4', 'animation.gif', new Animation())
    ->turnInto('movie.mp4', 'screenshot.jpg', new Image())
    ->turnInto('movie.mp4', 'preview.ogv', $video);
```

What is currently supported ?
-----------------------------

[](#what-is-currently-supported-)

- Working install of FFmpeg (for Audio / Video processing)
- GPAC (for X264 Video processing)
- Perl (for metadata analysis)
- GraphicsMagick and its Gmagick PHP Extension (recommended) or ImageMagick (Image processing)
- Universal Office Converter (unoconv) which supports about 100 different document formats
- SWFTools (for Flash files processing)

Customize drivers
-----------------

[](#customize-drivers)

Drivers preferences can be specified through the `DriversContainer` :

```
use MediaAlchemyst\Alchemyst;
use MediaAlchemyst\DriversContainer;

$drivers = new DriversContainer();
$drivers['configuration'] = array(
    'ffmpeg.threads'               => 4,
    'ffmpeg.ffmpeg.timeout'        => 3600,
    'ffmpeg.ffprobe.timeout'       => 60,
    'ffmpeg.ffmpeg.binaries'       => '/path/to/custom/ffmpeg',
    'ffmpeg.ffprobe.binaries'      => '/path/to/custom/ffprobe',
    'imagine.driver'               => 'imagick',
    'gs.timeout'                   => 60,
    'gs.binaries'                  => '/path/to/custom/gs',
    'mp4box.timeout'               => 60,
    'mp4box.binaries'              => '/path/to/custom/MP4Box',
    'swftools.timeout'             => 60,
    'swftools.pdf2swf.binaries'    => '/path/to/custom/pdf2swf',
    'swftools.swfrender.binaries'  => '/path/to/custom/swfrender',
    'swftools.swfextract.binaries' => '/path/to/custom/swfextract',
    'unoconv.binaries'             => '/path/to/custom/unoconv',
    'unoconv.timeout'              => 60,
);

$alchemyst = new Alchemyst($drivers);
$alchemyst
    ->turnInto('movie.mp4', 'animation.gif', new Animation())
```

Silex service provider ?
------------------------

[](#silex-service-provider-)

Need a [Silex](silex.sensiolabs.org) service provider ? Of course it's provided !

Please note that Media-Alchemyst service provider requires MediaVorus service provider.

```
use Silex\Application;
use MediaAlchemyst\Alchemyst;
use MediaAlchemyst\MediaAlchemystServiceProvider;
use MediaVorus\MediaVorusServiceProvider;
use PHPExiftool\PHPExiftoolServiceProvider;

$app = new Application();

$app->register(new PHPExiftoolServiceProvider());
$app->register(new MediaAlchemystServiceProvider());

// Have fun OH YEAH
$app['media-alchemyst']->turnInto('movie.mp4', 'animation.gif', new Animation());
```

You can customize the service provider with any of the following options :

```
$app->register(new MediaVorusServiceProvider(), array(
    'media-alchemyst.configuration' => array(
        'ffmpeg.threads'               => 4,
        'ffmpeg.ffmpeg.timeout'        => 3600,
        'ffmpeg.ffprobe.timeout'       => 60,
        'ffmpeg.ffmpeg.binaries'       => '/path/to/custom/ffmpeg',
        'ffmpeg.ffprobe.binaries'      => '/path/to/custom/ffprobe',
        'imagine.driver'               => 'imagick',
        'gs.timeout'                   => 60,
        'gs.binaries'                  => '/path/to/custom/gs',
        'mp4box.timeout'               => 60,
        'mp4box.binaries'              => '/path/to/custom/MP4Box',
        'swftools.timeout'             => 60,
        'swftools.pdf2swf.binaries'    => '/path/to/custom/pdf2swf',
        'swftools.swfrender.binaries'  => '/path/to/custom/swfrender',
        'swftools.swfextract.binaries' => '/path/to/custom/swfextract',
        'unoconv.binaries'             => '/path/to/custom/unoconv',
        'unoconv.timeout'              => 60,
    ),
    'media-alchemyst.logger' => $logger,  // A PSR Logger
));

```

License
-------

[](#license)

This is MIT licensed, enjoy :)

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity47

Moderate usage in the ecosystem

Community28

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 82.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~114 days

Recently: every ~350 days

Total

37

Last Release

995d ago

Major Versions

0.5.1 → 4.1.02018-05-03

0.5.7 → v4.1.82023-09-14

PHP version history (3 changes)0.1PHP &gt;=5.3.2

0.2.1PHP &gt;=5.3.3

4.1.0PHP ~7.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/3c264f69af4c60cb9cc98a522b4663f4b6a2708629cabc14409478ab6fc35348?d=identicon)[romain](/maintainers/romain)

![](https://www.gravatar.com/avatar/ee4bb6d5bcc2f9456b41090151c1c8fb288e8949994d965b03b7e25648d663f4?d=identicon)[nmaillat](/maintainers/nmaillat)

![](https://www.gravatar.com/avatar/29e6fbd71f09a99d914808c6f8657bdcee975fad50d8316328a4b7647f1e8136?d=identicon)[jygaulier](/maintainers/jygaulier)

---

Top Contributors

[![romainneutron](https://avatars.githubusercontent.com/u/137574?v=4)](https://github.com/romainneutron "romainneutron (311 commits)")[![aynsix](https://avatars.githubusercontent.com/u/35221835?v=4)](https://github.com/aynsix "aynsix (14 commits)")[![nlegoff](https://avatars.githubusercontent.com/u/511494?v=4)](https://github.com/nlegoff "nlegoff (12 commits)")[![jygaulier](https://avatars.githubusercontent.com/u/1247618?v=4)](https://github.com/jygaulier "jygaulier (12 commits)")[![moctardiouf](https://avatars.githubusercontent.com/u/1235702?v=4)](https://github.com/moctardiouf "moctardiouf (8 commits)")[![nmaillat](https://avatars.githubusercontent.com/u/1225962?v=4)](https://github.com/nmaillat "nmaillat (6 commits)")[![bburnichon](https://avatars.githubusercontent.com/u/2437286?v=4)](https://github.com/bburnichon "bburnichon (5 commits)")[![marclaporte](https://avatars.githubusercontent.com/u/1004261?v=4)](https://github.com/marclaporte "marclaporte (4 commits)")[![xorti](https://avatars.githubusercontent.com/u/1307414?v=4)](https://github.com/xorti "xorti (3 commits)")[![jmontoyaa](https://avatars.githubusercontent.com/u/158935?v=4)](https://github.com/jmontoyaa "jmontoyaa (2 commits)")[![bryant1410](https://avatars.githubusercontent.com/u/3905501?v=4)](https://github.com/bryant1410 "bryant1410 (1 commits)")

---

Tags

imageimage processingaudiovideo processingvideoaudio processing

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/media-alchemyst-media-alchemyst/health.svg)

```
[![Health](https://phpackages.com/badges/media-alchemyst-media-alchemyst/health.svg)](https://phpackages.com/packages/media-alchemyst-media-alchemyst)
```

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[phpro/grumphp

A composer plugin that enables source code quality checks.

4.3k16.7M1.0k](/packages/phpro-grumphp)[contao/core-bundle

Contao Open Source CMS

1231.6M2.8k](/packages/contao-core-bundle)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M574](/packages/shopware-core)[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.8M508](/packages/pimcore-pimcore)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
