Merge branch 'master' into patch-1
This commit is contained in:
commit
fa4bd3d12b
8 changed files with 88 additions and 199 deletions
|
|
@ -46,31 +46,6 @@ abstract class DefaultAudio extends EventEmitter implements AudioInterface, Prog
|
|||
return $this->audioCodec;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getAdditionalParameters()
|
||||
{
|
||||
return $this->additionalParameters;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets additional parameters.
|
||||
*
|
||||
* @param array $additionalParameters
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function setAdditionalParameters($additionalParameters)
|
||||
{
|
||||
if (!is_array($additionalParameters)) {
|
||||
throw new InvalidArgumentException('Wrong additionalParamaters value');
|
||||
}
|
||||
|
||||
$this->additionalParameters = $additionalParameters;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the audio codec, Should be in the available ones, otherwise an
|
||||
* exception is thrown.
|
||||
|
|
|
|||
|
|
@ -25,13 +25,6 @@ interface AudioInterface extends FormatInterface
|
|||
* @return integer
|
||||
*/
|
||||
public function getAudioChannels();
|
||||
|
||||
/**
|
||||
* Returns the list of available video codecs for this format.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAdditionalParameters();
|
||||
|
||||
/**
|
||||
* Returns the audio codec.
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
namespace FFMpeg\Format;
|
||||
|
||||
interface Profile {
|
||||
|
||||
const HIGH = 'high';
|
||||
|
||||
const MAIN = 'main';
|
||||
|
||||
const BASELINE = 'baseline';
|
||||
|
||||
}
|
||||
|
|
@ -16,7 +16,6 @@ use FFMpeg\Exception\InvalidArgumentException;
|
|||
use FFMpeg\Format\Audio\DefaultAudio;
|
||||
use FFMpeg\Format\VideoInterface;
|
||||
use FFMpeg\Media\MediaTypeInterface;
|
||||
use FFMpeg\Format\Profile;
|
||||
use FFMpeg\Format\ProgressListener\VideoProgressListener;
|
||||
|
||||
/**
|
||||
|
|
@ -33,56 +32,8 @@ abstract class DefaultVideo extends DefaultAudio implements VideoInterface
|
|||
/** @var Integer */
|
||||
protected $modulus = 16;
|
||||
|
||||
/** @var string */
|
||||
private $profile = Profile::MAIN;
|
||||
|
||||
/** @var float */
|
||||
private $level = 3.1;
|
||||
|
||||
/** @var string[] */
|
||||
protected $additionalParameters;
|
||||
|
||||
/**
|
||||
* Sets the profile of this video
|
||||
* @var string $profile must be one of `baseline`, `main` or `high`
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function setProfile(string $profile) {
|
||||
switch($profile) {
|
||||
case Profile::BASELINE:
|
||||
case Profile::MAIN:
|
||||
case Profile::HIGH:
|
||||
// these are fine
|
||||
break;
|
||||
default:
|
||||
throw new \InvalidArgumentException('Invalid profile given! Must be one of `baseline`, `main` or `high`!');
|
||||
}
|
||||
$this->profile = $profile;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getProfile() {
|
||||
return $this->profile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the given level
|
||||
* @param float $level The level(for example: 3.0, 3.1, 4.0, 4.1)
|
||||
*/
|
||||
public function setLevel(float $level) {
|
||||
$this->level = $level;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getLevel() {
|
||||
return $this->level;
|
||||
}
|
||||
/** @var Array */
|
||||
protected $additionalParamaters;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
@ -146,6 +97,31 @@ abstract class DefaultVideo extends DefaultAudio implements VideoInterface
|
|||
return $this->modulus;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getAdditionalParameters()
|
||||
{
|
||||
return $this->additionalParamaters;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets additional parameters.
|
||||
*
|
||||
* @param array $additionalParamaters
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function setAdditionalParameters($additionalParamaters)
|
||||
{
|
||||
if (!is_array($additionalParamaters)) {
|
||||
throw new InvalidArgumentException('Wrong additionalParamaters value');
|
||||
}
|
||||
|
||||
$this->additionalParamaters = $additionalParamaters;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -56,14 +56,9 @@ interface VideoInterface extends AudioInterface
|
|||
public function getAvailableVideoCodecs();
|
||||
|
||||
/**
|
||||
* Returns the current profile
|
||||
* @return string
|
||||
* Returns the list of available video codecs for this format.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getProfile();
|
||||
|
||||
/**
|
||||
* Returns the level
|
||||
* @return float
|
||||
*/
|
||||
public function getLevel();
|
||||
public function getAdditionalParameters();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,13 +91,6 @@ class Audio extends AbstractStreamableMedia
|
|||
$commands[] = '-ac';
|
||||
$commands[] = $format->getAudioChannels();
|
||||
}
|
||||
// If the user passed some additional parameters
|
||||
if (null !== $format->getAdditionalParameters()) {
|
||||
foreach ($format->getAdditionalParameters() as $additionalParameter) {
|
||||
$commands[] = $additionalParameter;
|
||||
}
|
||||
}
|
||||
|
||||
$commands[] = $outputPathfile;
|
||||
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -72,8 +72,6 @@ class Video extends Audio
|
|||
if ($format instanceof VideoInterface) {
|
||||
if (null !== $format->getVideoCodec()) {
|
||||
$filters->add(new SimpleFilter(array('-vcodec', $format->getVideoCodec())));
|
||||
$filters->add(new SimpleFilter(array('-vprofile', $format->getProfile())));
|
||||
$filters->add(new SimpleFilter(array('-level', $format->getLevel())));
|
||||
}
|
||||
}
|
||||
if ($format instanceof AudioInterface) {
|
||||
|
|
@ -123,9 +121,11 @@ class Video extends Audio
|
|||
}
|
||||
|
||||
// If the user passed some additional parameters
|
||||
if (null !== $format->getAdditionalParameters()) {
|
||||
foreach ($format->getAdditionalParameters() as $additionalParameter) {
|
||||
$commands[] = $additionalParameter;
|
||||
if ($format instanceof VideoInterface) {
|
||||
if (null !== $format->getAdditionalParameters()) {
|
||||
foreach ($format->getAdditionalParameters() as $additionalParameter) {
|
||||
$commands[] = $additionalParameter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -449,81 +449,60 @@ class VideoTest extends AbstractStreamableTestCase
|
|||
|
||||
return array(
|
||||
array(false, array(array(
|
||||
'-y',
|
||||
'-i', __FILE__,
|
||||
'-b:v', '663k',
|
||||
'-refs', '6',
|
||||
'-coder', '1',
|
||||
'-sc_threshold', '40',
|
||||
'-flags', '+loop',
|
||||
'-me_range', '16',
|
||||
'-subq', '7',
|
||||
'-i_qfactor', '0.71',
|
||||
'-qcomp', '0.6',
|
||||
'-qdiff', '4',
|
||||
'-trellis', '1',
|
||||
'-b:a', '92k',
|
||||
'-ac', 2,
|
||||
'foo', 'bar',
|
||||
'-pass', 1,
|
||||
'-passlogfile', '/target/file',
|
||||
), array(
|
||||
'-y',
|
||||
'-i', __FILE__,
|
||||
'-b:v', '663k',
|
||||
'-refs', '6',
|
||||
'-coder', '1',
|
||||
'-sc_threshold', '40',
|
||||
'-flags', '+loop',
|
||||
'-me_range', '16',
|
||||
'-subq', '7',
|
||||
'-i_qfactor', '0.71',
|
||||
'-qcomp', '0.6',
|
||||
'-qdiff', '4',
|
||||
'-trellis', '1',
|
||||
'-b:a', '92k',
|
||||
'-ac', 2,
|
||||
'foo', 'bar',
|
||||
'-pass', 2,
|
||||
'-passlogfile', '/target/file'
|
||||
)), null, $format),
|
||||
array(false, array(array(
|
||||
'-y',
|
||||
'-i', __FILE__,
|
||||
'extra', 'param',
|
||||
'-b:v', '665k',
|
||||
'-refs', '6',
|
||||
'-coder', '1',
|
||||
'-sc_threshold', '40',
|
||||
'-flags', '+loop',
|
||||
'-me_range', '16',
|
||||
'-subq', '7',
|
||||
'-i_qfactor', '0.71',
|
||||
'-qcomp', '0.6',
|
||||
'-qdiff', '4',
|
||||
'-trellis', '1',
|
||||
'-b:a', '92k',
|
||||
'-ac', '2',
|
||||
'-pass', '1',
|
||||
'-passlogfile', '/target/file',
|
||||
'-y', '-i', __FILE__, '-b:v', '663k',
|
||||
'-refs', '6', '-coder', '1', '-sc_threshold', '40', '-flags', '+loop',
|
||||
'-me_range', '16', '-subq', '7', '-i_qfactor', '0.71', '-qcomp', '0.6',
|
||||
'-qdiff', '4', '-trellis', '1', '-b:a', '92k', '-ac', 2, 'foo', 'bar', '-pass', 1, '-passlogfile',
|
||||
'/target/file',
|
||||
), array(
|
||||
'-y', '-i', __FILE__,
|
||||
'extra', 'param',
|
||||
'-b:v', '665k',
|
||||
'-refs', '6',
|
||||
'-coder', '1',
|
||||
'-sc_threshold', '40',
|
||||
'-flags', '+loop',
|
||||
'-me_range', '16',
|
||||
'-subq', '7',
|
||||
'-i_qfactor', '0.71',
|
||||
'-qcomp', '0.6',
|
||||
'-qdiff', '4',
|
||||
'-trellis', '1',
|
||||
'-b:a', '92k',
|
||||
'-ac', '2',
|
||||
'-pass', '2',
|
||||
'-passlogfile', '/target/file',
|
||||
'-b:v', '663k',
|
||||
'-refs', '6', '-coder', '1', '-sc_threshold', '40', '-flags', '+loop',
|
||||
'-me_range', '16', '-subq', '7', '-i_qfactor', '0.71', '-qcomp', '0.6',
|
||||
'-qdiff', '4', '-trellis', '1', '-b:a', '92k', '-ac', 2, 'foo', 'bar', '-pass', 2, '-passlogfile',
|
||||
'/target/file',
|
||||
)), null, $format),
|
||||
array(false, array(array(
|
||||
'-y', '-i', __FILE__,
|
||||
'-vcodec', 'gloubi-boulga-video',
|
||||
'-acodec', 'patati-patata-audio', '-b:v', '664k',
|
||||
'-refs', '6', '-coder', '1', '-sc_threshold', '40', '-flags', '+loop',
|
||||
'-me_range', '16', '-subq', '7', '-i_qfactor', '0.71', '-qcomp', '0.6',
|
||||
'-qdiff', '4', '-trellis', '1', '-b:a', '92k', '-ac', '2', '-pass', '1', '-passlogfile',
|
||||
'/target/file',
|
||||
), array(
|
||||
'-y', '-i', __FILE__,
|
||||
'-vcodec', 'gloubi-boulga-video',
|
||||
'-acodec', 'patati-patata-audio',
|
||||
'-b:v', '664k',
|
||||
'-refs', '6', '-coder', '1', '-sc_threshold', '40', '-flags', '+loop',
|
||||
'-me_range', '16', '-subq', '7', '-i_qfactor', '0.71', '-qcomp', '0.6',
|
||||
'-qdiff', '4', '-trellis', '1', '-b:a', '92k', '-ac', '2', '-pass', '2', '-passlogfile',
|
||||
'/target/file',
|
||||
)), null, $audioVideoFormat),
|
||||
array(false, array(array(
|
||||
'-y', '-i', __FILE__,
|
||||
'-vcodec', 'gloubi-boulga-video',
|
||||
'-acodec', 'patati-patata-audio', '-b:v', '664k',
|
||||
'-refs', '6', '-coder', '1', '-sc_threshold', '40', '-flags', '+loop',
|
||||
'-me_range', '16', '-subq', '7', '-i_qfactor', '0.71', '-qcomp', '0.6',
|
||||
'-qdiff', '4', '-trellis', '1', '-b:a', '92k', '-ac', '2',
|
||||
'/target/file',
|
||||
)), null, $audioVideoFormatSinglePass),
|
||||
array(false, array(array(
|
||||
'-y', '-i', __FILE__,
|
||||
'extra', 'param','-b:v', '665k',
|
||||
'-refs', '6', '-coder', '1', '-sc_threshold', '40', '-flags', '+loop',
|
||||
'-me_range', '16', '-subq', '7', '-i_qfactor', '0.71', '-qcomp', '0.6',
|
||||
'-qdiff', '4', '-trellis', '1', '-b:a', '92k', '-ac', '2', '-pass', '1', '-passlogfile',
|
||||
'/target/file',
|
||||
), array(
|
||||
'-y', '-i', __FILE__,
|
||||
'extra', 'param', '-b:v', '665k',
|
||||
'-refs', '6', '-coder', '1', '-sc_threshold', '40', '-flags', '+loop',
|
||||
'-me_range', '16', '-subq', '7', '-i_qfactor', '0.71', '-qcomp', '0.6',
|
||||
'-qdiff', '4', '-trellis', '1', '-b:a', '92k', '-ac', '2', '-pass', '2', '-passlogfile',
|
||||
'/target/file',
|
||||
)), null, $formatExtra),
|
||||
array(true, array(array(
|
||||
'-y', '-i', __FILE__,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue