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');
相关推荐
小镇学者1 小时前
【PHP】PHP WebShell(网页木马)分析
android·开发语言·php
come112343 小时前
现代前端技术栈关系详解 (PHP 开发者特供版)
开发语言·前端·php
last demo5 小时前
nfs服务器
linux·运维·服务器·php
ZEGO即构开发者6 小时前
WebRTC 实战:用即构 SDK 搭建 Web 端 1v1 视频通话(含完整流程与 Demo)
前端·音视频·webrtc
q***92516 小时前
PHP搭建开发环境(Windows系统)
开发语言·windows·php
趣浪吧8 小时前
AI在手机上真没用吗?
人工智能·智能手机·aigc·音视频·媒体
last demo9 小时前
iscsi服务器
linux·运维·服务器·php
qq_282195319 小时前
嵌入式音频USB Audio调试
linux·音视频
代码狂想家9 小时前
CANN视频增强实战:基于Ascend平台的历史影像修复
音视频