PHP Classes

File: src/PHPVideoToolkit/Extensions.php

Recommend this page to a friend!
  Classes of Oliver Lillie   PHP Video Toolkit   src/PHPVideoToolkit/Extensions.php   Download  
File: src/PHPVideoToolkit/Extensions.php
Role: Class source
Content type: text/plain
Description: Class source
Class: PHP Video Toolkit
Manipulate and convert videos with ffmpeg program
Author: By
Last change: Update Extensions.php

Support oga format and extension. Prior setting oga format gave Logic Exception error.
updated class documentation. Added various exception changes where required.
fixed small issue of whitespace
updated version in source
Date: 1 year ago
Size: 11,783 bytes
 

Contents

Class file image Download
<?php /** * This file is part of the PHP Video Toolkit v2 package. * * @author Oliver Lillie (aka buggedcom) <publicmail@buggedcom.co.uk> * @license Dual licensed under MIT and GPLv2 * @copyright Copyright (c) 2008-2014 Oliver Lillie <http://www.buggedcom.co.uk> * @package PHPVideoToolkit V2 * @version 2.1.7-beta * @uses ffmpeg http://ffmpeg.sourceforge.net/ */ namespace PHPVideoToolkit; /** * Provides a simple way for mapping file extensions to their available related -f formats. * * @author Oliver Lillie */ class Extensions { /** * This is a list of recognised extensions to formats. * Taken directly from the libavformat files inside ffmpeg. * This list may not be complete and will need updating from time to time. * Last updated 2013-03-01 * * @access public * @static * @author Oliver Lillie */ static $extensions_to_formats = array ( 'a64' => array('a64'), 'A64' => array('a64'), 'aac' => array('aac'), 'ac3' => array('ace','ac3'), 'eac3' => array('ace','eac3'), 'aac,adts' => array('adts'), 'adx' => array('adx'), 'aea' => array('aea'), 'aif' => array('aiff'), 'aiff' => array('aiff'), 'afc' => array('aiff'), 'aifc' => array('aiff'), 'amr' => array('amr'), 'ape' => array('ape'), 'apl' => array('ape'), 'mac' => array('ape'), 'aqt' => array('aqtitle'), 'asf' => array('asf', 'asf_stream'), 'wmv' => array('asf', 'asf_stream'), 'wma' => array('asf', 'asf_stream'), 'ass' => array('ass'), 'ssa' => array('ass'), 'ast' => array('ast'), 'au' => array('au'), 'avi' => array('avi'), 'avs' => array('avs', 'avisynth'), 'avr' => array('avr'), 'bin' => array('bin'), 'adf' => array('adf'), 'idf' => array('idf'), 'bit' => array('bit'), 'bmv' => array('bmv'), 'brstm' => array('brstm'), 'caf' => array('caf'), 'cdg' => array('cdg'), 'cdxl' => array('cdxl'), 'xl' => array('cdxl'), '302' => array('daud'), 'daud' => array('daud'), 'dts' => array('dts'), 'dtshd' => array('dtshd'), 'dv' => array('dv'), 'dif' => array('dv'), 'cdata' => array('ea_cdata'), 'pgaf' => array('epaf'), 'fap' => array('epaf'), 'ffm' => array('ffm'), 'ffmeta' => array('ffmetadata'), 'flm' => array('filmstrip'), 'flac' => array('flac'), 'flv' => array('flv'), 'g722' => array('g722'), 'tco' => array('g723_1'), 'rco' => array('g723_1'), 'g729' => array('g729'), 'gif' => array('gif'), 'gsm' => array('gsm'), 'gxf' => array('gxf'), 'm3u8' => array('hls'), 'ico' => array('ico'), 'roq' => array('roq'), 'lbc' => array('ilbc'), 'bmp' => array('image2'), 'dpx' => array('image2'), 'jls' => array('image2'), 'jpeg' => array('image2'), 'jpg' => array('image2'), 'ljpg' => array('image2'), 'pam' => array('image2'), 'pbm' => array('image2'), 'pcx' => array('image2'), 'pgm' => array('image2'), 'pgmyuv' => array('image2'), 'png' => array('image2'), 'ppm' => array('image2'), 'sgi' => array('image2'), 'tga' => array('image2'), 'tif' => array('image2'), 'tiff' => array('image2'), 'jp2' => array('image2'), 'j2c' => array('image2'), 'xwd' => array('image2'), 'sun' => array('image2'), 'ras' => array('image2'), 'rs' => array('image2'), 'im1' => array('image2'), 'im8' => array('image2'), 'im24' => array('image2'), 'sunras' => array('image2'), 'xbm' => array('image2'), 'xface' => array('image2'), 'cgi' => array('ingenient'), 'sf' => array('ircam'), 'ircam' => array('ircam'), 'ivf' => array('ivf'), 'jss' => array('jacosub'), 'js' => array('jacosub'), 'latm' => array('latm'), '669' => array('libmodplug'), 'abc' => array('libmodplug'), 'amf' => array('libmodplug'), 'ams' => array('libmodplug'), 'dbm' => array('libmodplug'), 'dmf' => array('libmodplug'), 'dsm' => array('libmodplug'), 'far' => array('libmodplug'), 'it' => array('libmodplug'), 'mdl' => array('libmodplug'), 'med' => array('libmodplug'), 'mid' => array('libmodplug'), 'mod' => array('libmodplug'), 'mt2' => array('libmodplug'), 'mtm' => array('libmodplug'), 'okt' => array('libmodplug'), 'psm' => array('libmodplug'), 'ptm' => array('libmodplug'), 's3m' => array('libmodplug'), 'stm' => array('libmodplug'), 'ult' => array('libmodplug'), 'umx' => array('libmodplug'), 'xm' => array('libmodplug'), 'itgz' => array('libmodplug'), 'itr' => array('libmodplug'), 'itz' => array('libmodplug'), 'mdgz' => array('libmodplug'), 'mdr' => array('libmodplug'), 'mdz' => array('libmodplug'), 's3gz' => array('libmodplug'), 's3r' => array('libmodplug'), 's3z' => array('libmodplug'), 'xmgz' => array('libmodplug'), 'xmr' => array('libmodplug'), 'xmz' => array('libmodplug'), 'nut' => array('libnut', 'nut'), 'lvf' => array('lvf'), 'mkv' => array('matroska'), 'mka' => array('matroska'), 'webm' => array('webm'), 'sub' => array('subviewer', 'microdvd', 'mpsub', 'subviewer1'), 'mmf' => array('mmf'), 'mov' => array('mov'), '3gp' => array('3gp'), 'mp4' => array('mp4', 'psp'), 'psp' => array('psp'), '3g2' => array('3g2'), 'm4v' => array('m4v', 'ipod'), 'm4a' => array('ipod'), 'ismv' => array('ismv'), 'isma' => array('ismv'), 'f4v' => array('f4v'), 'mp2' => array('mp2', 'mp3'), 'mp3' => array('mp3', 'mp2'), 'm2a' => array('mp2', 'mp3'), 'mpc' => array('mpc'), 'idx' => array('vobsub'), 'mpg' => array('mpeg', 'mpeg1video'), 'mpeg' => array('mpeg', 'mpeg1video'), 'vob' => array('vob', 'svcd'), 'dvd' => array('dvd'), 'ts' => array('mpegts'), 'm2t' => array('mpegts'), 'm2ts' => array('mpegts'), 'mts' => array('mpegts'), 'mjpg' => array('mjpeg', 'mpjpeg', 'smjpeg'), 'txt' => array('tty', 'mpl2', 'vplayer'), 'mpl2' => array('mpl2'), 'mvi' => array('mvi'), 'mxf' => array('mxf'), 'mxg' => array('mxg'), 'v' => array('nc'), 'nist' => array('nistsphere'), 'sph' => array('nistsphere'), 'oga' => array('oga'), 'ogg' => array('ogg'), 'ogv' => array('ogg'), 'spx' => array('ogg'), 'opus' => array('ogg'), 'oma' => array('oma'), 'sw' => array('s16be', 's16le'), 'sb' => array('s8'), 'uw' => array('u16be', 'u16le'), 'ub' => array('u8'), 'al' => array('alaw'), 'ul' => array('mulaw'), 'pjs' => array('pjs'), 'pvf' => array('pvf'), 'mlp' => array('mlp'), 'thd' => array('truehd'), 'shn' => array('shn'), 'vc1' => array('vc1'), 'cavs' => array('cavsvideo'), 'drc' => array('dirac'), 'dnxhd' => array('dnxhd'), 'h261' => array('h261'), 'h263' => array('h263'), 'h264' => array('h264'), 'mjpeg' => array('mjpeg'), 'm1v' => array('mpeg1video'), 'm2v' => array('mpeg2video'), 'yuv' => array('rawvideo'), 'cif' => array('rawvideo'), 'qcif' => array('rawvideo'), 'rgb' => array('rawvideo'), 'rt' => array('realtext'), 'rm' => array('rm'), 'ra' => array('rm'), 'rso' => array('rso'), 'smi' => array('sami'), 'sami' => array('sami'), 'sbg' => array('sbg'), 'vb' => array('siff'), 'son' => array('siff'), 'sox' => array('sox'), 'spdif' => array('spdif'), 'srt' => array('srt'), 'swf' => array('swf'), 'tak' => array('tak'), 'tta' => array('tta'), 'ans' => array('tty'), 'art' => array('tty'), 'asc' => array('tty'), 'diz' => array('tty'), 'ice' => array('tty'), 'nfo' => array('tty'), 'vt' => array('tty'), 'rcv' => array('rcv'), 'viv' => array('vivo'), 'voc' => array('voc'), 'vqf' => array('vqf'), 'vql' => array('vqf'), 'vqe' => array('vqf'), 'wav' => array('wav'), 'w64' => array('w64'), 'vtt' => array('webvtt'), 'wtv' => array('wtv'), 'wv' => array('wv'), 'yop' => array('yop'), 'y4m' => array('yuv4mpegpipe'), ); /** * Returns an array of formats associated with the related extension. * * @access public * @author Oliver Lillie * @param string $format * @return mixed Returns false if no matching extensions are found, otherwise returns the list * of extensions in an array. */ public static function toFormats($extension) { $extension = strtolower($extension); return isset(self::$extensions_to_formats[$extension]) === true ? self::$extensions_to_formats[$extension] : false; } /** * Attempts to get a "best guess" the format from all compatible formats. * The way this works is that if an exact match of the extension is that format, then that is returned, * if not then the first format in the matched formats is returned. * * @access public * @author Oliver Lillie * @param string $format * @return mixed Returns false if no extension is found, otherwise the extension is returned as a string. */ public static function toBestGuessFormat($extension) { $extension = strtolower($extension); $formats = self::toFormats($extension); if($formats === false) { return false; } else if(in_array($extension, $formats) === true) { return $extension; } return $formats[0]; } }