diff --git a/.travis.yml b/.travis.yml index 852dc1e..4bf448a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,31 +1,34 @@ language: php +dist: trusty + branches: only: - master php: - - 5.3 - 5.4 - 5.5 - 5.6 - 7.0 + - 7.1 - hhvm matrix: allow_failures: - php: hhvm include: - - php: 5.3 + - php: 5.4 env: COMPOSER_FLAGS="--prefer-lowest" before_install: - - sudo apt-get update + - sudo add-apt-repository ppa:mc3man/trusty-media -y + - sudo apt-get update -q - composer self-update - if [ "$COMPOSER_FLAGS" == "--prefer-lowest" ]; then composer require "roave/security-advisories" dev-master --no-update; fi; install: - - sudo apt-get install -y ffmpeg libavcodec-extra-53 + - sudo apt-get install -y ffmpeg - composer update --prefer-source $COMPOSER_FLAGS script: diff --git a/CHANGELOG.md b/CHANGELOG.md index def4d95..74357f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Added - Add pull request and issue templates. +- Usage of new codec "aac" of ffmpeg 3 ### Changed diff --git a/src/FFMpeg/Format/Video/X264.php b/src/FFMpeg/Format/Video/X264.php index c945167..a2c4acb 100644 --- a/src/FFMpeg/Format/Video/X264.php +++ b/src/FFMpeg/Format/Video/X264.php @@ -54,7 +54,7 @@ class X264 extends DefaultVideo */ public function getAvailableAudioCodecs() { - return array('libvo_aacenc', 'libfaac', 'libmp3lame', 'libfdk_aac'); + return array('aac', 'libvo_aacenc', 'libfaac', 'libmp3lame', 'libfdk_aac'); } /** diff --git a/tests/Functional/VideoTranscodeTest.php b/tests/Functional/VideoTranscodeTest.php index f36f1c5..1bae7ed 100644 --- a/tests/Functional/VideoTranscodeTest.php +++ b/tests/Functional/VideoTranscodeTest.php @@ -25,7 +25,37 @@ class VideoTranscodeTest extends FunctionalTestCase $lastPercentage = null; $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) { if (null !== $lastPercentage) { $phpunit->assertGreaterThanOrEqual($lastPercentage, $percentage); @@ -55,7 +85,7 @@ class VideoTranscodeTest extends FunctionalTestCase $video = new Video(__DIR__ . '/../files/UnknownFileTest.ogv', $ffmpeg->getFFMpegDriver(), $ffmpeg->getFFProbe()); $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() @@ -77,7 +107,7 @@ class VideoTranscodeTest extends FunctionalTestCase $video->filters() ->resize(new Dimension(320, 240), ResizeFilter::RESIZEMODE_INSET) ->rotate(RotateFilter::ROTATE_90); - $video->save(new X264('libvo_aacenc'), $filename); + $video->save(new X264('aac'), $filename); $dimension = $ffmpeg->getFFProbe() ->streams($filename) diff --git a/tests/files/sample.3gp b/tests/files/sample.3gp new file mode 100644 index 0000000..4a3d8ea Binary files /dev/null and b/tests/files/sample.3gp differ