Add recipes
This commit is contained in:
		
					parent
					
						
							
								0efaad9af2
							
						
					
				
			
			
				commit
				
					
						0ceef488e3
					
				
			
		
					 1 changed files with 66 additions and 34 deletions
				
			
		|  | @ -48,24 +48,27 @@ You can also initialize with a custom path to the binary : | ||||||
|     <?php |     <?php | ||||||
|     $ffmpeg = new FFMpeg('/usr/local/src/ffmpeg/bin/ffmpeg', $logger); |     $ffmpeg = new FFMpeg('/usr/local/src/ffmpeg/bin/ffmpeg', $logger); | ||||||
| 
 | 
 | ||||||
| Defining formats | Formats | ||||||
| ---------------- | ------- | ||||||
| 
 | 
 | ||||||
| Two base format interface are given by PHP-FFMpeg : ``FFMpeg\Format\Audio`` and | PHP-FFMpeg provibes a set of predefined audio and video formats. These format | ||||||
| ``FFMpeg\Format\Video``. ``Video`` is an extension of ``Audio``. | are usefulll, but you'll probably need to define your own format with their own | ||||||
| By implementing one of these interface, you're ready to encode a video. | resize rules, etc... | ||||||
| 
 | 
 | ||||||
| But you format can implement more than these interfaces ; PHP-FFMpeg provides a  | This section describe hox to use media formats, and how to define them.  | ||||||
| set of interfaces to transcode, resize and resample audio / video. |  | ||||||
| 
 | 
 | ||||||
| PHP-FFMpeg also provides a set of default audio and video usefull formats for | .. note:: Defining a format is just about implementing interfaces. | ||||||
| web usages. |  | ||||||
| 
 | 
 | ||||||
| Encode a video | Video | ||||||
| ^^^^^^^^^^^^^^ | ^^^^^ | ||||||
| 
 | 
 | ||||||
| To encode a video, you have to define the target format. A format is an object | This section describes video processing and Interfaces for building video  | ||||||
| that implements ``FFMpeg\Format\Video`` | formats. | ||||||
|  | 
 | ||||||
|  | Simple transcoding | ||||||
|  | ++++++++++++++++++ | ||||||
|  | 
 | ||||||
|  | To transcode a video, you have to pass the target format to FFMpeg. | ||||||
| 
 | 
 | ||||||
| The following example initialize a Ogg format and encodes a `Video.mpeg` to a | The following example initialize a Ogg format and encodes a `Video.mpeg` to a | ||||||
| target file `file.ogv` : | target file `file.ogv` : | ||||||
|  | @ -84,11 +87,10 @@ target file `file.ogv` : | ||||||
| .. note:: ``FFmpeg`` methods always return the object itself so you can chain | .. note:: ``FFmpeg`` methods always return the object itself so you can chain | ||||||
|     multiple methods. |     multiple methods. | ||||||
| 
 | 
 | ||||||
| Encode for HTML5 | HTML5 | ||||||
| ^^^^^^^^^^^^^^^^ | +++++ | ||||||
| 
 | 
 | ||||||
| PHP-FFMpeg provides three video format out of the box : HTML5 video formats. | 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\WebM`` | ||||||
|  - ``FFMpeg\Format\Video\X264`` |  - ``FFMpeg\Format\Video\X264`` | ||||||
|  | @ -119,13 +121,17 @@ These formats are available as these objects : | ||||||
|         ->encode($oggFormat, 'file.ogv') |         ->encode($oggFormat, 'file.ogv') | ||||||
|         ->close(); |         ->close(); | ||||||
| 
 | 
 | ||||||
|  | .. note:: All formats provided by PHP-FFMpeg extends DefaultVideo, have a look | ||||||
|  |     at the API doc for more information on its behavior. | ||||||
|  | 
 | ||||||
| .. note:: Use PHP-MP4Box to make it compatible with pseudo stream ! | .. note:: Use PHP-MP4Box to make it compatible with pseudo stream ! | ||||||
| 
 | 
 | ||||||
| Create your own media type | Create your own media type | ||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ | ++++++++++++++++++++++++++ | ||||||
| 
 | 
 | ||||||
| It is very easy to define the media type you want as target. All you need to  | PHP-FFMpeg provides ``FFMpeg\Format\Video``, as base interface for creating a | ||||||
| do is implement the ``FFMpeg\Format\Video`` interface | Video format. To define a target format, all you need to do is implement this | ||||||
|  | Interface. | ||||||
| 
 | 
 | ||||||
| .. code-block:: php | .. code-block:: php | ||||||
| 
 | 
 | ||||||
|  | @ -162,13 +168,13 @@ PHP-FFmpeg brings more interfaces for your video formats : | ||||||
| .. note:: You can combine these features in one video format. | .. note:: You can combine these features in one video format. | ||||||
| 
 | 
 | ||||||
| Advanced media type | Advanced media type | ||||||
| ^^^^^^^^^^^^^^^^^^^ | +++++++++++++++++++ | ||||||
| 
 | 
 | ||||||
| This section present basic usage of the different interfaces. You can combine  | This section present basic usage of the different interfaces. You can combine  | ||||||
| them in your own format. | them in your own format. | ||||||
| 
 | 
 | ||||||
| Resizable | Resizable | ||||||
| +++++++++ | ......... | ||||||
| 
 | 
 | ||||||
| This interface provide an easy way to resize a video | This interface provide an easy way to resize a video | ||||||
| The example below resizes a video by half. | The example below resizes a video by half. | ||||||
|  | @ -198,7 +204,7 @@ The example below resizes a video by half. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| Resamplable | Resamplable | ||||||
| +++++++++++ | ........... | ||||||
| 
 | 
 | ||||||
| This interface provide an easy way to resample a video | This interface provide an easy way to resample a video | ||||||
| The example below resample the video at 15 frame per second with a keyframe  | The example below resample the video at 15 frame per second with a keyframe  | ||||||
|  | @ -232,7 +238,7 @@ every 30 image. | ||||||
|         ->close(); |         ->close(); | ||||||
| 
 | 
 | ||||||
| Interactive | Interactive | ||||||
| +++++++++++ | ........... | ||||||
| 
 | 
 | ||||||
| This interface provide a method to list available codec for the format | This interface provide a method to list available codec for the format | ||||||
| The example below provide a format object listing available videocodec for | The example below provide a format object listing available videocodec for | ||||||
|  | @ -265,17 +271,45 @@ flash video. | ||||||
|         ->encode($format, 'file.mp4') |         ->encode($format, 'file.mp4') | ||||||
|         ->close(); |         ->close(); | ||||||
| 
 | 
 | ||||||
| Adding custom commandline options |  | ||||||
| +++++++++++++++++++++++++++++++++ |  | ||||||
| 
 | 
 | ||||||
| If you need to add custom FFmpeg command line option, you can use the  | Audio | ||||||
|  | ^^^^^ | ||||||
|  | 
 | ||||||
|  | This section describes audio processing and Interfaces for building video  | ||||||
|  | formats. | ||||||
|  | 
 | ||||||
|  | Simple transcoding | ||||||
|  | ++++++++++++++++++ | ||||||
|  | 
 | ||||||
|  | Extract soundtrack from movie | ||||||
|  | +++++++++++++++++++++++++++++ | ||||||
|  | 
 | ||||||
|  | Create your own media type | ||||||
|  | ++++++++++++++++++++++++++ | ||||||
|  | 
 | ||||||
|  | Advanced media type | ||||||
|  | +++++++++++++++++++ | ||||||
|  | 
 | ||||||
|  | Resamplable | ||||||
|  | ........... | ||||||
|  | 
 | ||||||
|  | Transcodable | ||||||
|  | ............ | ||||||
|  | 
 | ||||||
|  | Interactive | ||||||
|  | ........... | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Custom commandline options | ||||||
|  | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||||||
|  | 
 | ||||||
|  | If you need to add custom FFmpeg command line option, use the  | ||||||
| ``FFMpeg\Format\Audio::getExtraParams`` method. | ``FFMpeg\Format\Audio::getExtraParams`` method. | ||||||
| As Video extends Audio, it is also available in any format. | As ``Video`` extends ``Audio``, it is also available in any format. | ||||||
| 
 | 
 | ||||||
| The following example shows a getExtraParams usage for aac encoding. With the | The following example shows a ``getExtraParams`` usage for aac encoding. With the | ||||||
| latest FFMPeg version, aac encoding can be executed with command parameters | latest AvConv / FFMPeg version, aac encoding has to be executed with extra command parameters | ||||||
| ``-strict experimental``. Here is what happens if you do not add this extra | ``-strict experimental``. | ||||||
| parameter :  |  | ||||||
| 
 | 
 | ||||||
| .. code-block:: php | .. code-block:: php | ||||||
| 
 | 
 | ||||||
|  | @ -310,8 +344,6 @@ parameter : | ||||||
|         ->encode($format, 'output-aac.mp4') |         ->encode($format, 'output-aac.mp4') | ||||||
|         ->close(); |         ->close(); | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| FFProbe recipes | FFProbe recipes | ||||||
| --------------- | --------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue