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

安装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扩展从视频中随机截取一帧:

复制代码
require 'vendor/autoload.php';

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

$ffmpeg = FFMpeg::create();
$video = $ffmpeg->open('input.mp4');

$duration = $video->getFormat()->get('duration');
$randomTime = mt_rand(1, $duration - 1);

$frame = $video->frame(TimeCode::fromSeconds($randomTime));
$frame->save('random_screenshot.jpg');
相关推荐
妙码生花4 分钟前
使用git更新ai-go-admin框架
前端·人工智能·git·golang·typescript·php
PHP实战开发录1 小时前
PHP文件上传成功为什么页面却找不到
开发语言·nginx·php·开发
FlightYe1 小时前
音视频修炼之基础理论(五):AAC格式与解析
android·linux·c++·音视频·aac
qq_452396231 小时前
第十篇:《eBPF 可观测性:零侵扰的深度内核追踪》
服务器·网络·php
cnnews2 小时前
Ubuntu 编译 postmarketOS
linux·运维·arm开发·ubuntu·github·音视频
AC赳赳老秦2 小时前
文旅市场公开数据分析:基于 OpenClaw 采集景区客流与门票公示数据,生成区域文旅热度监测报告
java·c语言·python·php·symfony·deepseek·openclaw
SDWAN_Cheap2 小时前
SD-WAN智能选路技术的算法与实现机制
算法·php·sdwan
xiancai_xianyu4 小时前
想把数据模型一次建完美再上AI?会一直卡在建模里
开发语言·人工智能·php·数据模型·语义层·本体建模·企业知识网络
小五兄弟6 小时前
AI仿真人剧出海创收指南
经验分享·音视频·媒体
AC赳赳老秦6 小时前
环保监测公开数据应用:OpenClaw 抓取空气与水质公开监测数据,开展区域环境质量趋势分析
大数据·数据库·人工智能·python·php·deepseek·openclaw