php - 使用 PHP FFMpeg 为维度传递负值

标签 php ffmpeg ffmpeg-php

我正在开发一个使用 FFMpeg 处理上传视频的遗留项目。我继承的代码使用 escapeshellarg()从命令行运行 FFMpeg,这是有问题的,因为它没有提供任何跟踪进度的方法,所以我使用 PHP-FFMpeg 重写它.

我在调整视频大小时有点难过。纵横比需要保持不变,因此传递给命令行的比例尺寸为 -vf scale=-1:720 ,我对文件的解释是,您需要按如下方式传递尺寸:

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

但是,Dimension 的构造函数类只接受整数,目前还不清楚我将如何在这里指定一个负维度。谷歌不是很有用,项目上也没有现有的问题。

知道如何通过所需的尺寸吗?我不经常使用 FFMpeg,所以我对它不是很熟悉。

最佳答案

最后想通了这个。结果是 resize() 的第二个参数是模式,它决定了如何缩放两个维度。如果您将其设置为缩放宽度以适应高度,它应该按预期工作:

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

关于php - 使用 PHP FFMpeg 为维度传递负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50721973/

相关文章:

ffmpeg - 在 FFMpeg Ubuntu “rtmp://url live=1” 中不起作用

PHP fatal error : Maximum execution time of 60 seconds exceeded in C:\xampp\htdocs\vendor\symfony\process\Pipes\WindowsPipes. php 第 140 行

在 apache2 上安装 php-ffmpeg

PHPMailer SMTP 本地主机,证书错误

php - 计算、突出显示和打印两个数组之间的重复项

php - mysql最快2表查询

video - 无法使用任何工具旋转/转码视频

php - 从 URL 中删除 .php

audio - 带有python子进程Popen的ffmpeg

ffmpeg - 如何使用ffmpeg在圆角矩形上绘制文本?