Need help with ffmpeg-php?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

char0n
466 Stars 91 Forks BSD 3-Clause "New" or "Revised" License 229 Commits 4 Opened issues

Description

FFmpegPHP is a pure OO PHP port of ffmpeg-php library that was written in C. It adds an easy to use, object-oriented API for accessing and retrieving information from video and audio files. It has methods for returning frames from movie files as images that can be manipulated using PHP's image functions. This works well for automatically creating thumbnail images from movies. FFmpegPHP is also useful for reporting the duration and bitrate of audio files (mp3, wma...). FFmpegPHP can access many of the video formats supported by ffmpeg (mov, avi, mpg, wmv...)

Services available

!
?

Need anything else?

Contributors list

# 8,718
swagger
JavaScr...
openapi
ffprobe
104 commits
# 47,677
html5
Shell
ecmascr...
ffmpeg
7 commits
# 322,432
PHP
ffmpeg
ffprobe
4 commits
# 531,254
PHP
ffmpeg
ffprobe
Shell
1 commit
# 278,864
PHP
ffprobe
Django
Algolia
1 commit
# 9,512
PHP
timeago
Compose...
Symfony
1 commit
# 37,218
TypeScr...
vue2
GraphQL
React N...
1 commit
# 581,286
PHP
ffmpeg
ffprobe
1 commit
# 311,012
HTML
Shell
PHP
Symfony
1 commit

CircleCI

FFmpegPHP

FFmpegPHP is a pure OO PSR-4 compatible PHP port of ffmpeg-php library (that was written in C). It adds an easy to use, object-oriented API for accessing and retrieving information from video and audio files. It has methods for returning frames from movie files as images that can be manipulated using PHP image functions. This works well for automatically creating thumbnail images from movies. FFmpegPHP is also useful for reporting the duration and bitrate of audio files (mp3, wma...). FFmpegPHP can access many of the video formats supported by ffmpeg (mov, avi, mpg, wmv...)

Drop-in replacement for ffmpeg-php

FFmpegPHP can be used as a drop in replacement for ffmpeg-php library.

Documentation

FFmpegPHP API documentation can be found here http://char0n.github.io/ffmpeg-php/.

Requirements

  • PHP >=7
  • PHP extensions: gd, mbstring, xml
  • ffmpeg or ffprobe

Installation

Source code

Grab the source code located in

src/
directory and use it as you seem appropriate.

Composer installation

Grab the

composer.phar
which can install packages published on packagist.
 $ wget https://raw.githubusercontent.com/composer/getcomposer.org/1b137f8bf6db3e79a38a5bc45324414a6b1f9df2/web/installer -O - -q | php

This command will create file called

composer.phar
.

Create a file called

composer.json
and paste the following JSON into it:
 {
    "require": {
        "char0n/ffmpeg-php": "^3.0.0"
    }
 }

Install the FFmpegPHP by running the following command:

$ php composer.phar install

After this command is successfully executed, the new directory called

vendor/
is created. File structure of your current working directory should now look like this:
 - composer.json
 - composer.phar
 - vendor/

To verify that everything works as expected create new file called

test.php
inside your current working directory with the following content.
use Char0n\FFMpegPHP\Movie;

$movie = new Movie('./test.mp4'); var_dump($movie->getDuration());

Before you run the script you need to also download the testing movie file:

$ wget https://github.com/char0n/ffmpeg-php/raw/master/tests/data/test.mp4

Now run it.

$ php test.php

The output should be something similar to the following:

float(32.14)

Note

Notice the first line (

require './vendor/autoload.php';
) in the above script. This line is necessary because it configures how the FFmpegPHP will be included into your scripts and it auto-magically knows where to look for FFmpegPHP.

Using FFmpegPHP

Object Oriented interface

FFmpegPHP is build using PSR-4 standard and it's interface is purely Object Oriented. We're using standar OOP patterns to create our API.

use Char0n\FFMpegPHP\Movie;

$movie = new Movie('/path/to/media.mpeg'); $movie->getDuration(); // => 24

Compatibility layer

On top of our OO interface, there is an additional one that provides full compatibility with original ffmpeg-php library.

use Char0n\FFMpegPHP\Adapters\FFMpegMovie as ffmpeg_movie;

$movie = new ffmpeg_movie('/path/to/media.mpeg'); $movie->getDuration(); // => 24

Partnership with GoDaddy

GoDaddy started to use FFmpegPHP as part of it's services from November 2018. If you need a server with ffmpeg and FFmpegPHP installed on it contact GoDaddy and they'll do it for you as part of its "Expert Service". As author of FFmpegPHP I agreed to provide support for users coming from GoDaddy asking about FFmpegPHP. All incoming GoDaddy customers, please use GitHub issues as a support channel.

Author

  • char0n (Vladimír Gorej)
  • email: [email protected]
  • web: https://www.linkedin.com/in/vladimirgorej/

References

  • https://packagist.org/packages/char0n/ffmpeg-php
  • http://github.com/char0n/ffmpeg-php
  • http://ffmpeg-php.sourceforge.net/
  • http://www.phpclasses.org/package/5977-PHP-Manipulate-video-files-using-the-ffmpeg-program.html
  • http://freshmeat.net/projects/ffmpegphp

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.