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');
相关推荐
八八在线工具3 分钟前
高效安全的M3U8 TS分片合并利器:88在线工具TS Merge深度解析
安全·音视频
EasyCVR22 分钟前
视频融合平台EasyCVR网络不稳定的情况下如何让服务正常运行
音视频
止礼34 分钟前
FFmpeg8.0.1 编解码流程
ffmpeg
gaize121335 分钟前
如何配置一个!P地址和子网掩码?
开发语言·php
EasyCVR41 分钟前
视频融合平台EasyCVR如何获取固定m3u8流地址
音视频
星光一影1 小时前
合成植物大战僵尸 安卓原生APP Cocos游戏 支持Sigmob
android·游戏·php·html5·web app
qs70161 小时前
c直接调用FFmpeg命令无法执行问题
c语言·开发语言·ffmpeg
止礼1 小时前
FFmpeg8.0.1 Mac环境 CMake本地调试配置
macos·ffmpeg
大写-凌祁1 小时前
Change3D:从视频建模视角重新审视变化检测与描述
3d·音视频
俩个逗号。。2 小时前
android 后台应用申请音频焦点失败
android·音视频