项目中,涉及到上传视频、转换视频、自动截取已上传视频内容中的一帧做为缩略图片,这个时候需要用FFmpeg。
1. 首先安装 FFmpeg 包:
composer require php-ffmpeg/php-ffmpeg
2. Windows 系统安装 FFmpeg:
FFmpeg 官网链接 :ffmpeg.org/download.html#build
windows 系统下需要下载二进制文件,我选择通过红色框选出进入新的页面下载。
官网下载页面
下载页面
3. 解压并复制 bin 目录,将 FFmpeg 添加只环境变量
4. 测试添加是否成功
5. 代码中可以直接使用
namespace App\Http\Controllers;
use FFMpeg\Coordinate\TimeCode;
use FFMpeg\FFMpeg;
use FFMpeg\Format\Video\X264;
use Illuminate\Http\Request;
class IndexController extends Controller
{
//
public function videoCapture(){
$ffmpeg = FFMpeg::create([
'ffmpeg.binaries' => 'D:\ffmpeg\bin\ffmpeg.exe',
'ffprobe.binaries' => 'D:\ffmpeg\bin\ffprobe.exe',
'timeout' => 0,
'ffmpeg.threads' => 12
]);
$video = $ffmpeg->open(public_path('demo.mp4'));
// $video->clip(开始时间, 持续时间)
$clip = $video->clip(TimeCode::fromSeconds(10), TimeCode::fromSeconds(5));
$clip->save(new X264(), public_path('capture_video.mp4'));
return "视频转码成功";
}
}