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');
相关推荐
BingoGo17 小时前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack17 小时前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982071 天前
PHP 扩展——从入门到理解
php
RTC实战笔记2 天前
Android 实时音视频接入教程:媒体补充增强信息(SEI)
音视频·媒体·rtc
鹏仔先生2 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
潜创微科技2 天前
HDMI1.3 无线传输芯片方案 空旷 150 米量产级音视频方案
音视频
VidDown2 天前
VidDown 工具站:免费、本地优先的开发者工具箱
javascript·编辑器·音视频·视频编解码·视频
换个昵称都难2 天前
音频格式之WAV
音视频
AI创界者2 天前
PilotTTS 一键整合包(Win/Mac):8G 显存畅跑,实测解锁情绪与副语言的精准控制
人工智能·macos·aigc·音视频
云水一下2 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php