因此,此命令适用于在视频中生成缩略图5秒,大小为300x300:
$cmd = '/usr/local/bin/ffmpeg -i '.$this->getUploadRootDir().'/'.$fname.' -ss 00:00:05 -f image2 -vframes 1 -s 300x300 '.$this->getUploadRootDir().'/thumb_'.$output;
Run Code Online (Sandbox Code Playgroud)
但是,我想保持宽高比,所以我将代码更改为:
$cmd = "/usr/local/bin/ffmpeg -i ".$this->getUploadRootDir()."/".$fname." -ss 00:00:5 -f image2 scale='min(300\, iw):-1' ".$this->getUploadRootDir()."/thumb_".$output;
Run Code Online (Sandbox Code Playgroud)
上面的代码正确地调整了图像的大小,但它是视频中的第一帧.我需要缩略图为5秒.任何帮助都将非常感激.
您可以使用类似于以下命令行执行此操作:
ffmpeg -i inputVideo -vf scale='min(300,iw)':-1 -ss 00:00:05 -f image2 -vframes 1 thumbnail.jpg
Run Code Online (Sandbox Code Playgroud)
因此,在您的脚本中,-vf在缩放之前添加(视频过滤器)并重新排序输入和输出参数,如下所示:
$cmd = "/usr/local/bin/ffmpeg -i ".$this->getUploadRootDir()."/".$fname." -vf scale='min(300\, iw):-1' -ss 00:00:5 -f image2 -vframes 1 ".$this->getUploadRootDir()."/thumb_".$output;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4436 次 |
| 最近记录: |