php视频处理(一)

2021-11-18  本文已影响0人  浩克啊12138

视频截取某一帧的图片

  1. 环境安装 linux安装ffmpeg
# 下载压缩包
$wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-i686-static.tar.xz
# 下载对应的md5文件
$wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-i686-static.tar.xz.md5
# 验证压缩包的md5是否正确,防止文件损坏
$md5sum -c ffmpeg-release-i686-static.tar.xz.md5
# 解压
$tar xvf ffmpeg-release-i686-static.tar.xz
# 运行
$./ffmpeg-4.2.2-i686-static/ffmpeg
# 如果没问题,可以将ffmpeg拷贝至系统bin目录下
$mv ffmpeg-4.2.2-i686-static/ffmpeg ffmpeg-4.2.2-i686-static/ffprobe /usr/local/bin/

  1. composer安装相关包
$ composer require php-ffmpeg/php-ffmpeg

3.获取视频某张图

    /**
     * 获取视频的某一帧图片
     * 
     * @name    getVideoFrameOfImage
     */
    public static function getVideoFrameOfImage($resource, $second)
    {
        // 资源文件路径
        $fileInfo = pathinfo($resource);
        $fileNameNoSuffix = $fileInfo['filename'];
        $dirname = $fileInfo['dirname'];
        if (Config::get('app.ffmpeg')) {
            $ffmpeg = FFMpeg::create(Config::get('app.ffmpeg'));
        } else {
            $ffmpeg = FFMpeg::create();
        }

        $video = $ffmpeg->open($resource);
        $frameName = $dirname . '/' . $fileNameNoSuffix . '.jpg';
        $video->frame(\FFMpeg\Coordinate\TimeCode::fromSeconds($second))->save($frameName);

        return $frameName;
    }

参考参考

上一篇 下一篇

猜你喜欢

热点阅读