当前位置:首页 > PHP教程 > php图像处理 > 列表

PHP使用ffmpeg实现视频随机截图并转成图片

发布:smiling 来源: PHP粉丝网  添加日期:2026-04-14 10:28:53 浏览: 评论:0 

这篇文章主要介绍了在CentOS7上安装FFmpeg并使用php-ffmpeg扩展实现视频随机截图的功能,包括安装FFmpeg、PHP扩展、配置PHP以启用`proc_open`函数,并最终验证截图功能是否正常工作,需要的朋友可以参考下。

安装FFmpeg软件

在CentOS 7系统上安装FFmpeg需要添加第三方仓库并执行安装命令:

sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

sudo yum install ffmpeg ffmpeg-devel -y

验证安装是否成功:

ffmpeg -version

安装PHP扩展

通过Composer安装php-ffmpeg扩展:

composer require php-ffmpeg/php-ffmpeg

检查并启用proc_open函数:

定位PHP配置文件路径:

php -i | grep 'php.ini'

编辑php.ini文件,找到disable_functions配置项,删除proc_open和proc_get_status。重启PHP服务:

service php-fpm restart

验证proc_open是否可用:

php -r "var_dump(function_exists('proc_open'));"

实现视频截图功能

使用php-ffmpeg扩展从视频中随机截取一帧:

  1. require 'vendor/autoload.php'
  2.    
  3. use FFMpeg\FFMpeg; 
  4. use FFMpeg\Coordinate\TimeCode; 
  5.    
  6. $ffmpeg = FFMpeg::create(); 
  7. $video = $ffmpeg->open('input.mp4'); 
  8.    
  9. $duration = $video->getFormat()->get('duration'); 
  10. $randomTime = mt_rand(1, $duration - 1); 
  11.    
  12. $frame = $video->frame(TimeCode::fromSeconds($randomTime)); 
  13. $frame->save('random_screenshot.jpg');

Tags: PHP视频随机截图 PHP视频随机截图

分享到: