我需要上传视频,分别有360p、480p和720p三种格式/分辨率。
经过一些研究,我了解到有一些付费服务,比如Amazon Elastic Transcoder。但是我想使用开源软件,所以我找到了FFMPEG。
另外,我想在转码后将视频上传到Amazon s3,因为视频可能很大,例如1GB。
我找到了FFMPEG的PHP库Library Link。
我已经安装了FFMPEG,并成功生成了新视频。但是我无法弄清楚如何生成不同的格式/分辨率,如360p、480p和720p。
我的示例代码如下:
error_reporting(E_ALL);
ini_set('display_errors', 1);
require 'vendor/autoload.php';
//$ffmpeg = FFMpeg\FFMpeg::create();
$video = $ffmpeg->open('assets/small.mp4');
$video
->filters()
->resize(new FFMpeg\Coordinate\Dimension(320, 240))
->synchronize();
$video
->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(2))
->save('assets/frame.jpg');
$format = new FFMpeg\Format\Video\X264();
$format->setAudioCodec("libmp3lame");
$video->save($format, 'assets/new.mp4');
有人能为我提供一种方法,让我如何实现这个目标吗?