【备忘】在使用php-ffmpeg/php-ffmpeg开发时遇到Unable to load FFProbe时如何处理?
执行FFProbe::create()时,提示Unable to load FFProbe,php-ffmpeg/php-ffmpeg版本是用的^0.19.0,安装位置/usr/bin/ffprobe,现在提示这个错误要怎么解决呢
说个小技巧:
当在开发跟视频相关的功能时,总是出现:Unable to load FFProbe,这个时候有可能是环境变量问题,这是需要在相关功能之前执行如下代码,很可能你的问题就解决了。
putenv('PATH=' . getenv('PATH') . ':/usr/bin');
有个大前提,必须是你已经下载并安装了php-ffmpeg/php-ffmpeg库所需要的文件,如:
/usr/bin/ffmpeg
/usr/bin/ffprobe
这两个文件必不可少,网上有很多安装教程,自行检索。
安装之后再使用composer安装php-ffmpeg/php-ffmpeg库,然后在代码中使用,如:
function getVideoInfo(){//指定环境变量putenv('PATH=' . getenv('PATH') . ':/usr/bin');// 初始化FFMpeg实例,指向FFmpeg可执行文件的路径(根据实际情况调整路径)$ffmpeg = FFMpeg::create(['ffmpeg.binaries' => '/usr/bin/ffmpeg', // 或者其他FFmpeg实际路径'ffprobe.binaries' => '/usr/bin/ffprobe', // 或者其他ffprobe实际路径]);// 指定要从中提取第一帧的视频文件路径$inputVideo = $updata['real_path']; // 替换为您的视频文件路径// 指定输出图像文件的路径和格式(例如,输出为JPEG格式)$filename = Tools::rand_str(32) . '.jpg';$outer_path = '/uploads/video_cover/' .date('Ymd').'/';$outputImagePath = Tools::get_root_path() .'public'. $outer_path; // 替换为您希望保存第一帧的路径if(!file_exists($outputImagePath)){mkdir($outputImagePath, 0777, true);}$outputImage = $outputImagePath. $filename;// 打开视频文件$video = $ffmpeg->open($inputVideo);// 提取第一帧(默认情况下,FFMpeg库将从视频的开始处获取第一帧)$frame = $video->frame(TimeCode::fromSeconds(0));// 将第一帧保存到指定的图像文件$frame->save($outputImage, 'image/jpeg');// 使用FFProbe获取视频信息$ffprobe = FFProbe::create();$videoInfo = $ffprobe->format($inputVideo);// 获取视频的时长$duration = $videoInfo->get('duration');//其它业务逻辑//......
}
END
相关文章:
【备忘】在使用php-ffmpeg/php-ffmpeg开发时遇到Unable to load FFProbe时如何处理?
执行FFProbe::create()时,提示Unable to load FFProbe,php-ffmpeg/php-ffmpeg版本是用的^0.19.0,安装位置/usr/bin/ffprobe,现在提示这个错误要怎么解决呢 说个小技巧: 当在开发跟视频相关的功能时,总是出…...
REFORMER: 更高效的TRANSFORMER模型
大型Transformer模型通常在许多任务上都能达到最先进的结果,但是训练这些模型的成本可能会非常高昂,特别是在处理长序列时。我们引入了两种技术来提高Transformer的效率。首先,我们用一种使用局部敏感哈希的点积注意力替换了原来的点积注意力…...
视频合并有妙招:视频剪辑一键操作,批量嵌套合并的必学技巧
在数字时代的今天,视频已经成为我们日常生活和工作中不可或缺的一部分。无论是记录生活点滴,还是制作专业项目,视频合并都是一个常见的需求。然而,对于许多人来说,视频合并却是一个复杂且繁琐的过程。现在有云炫AI智剪…...
安装SQL Server详细教程_sql server安装教程
一,SQL Server数据库安装 1.首先,下载安装程序 (1)从网盘下载安装exe 点击此处直接下载 (2)从官网下载安装exe文件 在官网选择Developer进行下载 2.开始安装 双击安装程序,开始安装 这里直…...
Git那些事-如何撤销暂存区的文件
在Git的操作中,有时在将本地仓库中已修改的文件添加到暂存区时,会出现添加了"错误"文件的情况(这里的错误指的是这些文件我们并不需要上传到远程仓库)。这就需要我们将添加到暂存区中"错误"的文件恢复到本地仓…...
记一次SQL和程序查询结果不一致的问题
使用的数据库 clickHouse 程序查询出来时14.4 直接执行Sql查询出来是14.2 select round(sum(current_play_time) / 60 / 60, 1) from (SELECT max(current_play_time) as current_play_timeFROM probe_recordsWHERE toDateTime(log_time, Asia/Shanghai) > 2024-05-11 00…...
Python 实战之量化交易
1. Python 实战之量化交易 2..Python量化交易实战-04.量化交易系统架构的设计 Python量化交易实战-04.量化交易系统架构的设计 - 知乎 3.Python量化交易实战-06.通过PythonAPI获取股票数据 Python量化交易实战-06.通过PythonAPI获取股票数据 - 知乎 3.Python量化交易实战…...
跟我学C++中级篇——封装对象的实践
一、对象封装 在面向对象编程中,首要的事情就是如何进行对象的封装。说的直白一些,就是如何设计类或者是结构体。许多开发者看过不少的书,也学过很多的设计方法,更看过很多别人的代码。那么如何指导自己进行对象的封装呢…...
iOS面试题链接汇总
iOS开发三年经验 靠这份面试题让我从15k到25k - 简书 2021年,整理的iOS高频面试题及答案(总会有你需要的) - 知乎 iOS面试(内含面试全流程,面试准备工作面试题等)-CSDN博客 runtime: 阿里、字节 一套高效…...
TEINet: Towards an Efficient Architecture for Video Recognition 论文阅读
TEINet: Towards an Efficient Architecture for Video Recognition 论文阅读 Abstract1 Introduction2 Related Work3 Method3.1 Motion Enhanced Module3.2 Temporal Interaction Module3.3 TEINet 4 Experiments5 Conclusion阅读总结 文章信息; 原文链接:https:…...
Navicat Data Modeler Ess for Mac:强大的数据库建模设计软件
Navicat Data Modeler Ess for Mac是一款专为Mac用户设计的数据库建模与设计工具,凭借其强大的功能和直观的界面,帮助用户轻松构建和管理复杂的数据库模型。 Navicat Data Modeler Ess for Mac v3.3.17中文直装版下载 这款软件支持多种数据库系统&#x…...
NSS刷题
[SWPUCTF 2021 新生赛]jicao 类型:PHP、代码审计、RCE 主要知识点:json_decode()函数 json_decode():对JSON字符串解码,转换为php变量 用法: <?php $json {"ctf":"web","question"…...
CUDA专项
1、讲讲shared memory bank conflict的发生场景?以及你能想到哪些解决方案? CUDA中的共享内存(Shared Memory)是GPU上的一种快速内存,通常用于在CUDA线程(Thread)之间共享数据。然而࿰…...
C# 判断Access数据库中表是否存在,表中某个字段是否存在
在C#中判断Access数据库中某个表是否存在以及该表中某个字段是否存在,可以通过以下步骤实现: 判断表是否存在 可以使用ADO.NET中的OleDbConnection.GetOleDbSchemaTable方法来获取数据库的架构信息,并检查特定的表是否存在。 using System…...
【C++】学习笔记——模板进阶
文章目录 十一、模板进阶1. 非类型模板参数2. 按需实例化3. 模板的特化类模板的特化 4. 模板的分离编译 未完待续 十一、模板进阶 1. 非类型模板参数 模板参数分为类型形参和非类型形参 。类型形参即:出现在模板参数列表中,跟在class或者typename之类的…...
JAVA系列 小白入门参考资料 接口
目录 接口 接口的概念 语法 接口使用 接口实现用例 接口特性 实现多个接口和实现用例 接口间的继承 接口 接口的概念 在现实生活中,接口的例子比比皆是,比如:笔记本上的 USB 口,电源插座等。 电脑的 USB 口上&am…...
日报表定时任务优化历程
报表需求背景 报表是一个很常见的需求,在项目中后期往往会需要加多种维度的一些统计信息,今天就来谈谈上线近10个月后的一次报表优化优化之路(从一天报表跑需要五分钟,优化至秒级) 需求:对代理商进行日统计…...
excel表格里,可以把百分号放在数字前面吗?
在有些版本里是可以的,这样做: 选中数据,鼠标右键,点击设置单元格格式,切换到自定义,在右侧栏输入%0,点击确定就可以了。 这样设置的好处是,它仍旧是数值,并且数值大小没…...
应用案例 | 商业电气承包商借助Softing NetXpert XG2节省网络验证时间
一家提供全方位服务的电气承包商通过使用Softing NetXpert XG2顺利完成了此次工作任务——简化了故障排查的同时,还在很大程度上减少了不必要的售后回访。 对已经安装好的光纤或铜缆以太网网络进行认证测试可能会面临不同的挑战,这具体取决于网络的规模、…...
【JAVA语言-第20话】多线程详细解析(二)——线程安全,非线程安全的集合转换成线程安全
目录 线程安全 1.1 概述 1.2 案例分析 1.3 解决线程安全问题 1.3.1 使用synchronized关键字 1.3.1.1 同步代码块 1.3.1.2 同步方法 1.3.2 使用Lock锁 1.3.2.1 概述 代码示例: 1.4 线程安全的类 1.4.1 非线程安全集合转换成线程安全集合 1.5 总结 …...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
