Merge pull request #257 from ScoringLine/feature/aac-codec-support

Add support for aac codec of ffmpeg3
This commit is contained in:
Romain Neutron 2016-12-15 15:46:14 +01:00 committed by GitHub
commit 8908cd19bc
5 changed files with 42 additions and 8 deletions

View file

@ -1,31 +1,34 @@
language: php language: php
dist: trusty
branches: branches:
only: only:
- master - master
php: php:
- 5.3
- 5.4 - 5.4
- 5.5 - 5.5
- 5.6 - 5.6
- 7.0 - 7.0
- 7.1
- hhvm - hhvm
matrix: matrix:
allow_failures: allow_failures:
- php: hhvm - php: hhvm
include: include:
- php: 5.3 - php: 5.4
env: COMPOSER_FLAGS="--prefer-lowest" env: COMPOSER_FLAGS="--prefer-lowest"
before_install: before_install:
- sudo apt-get update - sudo add-apt-repository ppa:mc3man/trusty-media -y
- sudo apt-get update -q
- composer self-update - composer self-update
- if [ "$COMPOSER_FLAGS" == "--prefer-lowest" ]; then composer require "roave/security-advisories" dev-master --no-update; fi; - if [ "$COMPOSER_FLAGS" == "--prefer-lowest" ]; then composer require "roave/security-advisories" dev-master --no-update; fi;
install: install:
- sudo apt-get install -y ffmpeg libavcodec-extra-53 - sudo apt-get install -y ffmpeg
- composer update --prefer-source $COMPOSER_FLAGS - composer update --prefer-source $COMPOSER_FLAGS
script: script:

View file

@ -10,6 +10,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
### Added ### Added
- Add pull request and issue templates. - Add pull request and issue templates.
- Usage of new codec "aac" of ffmpeg 3
### Changed ### Changed

View file

@ -54,7 +54,7 @@ class X264 extends DefaultVideo
*/ */
public function getAvailableAudioCodecs() public function getAvailableAudioCodecs()
{ {
return array('libvo_aacenc', 'libfaac', 'libmp3lame', 'libfdk_aac'); return array('aac', 'libvo_aacenc', 'libfaac', 'libmp3lame', 'libfdk_aac');
} }
/** /**

View file

@ -25,7 +25,37 @@ class VideoTranscodeTest extends FunctionalTestCase
$lastPercentage = null; $lastPercentage = null;
$phpunit = $this; $phpunit = $this;
$codec = new X264('libvo_aacenc'); $codec = new X264('aac');
$codec->on('progress', function ($video, $codec, $percentage) use ($phpunit, &$lastPercentage) {
if (null !== $lastPercentage) {
$phpunit->assertGreaterThanOrEqual($lastPercentage, $percentage);
}
$lastPercentage = $percentage;
$phpunit->assertGreaterThanOrEqual(0, $percentage);
$phpunit->assertLessThanOrEqual(100, $percentage);
});
$video->save($codec, $filename);
$this->assertFileExists($filename);
unlink($filename);
}
public function testAacTranscodeX264()
{
$filename = __DIR__ . '/output/output-x264_2.mp4';
if (is_file($filename)) {
unlink(__DIR__ . '/output/output-x264_2.mp4');
}
$ffmpeg = $this->getFFMpeg();
$video = $ffmpeg->open(__DIR__ . '/../files/sample.3gp');
$this->assertInstanceOf('FFMpeg\Media\Video', $video);
$lastPercentage = null;
$phpunit = $this;
$codec = new X264('aac');
$codec->on('progress', function ($video, $codec, $percentage) use ($phpunit, &$lastPercentage) { $codec->on('progress', function ($video, $codec, $percentage) use ($phpunit, &$lastPercentage) {
if (null !== $lastPercentage) { if (null !== $lastPercentage) {
$phpunit->assertGreaterThanOrEqual($lastPercentage, $percentage); $phpunit->assertGreaterThanOrEqual($lastPercentage, $percentage);
@ -55,7 +85,7 @@ class VideoTranscodeTest extends FunctionalTestCase
$video = new Video(__DIR__ . '/../files/UnknownFileTest.ogv', $ffmpeg->getFFMpegDriver(), $ffmpeg->getFFProbe()); $video = new Video(__DIR__ . '/../files/UnknownFileTest.ogv', $ffmpeg->getFFMpegDriver(), $ffmpeg->getFFProbe());
$this->setExpectedException('FFMpeg\Exception\RuntimeException'); $this->setExpectedException('FFMpeg\Exception\RuntimeException');
$video->save(new X264('libvo_aacenc'), __DIR__ . '/output/output-x264.mp4'); $video->save(new X264('aac'), __DIR__ . '/output/output-x264.mp4');
} }
public function testTranscodePortraitVideo() public function testTranscodePortraitVideo()
@ -77,7 +107,7 @@ class VideoTranscodeTest extends FunctionalTestCase
$video->filters() $video->filters()
->resize(new Dimension(320, 240), ResizeFilter::RESIZEMODE_INSET) ->resize(new Dimension(320, 240), ResizeFilter::RESIZEMODE_INSET)
->rotate(RotateFilter::ROTATE_90); ->rotate(RotateFilter::ROTATE_90);
$video->save(new X264('libvo_aacenc'), $filename); $video->save(new X264('aac'), $filename);
$dimension = $ffmpeg->getFFProbe() $dimension = $ffmpeg->getFFProbe()
->streams($filename) ->streams($filename)

BIN
tests/files/sample.3gp Normal file

Binary file not shown.