Передача отрицательных значений для измерений с PHP FFMpeg - PullRequest
0 голосов
/ 06 июня 2018

Я работаю над устаревшим проектом, который использует FFMpeg для обработки видео при загрузке.Унаследованный мной код использует escapeshellarg() для запуска FFMpeg из командной строки, что проблематично, поскольку он не обеспечивает никаких средств отслеживания прогресса, поэтому я переписываю его, используя PHP-FFMpeg .

Я немного озадачен изменением размера видео.Соотношение сторон должно оставаться неизменным, поэтому размеры, передаваемые в командную строку для шкалы, были -vf scale=-1:720, и моя интерпретация документов заключается в том, что вам необходимо передать размеры следующим образом:

$dimension = new FFMpeg\Coordinate\Dimension('-1', '720');
$video->filters()->resize($dimension)->synchronize();

Тем не менее, конструктор класса Dimension принимает только целые числа, и неясно, как я могу указать здесь отрицательное измерение.Google не был очень полезен, и не было существующих проблем в проекте.

Есть идеи, как мне пройти через необходимые измерения?Я не часто использую FFMpeg, поэтому я не очень знаком с ним.

1 Ответ

0 голосов
/ 10 июня 2018

понял это в конце концов.Оказывается, вторым аргументом resize() является режим, который определяет, как масштабировать два измерения.Если вы установите масштаб в соответствии с высотой, он должен работать как положено:

$dimension = new FFMpeg\Coordinate\Dimension('-1', '720');
$mode = FFMpeg\Filters\Video\ResizeFilter::RESIZEMODE_SCALE_HEIGHT;
$video->filters()->resize($dimension, $mode)->synchronize();
...