PHP FFMpeg Recipes ================== Initializing FFMpeg ------------------- In the examples we will show you, we assume we work in an environnment where FFMpeg has been initialized to ``$ffmpeg`` var ; there are two ways to initialize the environment : Loading FFMpeg automatically ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The easiest way to initialize ``FMpeg`` it is to call the loader ; this will look in your PATH environment variable to find ffmpeg/avconv binary : .. code-block:: php pushHandler(new NullHandler()); // You have to pass a Monolog logger // This logger provides some usefull infos about what's happening $ffmpeg = FFMpeg::load($logger); .. note:: FFMpeg and FFProbe both requires a logger with gives feedback about what's happening. By passing a NullHandler to the logger, you disable the logging system. Use custom binary ^^^^^^^^^^^^^^^^^ You can also initialize with a custom path to the binary : .. code-block:: php open('Video.mpeg') ->encode($oggFormat, 'file.ogv') ->close(); .. note: ``FFmpeg`` methods always return the object itself so you can chain multiple methods. Create HTML5 videos ^^^^^^^^^^^^^^^^^^^ PHP-FFMpeg provides three video format out of the box : HTML5 video formats. These formats are available as these objects : - ``FFMpeg\Format\Video\WebM`` - ``FFMpeg\Format\Video\X264`` - ``FFMpeg\Format\Video\Ogg`` .. code-block:: php setDimensions(320, 240) ->setFrameRate(15) ->setGopSize(25); $x264Format = new Video\X264(); $x264Format->setDimensions(320, 240) ->setFrameRate(15) ->setGopSize(25); $oggFormat = new Video\Ogg(); $oggFormat->setDimensions(320, 240) ->setFrameRate(15) ->setGopSize(25); $ffmpeg->open('Video.mpeg') ->encode($webMFormat, 'file.webm') ->encode($x264Format, 'file.mp4') ->encode($oggFormat, 'file.ogv') ->close(); .. note: Use PHP-MP4Box to make it compatible with pseudo stream ! Create your own media type ^^^^^^^^^^^^^^^^^^^^^^^^^^ FFProbe recipes --------------- create HTML5 videos ^^^^^^^^^^^^^^^^^^^