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)65216.4k—7.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 1mo ago

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 92% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity46

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

949d 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

[php-ffmpeg/php-ffmpeg

FFMpeg PHP, an Object Oriented library to communicate with AVconv / ffmpeg

5.0k21.7M165](/packages/php-ffmpeg-php-ffmpeg)[pulse00/ffmpeg-bundle

Symfony bundle to provide PHP-FFmpeg as a Symfony service (https://github.com/alchemy-fr/PHP-FFmpeg)

57447.2k1](/packages/pulse00-ffmpeg-bundle)[fmonts/ffmpeg-bundle

Symfony bundle to provide PHP-FFmpeg as a Symfony service (https://github.com/PHP-FFMpeg/PHP-FFMpeg/)

12195.1k](/packages/fmonts-ffmpeg-bundle)

PHPackages © 2026

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