diff --git a/docs/source/Recipes.rst b/docs/source/Recipes.rst index c5ed81a..5bb5e0f 100644 --- a/docs/source/Recipes.rst +++ b/docs/source/Recipes.rst @@ -1,12 +1,114 @@ PHP FFMpeg Recipes ================== -FFMpeg recipes --------------- +Initializing FFMpeg +------------------- -create HTML5 videos +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 : + +Autoloading FFMpeg +^^^^^^^^^^^^^^^^^^ + +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 ffedback 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(); + +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 ---------------