关于Larave5.7使用PHP-FFMpeg处理视频文件的案例

应志用
2023-12-01

1、首先要安装PHP-FFMpeg扩展,这里是通过composer下载;大家可以看自己习惯来决定。

composer require php-ffmpeg/php-ffmpeg

2、下载完成后这里要注意一个use的使用

use FFMpeg\FFMpeg;
use FFMpeg\Coordinate\TimeCode;

3、注意试列代码 !!!!(这里获取视频的基本信息)

//1.获取ffmpeg实例
$ffmpeg = FFMpeg::create(array(
      'ffmpeg.binaries' => '/usr/bin/ffmpeg',//安装的ffmpeg服务绝对地址
      'ffprobe.binaries' => '/usr/bin/ffprobe',//安装的ffprobe服务绝对地址
      'timeout' => 3600, // The timeout for the underlying process
      'ffmpeg.threads' => 12,   // The number of threads that FFMpeg should use
));
//打开视频文件
$video = $ffmpeg->open('/path/to/file');
//视频的视频信息
$video_info = $video->getStreams()->videos()->first()->all();
//单独获取某一个
$profile = $video->getStreams()->videos()->first()->get('profile');
//获取视频尺寸有单独的方法
$dimensions=$video->getStreams()->videos()->first()->getDimensions();
        
//视频的音频信息
$audio_info_rate = $video->getStreams()->audios()->first()->all();
//单独获取某一个
$sample_rate = $video->getStreams()->audios()->first()->get('sample_rate');

4、获取视频中的一些图片信息

        //视频的路径
        $path = public_path().'/恶灵骑士.mp4';
        //打开视频文件
        $video = $ffmpeg->open($path);
        //第几秒
        $fromSecond = 33;
        $frame    = $video->frame(TimeCode::fromSeconds($fromSecond)); //提取第几秒的图像
        //图片名称
        $fileName = 'video/' . mt_rand() . '.jpg';
        if (!is_dir(storage_path("video"))) {
            mkdir(storage_path("video"), 0777);
        }
        //写入文件
        $frame->save(storage_path($fileName));
        return $fileName;
 类似资料: