【备忘】在使用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 总结 …...
大模型入门指南:小白程序员必看,收藏学习路径!
一、基础通用概念AI(人工智能) 让机器模拟人类智能(感知、推理、学习、决策)的技术总称。 ML(机器学习) AI 的核心分支:让机器从数据中自动学习规律,不用逐条写规则。 DL(…...
自动驾驶模拟平台模型配置全指南:从技术选型到场景验证
自动驾驶模拟平台模型配置全指南:从技术选型到场景验证 【免费下载链接】alpasim 项目地址: https://gitcode.com/GitHub_Trending/al/alpasim 一、AlpaSim核心价值:构建自动驾驶研发闭环 AlpaSim作为开源自动驾驶模拟平台,通过模块…...
为什么你的USB摄像头总掉帧?深入UVC协议Alternate Setting配置避坑指南
为什么你的USB摄像头总掉帧?深入UVC协议Alternate Setting配置避坑指南 工业视觉检测线上,一台标称30fps的USB摄像头突然掉到15帧,导致传送带上的缺陷品漏检;手术内窥镜画面在关键时刻出现卡顿,医生不得不暂停操作——…...
run-aspnetcore-microservices 购物车微服务:Redis分布式缓存与Grpc同步通信实现
run-aspnetcore-microservices 购物车微服务:Redis分布式缓存与Grpc同步通信实现 【免费下载链接】run-aspnetcore-microservices aspnetrun/run-aspnetcore-microservices: 是一个用于部署和运行 ASP.NET Core 微服务应用程序的开源项目,提供了一个简单…...
C#开发者的福音:用SqlSugar封装一个通用数据访问层,支持SQLite/SQL Server/MySQL一键切换
构建企业级数据访问层:SqlSugar多数据库适配架构实战 在当今快速迭代的软件开发环境中,数据访问层作为连接业务逻辑与持久化存储的关键桥梁,其设计质量直接影响着系统的可维护性和扩展性。对于C#开发者而言,SqlSugar以其轻量级和高…...
dmview.ocx文件丢失找不到 打不开程序 免费下载方法分享
在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…...
RPCS3完全攻略:从零开始打造你的PC端PS3游戏中心
RPCS3完全攻略:从零开始打造你的PC端PS3游戏中心 【免费下载链接】rpcs3 PS3 emulator/debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 还在为无法重温经典PS3游戏而烦恼吗?想要在电脑上体验《最后生还者》、《神秘海域》等索…...
GLM-4v-9b行业落地:跨境电商商品图多语言描述生成自动化方案
GLM-4v-9b行业落地:跨境电商商品图多语言描述生成自动化方案 1. 引言:跨境电商卖家的共同痛点 如果你是做跨境电商的,下面这个场景你一定不陌生:仓库里堆满了新品,运营同事催着要上架,但每个商品都需要准…...
从“跟网”到“构网”:新能源并网变流器的稳定性为何一个怕强一个怕弱?用大白话讲清失稳机理
新能源并网变流器的"性格差异":为什么构网型怕强电网,跟网型怕弱电网? 想象一下,你正在指挥两支风格迥异的交响乐团——一支严格遵循指挥家的每个动作(跟网型变流器),另一支则自带节奏…...
PyArmor解包终极指南:3种高效逆向分析技巧快速掌握代码解密核心技术
PyArmor解包终极指南:3种高效逆向分析技巧快速掌握代码解密核心技术 【免费下载链接】PyArmor-Unpacker A deobfuscator for PyArmor. 项目地址: https://gitcode.com/gh_mirrors/py/PyArmor-Unpacker PyArmor-Unpacker是一个专为Python开发者和安全研究人员…...
