Skip to content

Instantly share code, notes, and snippets.

@igorRovenki
Created November 14, 2014 10:38
Show Gist options
  • Save igorRovenki/f7afe0cedfd9d2d544b6 to your computer and use it in GitHub Desktop.
Save igorRovenki/f7afe0cedfd9d2d544b6 to your computer and use it in GitHub Desktop.
<?php
namespace Predanie\ArchiveBundle\Consumer;
use Doctrine\ORM\EntityManager;
use FFMpeg\FFMpeg;
use FFMpeg\Format\Video\Ogg;
use Monolog\Logger;
use OldSound\RabbitMqBundle\RabbitMq\ConsumerInterface;
use PhpAmqpLib\Message\AMQPMessage;
use Predanie\ArchiveBundle\Manager\MediaFileManager;
class VideoConverterConsumer implements ConsumerInterface
{
/**
* @var Logger
*/
private $logger;
/**
* @var MediaFileManager
*/
private $mediaFileManager;
/**
* @var EntityManager
*/
private $em;
public function __construct(MediaFileManager $mediaFileManager, EntityManager $em, Logger $logger)
{
$this->mediaFileManager = $mediaFileManager;
$this->em = $em;
$this->logger = $logger;
}
public function execute(AMQPMessage $msg)
{
try {
$message = unserialize($msg->body);
$video = $this->em->find('PredanieArchiveBundle:Video', $message['video_id']);
$videoPath = $this->mediaFileManager->getAbsoluteFilePath($video);
$ffmpeg = FFMpeg::create();
$videoFile = $ffmpeg->open($videoPath);
$videoFile->save(new Ogg(), '?');
return true;
} catch (\Exception $e) {
$this->logger->critical($e->getMessage());
return false;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment