/** * @param string $inFilename * @param Video $spec * @param string $outFilename */ public function convert($inFilename, Specification $spec, $outFilename) { $video = $this->ffmpeg->open($inFilename); $format = $this->createFormat($spec->getVideoFormat()); $resizeMode = ResizeFilter::RESIZEMODE_FIT; if ($spec->getResizeMode()) { $resizeMode = $spec->getResizeMode(); } $video->addFilter(new SynchronizeFilter()); //if ($source->getWidth() > $spec->getWidth() || $source->getHeight() > $spec->getHeight()) { if ($spec->getWidth() && $spec->getHeight()) { $video->addFilter(new ResizeFilter(new Dimension($spec->getWidth(), $spec->getHeight()), $resizeMode)); } if ($spec->getVideoCodec()) { $format->setVideoCodec($spec->getVideoCodec()); } if ($spec->getAudioCodec()) { $format->setAudioCodec($spec->getAudioCodec()); } if ($spec->getVideoBitrate()) { $format->setKiloBitrate($spec->getVideoBitrate()); } if ($spec->getVideoFramerate() && $spec->getVideoGop()) { $video->addFilter(new FrameRateFilter(new FrameRate($spec->getVideoFramerate()), $spec->getVideoGop())); } if ($spec->getAudioBitrate()) { $format->setAudioKiloBitrate($spec->getAudioBitrate()); } if ($spec->getAudioSamplerate()) { $video->addFilter(new AudioResamplableFilter($spec->getAudioSamplerate())); } elseif ($format instanceof Flv) { $video->addFilter(new AudioResamplableFilter(44100)); } if ($spec->getAudioChannels()) { $format->setAudioChannels($spec->getAudioChannels()); } $video->save($format, $outFilename); if ($format instanceof X264) { $this->mp4box->process($outFilename); } }
/** * @group functional * @expectedException \Temp\MediaConverter\Binary\Exception\RuntimeException */ public function testProcessFail() { $mp4box = MP4Box::create(); $mp4box->process(__DIR__ . '/../files/WrongFile.mp4'); }
/** * @expectedException \Temp\MediaConverter\Binary\Exception\InvalidFileArgumentException */ public function testProcessOnNonUnexistingFile() { $mp4box = MP4Box::create(); $mp4box->process(__DIR__ . '/../files/Unknown'); }