JFIF x x C C " } !1AQa "q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w !1AQ aq"2B #3Rbr{
File "AdvancedOutputMapping.php"
Full Path: /home2/yvrgircc/public_html/ariseskilltech.com/vendor/pbmedia/laravel-ffmpeg/src/FFMpeg/AdvancedOutputMapping.php
File size: 2.38 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace ProtoneMedia\LaravelFFMpeg\FFMpeg;
use FFMpeg\Format\FormatInterface;
use FFMpeg\Format\Video\DefaultVideo;
use FFMpeg\Media\AdvancedMedia;
use Illuminate\Support\Collection;
use ProtoneMedia\LaravelFFMpeg\Exporters\HLSVideoFilters;
use ProtoneMedia\LaravelFFMpeg\Filesystem\Media;
/**
* This class is basically a wrapper around the map() method
* of a the \FFMpeg\Media\AdvancedMedia class.
*/
class AdvancedOutputMapping
{
/**
* @var array
*/
private $outs;
/**
* @var \FFMpeg\Format\FormatInterface
*/
private $format;
/**
* @var \ProtoneMedia\LaravelFFMpeg\Filesystem\Media
*/
private $output;
/**
* @var boolean
*/
private $forceDisableAudio = false;
/**
* @var boolean
*/
private $forceDisableVideo = false;
public function __construct(array $outs, FormatInterface $format, Media $output, bool $forceDisableAudio = false, bool $forceDisableVideo = false)
{
$this->outs = $outs;
$this->format = $format;
$this->output = $output;
$this->forceDisableAudio = $forceDisableAudio;
$this->forceDisableVideo = $forceDisableVideo;
}
/**
* Applies the attributes to the format and specifies the video
* bitrate if it's missing.
*/
public function apply(AdvancedMedia $advancedMedia): void
{
if ($this->format instanceof DefaultVideo) {
$parameters = $this->format->getAdditionalParameters() ?: [];
if (!in_array('-b:v', $parameters) && $this->format->getKiloBitrate() !== 0) {
$parameters = array_merge(['-b:v', $this->format->getKiloBitrate() . 'k'], $parameters);
}
$this->format->setAdditionalParameters($parameters);
}
$advancedMedia->map($this->outs, $this->format, $this->output->getLocalPath(), $this->forceDisableAudio, $this->forceDisableVideo);
}
public function getFormat(): FormatInterface
{
return $this->format;
}
public function getOutputMedia(): Media
{
return $this->output;
}
public function hasOut(string $out): bool
{
return Collection::make($this->outs)
->map(function ($out) {
return HLSVideoFilters::beforeGlue($out);
})
->contains(HLSVideoFilters::beforeGlue($out));
}
}