■FFmpegPHPclassの使い方

(これは、READMEドキュメント等を編集したものです) 作成:2014.2.3 ■Author/Version/License * Author : Olaf Erlandsen * Contact : olaftriskel@gmail.com * Skype : olaferlandsen * Version : 0.1.3 * Date : 11.18.2013( mm.dd.yyyy ) * License : http://opensource.org/licenses/gpl-license.php * Home Page: http://erlandsen.github.io/FFmpeg-PHP-Class/ ■ffmpeg.class.phpの利用環境 「ffmpeg.class.php」は、「PHP 5.3+」で「FFmpeg 0.5.12+」である環境で利用します。 「ffmpeg-extension」を利用せずに『FFmpeg』のPHPclassラッパーで処理するものです。 ■class名 FFmpeg( $ffmpeg = null ,$input = false ) _constructerでの設定 $ffmpegが省略値 'ffmpeg' $inputがあると入力ファイルパスを設定 ■FFmpegのメソッド [ 1] call( $method , $args = array() ) [ 2] redirectOutput( $std ) [ 3] output( $output = null , $forceFormat = null ) [ 4] forceFormat( $forceFormat ) [ 5] input( $file ) [ 6] thumb( $size , $start , $videoFrames = 1 ) [ 7] clear() [ 8] transpose( $transpose = 0 ) [ 9] vflip() [10] flip( $flip ) [11] aspect( $aspect ) [12] bitrate( $b ) [13] frameRate( $r ) [14] size( $s ) [15] position( $ss ) [16] duration( $t ) [17] itsoffset( $itsoffset ) [18] audioSamplingFrequency( $ar ) [19] audioBitrate( $ab ) [20] audioCodec( $acodec = 'copy' ) [21] audioChannels( $ac ) [22] audioQuality( $aq ) [23] audioDisable() [24] videoFrames( $number ) [25] videoCodec( $vcodec = 'copy' ) [26] videoDisable() [27] overwrite() [28] fileSizeLimit( $fs ) [29] progress( $progress ) [30] pass( $pass ) [31] ready( $append = null ) コマンド実行「exec」($appendデータを付加して) [32] ffmpeg( $ffmpeg ) [33] set( $key , $value = null , $append = false ) [34] grayScale( ) [35] loglevel( $level = "verbose" ) ■FFmpegのプロパティ $command ■サンプルプログラム /* --------------------- * #1: Input & output. * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->output( '/var/media/new.3gp' )->ready(); ?> /* --------------------- * #2: Simple frame rate. * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->frameRate( '30000/1001' )->output( '/var/media/new.3gp' )->ready(); ?> /* ------------------------------------------ * #3: Simple frame rate using method alias. * ------------------------------------------ */ <?php $FFmpeg = new FFmpeg; $FFmpeg->i( '/var/media/original.mp4' )->r( '30000/1001' )->output( '/var/media/new.3gp' )->ready(); ?> /* --------------------- * #4: Rotate video. * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->transpose( 2 )->output( '/var/media/new.3gp' )->ready(); ?> /* ----------------------------------------- * #5: Rotate video with alias "rotate". * ----------------------------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->rotate( 2 )->output( '/var/media/new.3gp' )->ready(); ?> /* --------------------- * #6: Force format. * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->forceFormat( '3gp' )->output( '/var/media/new.3gp' )->ready(); ?> /* ------------------------- * #7: Force format quickly. * ------------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->output( '/var/media/new.3gp' , '3gp' )->ready(); ?> /* --------------------- * #8: Get command * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->output( '/var/media/new.3gp' )->command; ?> /* --------------------- * #9: Run command. * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->output( '/var/media/new.3gp' )->ready(); ?> /* --------------------- * #10: Gray Scale. * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->grayScale()->output( '/var/media/new.3gp' )->ready(); ?> /* --------------------- * #11: Set param. * --------------------- */ <?php $key = 'acodec'; $value = 'AAC'; $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->set($key,$value)->output( '/var/media/new.3gp' )->ready(); ?> /* --------------------- * #12: Unset param. * --------------------- */ <?php $key = 'acodec'; $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->unset($key)->output( '/var/media/new.3gp' )->ready(); ?> /* --------------------- * #13: Quick methods * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->sameq()->output( '/var/media/new.3gp' )->ready(); ?> /* --------------------- * #14: Flip ( V or H ) * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->flip( 'v' )->output( '/var/media/new.3gp' )->ready(); ?> /* --------------------- * #15: hflip * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->hflip()->output( '/var/media/new.3gp' )->ready(); ?> /* --------------------- * #16: vflip * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/media/original.mp4' )->vflip()->output( '/var/media/new.3gp' )->ready(); ?> /* --------------------- * #17: Complete * --------------------- */ <?php /**---------------------- * include FFmpeg class *------------------------*/ include DIRNAME(DIRNAME(__FILE__)).'/src/ffmpeg.class.php'; /**--------------------------- * get options from database *-----------------------------*/ $options = array( 'duration' => 99, 'position' => 0, 'itsoffset' => 2, ); /**------------- * Create command *---------------*/ $FFmpeg = new FFmpeg( 'C:/FFmpeg/bin/ffmpeg' ); $FFmpeg->input( '/var/media/original.avi' ); $FFmpeg->transpose( 0 )->vflip()->grayScale()->vcodec('h264')->frameRate('30000/1001'); $FFmpeg->acodec( 'aac' )->audioBitrate( '192k' ); foreach( $options AS $option => $values ){ $FFmpeg->call( $option , $values ); } $FFmpeg->output( '/var/media/new.mp4' , 'mp4' ); print($FFmpeg->command); ?> bash /usr/local/bin/ffmpeg -y -vf transpose=0,vflip -pix_fmt gray -vcodec h264 -r 30000/1001 -acodec aac -ab 192k -t 99 -ss 0 -itsoffset 2 -f mp4 /var/media/new.mp4 /dev/null 2<&1 /* --------------------- * #18: Clear * --------------------- */ <?php $FFmpeg = new FFmpeg('/bin/ffmpeg','/var/media/original.mp4')->vflip()->output( '/var/media/new.3gp' )->clear()->input( '/var/www/file.3gp' ); ?> /* --------------------- * #19: Thumbs * --------------------- */ <?php $size = '100x100'; $start = 1; $frames = 10; $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/www/video.mp4' )->thumb( $size , $start, $frames )->ready(); ?> /* --------------------- * #20: Image to video * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/www/images/pref%04d.png' )->frameRate( '29,97' )->size( '1920x1080' )->force('image2'); $FFmpeg->output( 'image2video.mp4' ); $FFmpeg->ready(); ?> /* -------------------------------------------- * #21: Set the FFmpeg binary file on Windows * -------------------------------------------- */ <?php $FFmpeg = new FFmpeg( "C:\ffmpeg\bin\ffmpeg.exe" ); $FFmpeg->input( 'C:\xampp\input.mp4' )->output( 'output.3gp' ); $FFmpeg->ready(); ?> /* --------------------- * #22: Log level * --------------------- */ <?php $FFmpeg = new FFmpeg; $FFmpeg->input( '/var/www/input.mp4' )->loglevel("debug")->output( 'output.3gp' ); $FFmpeg->ready(); ?>