ffmpeg-mappable-media/src/FFMpeg/Format/Video/X264.php

95 lines
1.6 KiB
PHP
Raw Normal View History

2012-04-13 10:20:54 +02:00
<?php
2012-04-13 14:34:53 +02:00
/*
* This file is part of PHP-FFmpeg.
*
* (c) Alchemy <info@alchemy.fr>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
2012-04-13 12:45:41 +02:00
namespace FFMpeg\Format\Video;
2012-04-13 10:20:54 +02:00
2012-04-13 15:42:10 +02:00
/**
* The X264 video format
*/
2012-05-25 20:53:56 +02:00
class X264 extends DefaultVideo
2012-04-13 10:20:54 +02:00
{
/** @var bool */
2014-08-12 20:51:22 +02:00
private $bframesSupport = true;
/** @var int */
private $passes = 2;
public function __construct($audioCodec = 'aac', $videoCodec = 'libx264')
2013-06-25 10:03:20 +02:00
{
$this
->setAudioCodec($audioCodec)
->setVideoCodec($videoCodec);
}
2012-04-13 10:20:54 +02:00
/**
* {@inheritDoc}
*/
public function supportBFrames()
{
return $this->bframesSupport;
}
/**
* @param $support
2014-08-12 20:51:22 +02:00
*
* @return X264
*/
public function setBFramesSupport($support)
{
$this->bframesSupport = $support;
return $this;
}
2012-04-13 15:42:10 +02:00
/**
* {@inheritDoc}
*/
public function getAvailableAudioCodecs()
2012-04-13 10:20:54 +02:00
{
return array('copy', 'aac', 'libvo_aacenc', 'libfaac', 'libmp3lame', 'libfdk_aac');
2012-04-13 10:20:54 +02:00
}
2012-04-13 15:42:10 +02:00
/**
* {@inheritDoc}
*/
public function getAvailableVideoCodecs()
2012-04-13 10:20:54 +02:00
{
return array('libx264');
}
2012-10-31 00:30:24 +01:00
/**
* @param $passes
*
* @return X264
*/
public function setPasses($passes)
{
$this->passes = $passes;
return $this;
}
2012-10-31 00:30:24 +01:00
/**
* {@inheritDoc}
*/
public function getPasses()
{
return $this->getKiloBitrate() === 0 ? 1 : $this->passes;
2012-10-31 00:30:24 +01:00
}
2014-08-12 20:51:22 +02:00
/**
* @return int
*/
public function getModulus()
{
return 2;
}
2012-05-25 15:44:43 +02:00
}