- windows 或linux上要安装ffmpeg扩展,安装方法可以自行百度
- 通过执行外部命令的方式exec()实现,如果是本地视频很方便,$tempfiles就是完整的视频路径;如果是post过来的视频(仅限.mp4格式),无法用临时文件(.tmp)进行截取,本人的用了个笨方法,先传到本地来,获取到.mp4的视频路径,再执行命令,如果有其他方法欢迎留言分享^^
/** * 截取视频第一帧 * * @param $file 视频文件 * @param $time 第几帧 * @param $dir 临时目录 * @param $size 截图尺寸 */ function getVideoCover($file,$time,$dir,$size) { $time = $time ? $time : '1'; //默认截取第一秒第一帧 $size = $size ? $size : '348*470'; $fileName = getImgName(); //临时视频路径,生成截图后删除 $tempfiles = $dir.$fileName.'.mp4'; $bool = move_uploaded_file($file, $tempfiles); $str = "ffmpeg -i ".$tempfiles." -y -f mjpeg -ss ".$time." -t 0.001 -s $size ".$dir.$fileName.'.jpg'; exec($str,$out,$status); return $fileName; }
注:ffmpeg只能截取mp4格式的视频文件
php用ffmpeg扩展截取视频第一帧的方法
最新推荐文章于 2022-11-04 17:02:55 发布