Пример #1
0
 /**
  * @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);
     }
 }
Пример #2
0
 /**
  * @group functional
  * @expectedException \Temp\MediaConverter\Binary\Exception\RuntimeException
  */
 public function testProcessFail()
 {
     $mp4box = MP4Box::create();
     $mp4box->process(__DIR__ . '/../files/WrongFile.mp4');
 }
Пример #3
0
 /**
  * @expectedException \Temp\MediaConverter\Binary\Exception\InvalidFileArgumentException
  */
 public function testProcessOnNonUnexistingFile()
 {
     $mp4box = MP4Box::create();
     $mp4box->process(__DIR__ . '/../files/Unknown');
 }