php laravel ffmpeg 视频截取

PHP 投稿 105100 0 评论

项目中,涉及到上传视频、转换视频、自动截取已上传视频内容中的一帧做为缩略图片,这个时候需要用FFmpeg。

1. 首先安装 FFmpeg 包:

composer require php-ffmpeg/php-ffmpeg

2. Windows 系统安装 FFmpeg:

FFmpeg 官网链接 :ffmpeg.org/download.html#build

windows 系统下需要下载二进制文件,我选择通过红色框选出进入新的页面下载。

image.png

官网下载页面

image.png

下载页面

3. 解压并复制 bin 目录,将 FFmpeg 添加只环境变量

image.png

4. 测试添加是否成功

image.png

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 "视频转码成功";
    }
}

6. 视频转码成功

image.png

编程笔记 » php laravel ffmpeg 视频截取

赞同 (75) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽