【PHP】PHP利用ffmreg获取音频、视频的详细信息

news2024/11/20 0:45:38

目录

一、目的

二、下载并安装ffmreg

三、PHP代码

四、运行结果


一、目的

使用PHP利用ffmreg获取音频、视频的详细信息,音视频总时长、码率、视频分辨率、音频编码、音频采样频率、实际播放时间、文件大小。

二、下载并安装ffmreg

1、下载地址:https://download.csdn.net/download/qq_25285531/88750220

2、解压放到项目下,文件夹下有三个exe

三、PHP代码

说明:ffmpeg 更换成自己实际存放地址;

getVideoInfo()方法有三个判断,分别是获取音视频基本信息(音视频时长、音视频秒数、开始时间、码率等),视频信息(视频编码、视频格式、视频分辨率、视频尺寸),音频信息(音频编码、音频采样频率)、音视频文件大小

/**
 * 获取音视频基本信息
 */
public function getVideoInfo($file)
{
	 $command = sprintf('E:/phpstudy_pro/WWW/test/public/ffmpeg/bin/ffmpeg -i "%s" 2>&1', $file);  //你的ffmpeg路径

	 ob_start();
	 passthru($command);
	 $info = ob_get_contents();
	 ob_end_clean();

	 $data = array();
	 if (preg_match("/Duration: (.*?), start: (.*?), bitrate: (\d*) kb\/s/", $info, $match)) {
         $data['duration'] = $match[1]; //播放时间
         $arr_duration = explode(':', $match[1]);
         $data['seconds'] = $arr_duration[0] * 3600 + $arr_duration[1] * 60 + $arr_duration[2]; //转换播放时间为秒数
         $data['start'] = $match[2]; //开始时间
         $data['bitrate'] = $match[3]; //码率(kb)
     }
     if (preg_match("/Video: (.*?), (.*?), (.*?)[,\s]/", $info, $match)) {
         $data['vcodec'] = $match[1]; //视频编码格式
         $data['vformat'] = $match[2]; //视频格式
         $data['resolution'] = $match[3]; //视频分辨率
         $arr_resolution = explode('x', $match[3]);
         $data['width'] = $arr_resolution[0];
         $data['height'] = $arr_resolution[1];
     }
     if (preg_match("/Audio: (\w*), (\d*) Hz/", $info, $match)) {
         $data['acodec'] = $match[1]; //音频编码
         $data['asamplerate'] = $match[2]; //音频采样频率
     }
     if (isset($data['seconds']) && isset($data['start'])) {
         $data['play_time'] = $data['seconds'] + $data['start']; //实际播放时间
     }
     $data['size'] = filesize($file); //文件大小
     return $data;
}

/**
 * 调用
 */
public function video()
{
	// 定义视频路径
	$videoPath = 'E:/phpstudy_pro/WWW/test/public/uploads/8秒.mp4';
	$video_info = $this->getVideoInfo($videoPath);
	echo '<pre>';
    print_r($video_info);
}

四、运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1389560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于影视字幕翻译哪个公司比较专业?

现如今&#xff0c;影视剧作为跨文化交流的重要桥梁&#xff0c;正日益受到中国观众的热爱。因此也催生了影视字幕翻译的需求。那么&#xff0c;如何做好影视作品字幕翻译&#xff0c;哪个公司在影视字幕英译中更为专业&#xff1f; 我们知道&#xff0c;字幕翻译是涉外影视作品…

美创科技助力江苏有线通过DSMM二级认证

近日&#xff0c;经中国信通院泰尔认证中心评审&#xff0c;美创科技助力江苏省广电有线信息网络股份有限公司&#xff08;以下简称“江苏有线”&#xff09;顺利通过DSMM数据安全能力成熟度二级认证&#xff0c;成为广电行业内首家获得二级认证的单位&#xff01; 背景概述 江…

蓝桥杯 最长递增

输入 7 5 2 4 1 3 7 2 输出 3 思路 这个思路也很简单&#xff0c;后面大于前面&#xff0c;长度加一。当后面不大于前面的时候&#xff0c;就是一个新的递增序列了&#xff0c;递增序列的长度最小为1。 代码 #include <iostream> using namespace std; int main() {in…

解决文库系统 本地转码 libreoffice中文乱码的问题(mkfontscale mkfontdir fc-cache -fv命令)

安装搭建好的文库系统在使用Linux系统libreoffice时&#xff0c;如果系统安装时没有安装中文字体库或者中文字体字库不全&#xff0c;将会导致无法正常生成和显示中文 文库系统中文乱码 转码问题处理好之后的效果&#xff1a; 现在中文显示就正常了 1、要查看系统中已经安…

基于GD32F103移植freemodbus从机库

首先说明github下载的freemodbus开源库不可以使用,需要修改 准备资料 下载一个freemodbus开源库 https://gitee.com/chejia12/freemodbus 开源库目录结构 建立文件夹 src inc port 将functions内部文件放入src文件夹将rtu内部的c文件放入src文件夹,h文件放入inc文件夹将m…

ICCV2023 | VL-Match: 使用Token-Level和Instance-Level Matching提升视觉语言预训练

论文标题&#xff1a;VL-Match: Enhancing Vision-Language Pretraining with Token-Level and Instance-Level Matching 代码&#xff1a;None 单位&#xff1a;中国科学院北京计算技术研究所 中国科学院大学 微软 在VLP种&#xff0c;通常采用两种预训练任务&#xff0…

IF=16.6 | Quick CTL细胞免疫佐剂免疫HLA转基因小鼠,助力TCR- T细胞构建!

023年10月12日&#xff0c;中国科学院微生物研究所高福研究团队和谭曙光研究团队于Nature Communications发表了题为KRAS G12V neoantigen specific T cell receptor for adoptive T cell therapy against tumors的研究论文。 影响因子&#xff1a;16.6 Doi&#xff1a;KRAS G…

免费scrum管理工具Leangoo敏捷做缺陷跟踪管理

缺陷管理通常关注如下几个方面&#xff1a; 1. 缺陷的处理速度 2. 缺陷处理的状态 3. 缺陷的分布 4. 缺陷产生的原因 使用Leangoo敏捷看板我们可以对缺陷进行可视化的管理&#xff0c;方便我们对缺陷的处理进展、负责人、当前状态、分布情况等各个方面一目了然。 下面我们…

ATFX汇市:美元指数延续反弹态势,USDCHF年内已涨超2%

ATFX汇市&#xff1a;上周五和本周一&#xff0c;美元指数均以阳线收盘。今日盘中&#xff0c;美元指数呈中阳线形态&#xff0c;如果晚间的美国1月纽约联储制造业指数没有爆冷&#xff0c;美元指数今日以阳线收盘的概率极高。连续三日以阳线收盘&#xff0c;意味着美元指数的反…

文件的创建时间可以修改吗,怎么改?

文件的创建时间可以修改吗&#xff0c;怎么改&#xff1f;文件的创建时间是由操作系统自动生成并记录的&#xff0c;通常情况下无法直接修改。创建时间是文件的属性之一&#xff0c;它反映了文件在文件系统中的生成时间。一旦文件被创建&#xff0c;其创建时间就被确定下来&…

FEP水质取样器应用环境检测无溶出析出深水取样器

FEP水质取样器是一种用于采集水样的工具&#xff0c;它具有以下特点&#xff1a; 1.抗腐蚀性强&#xff1a;FEP材料具有出色的耐腐蚀性&#xff0c;可以在各种恶劣的水质环境中使用。 2.热稳定性好&#xff1a;FEP材料具有良好的热稳定性&#xff0c;能够在高温环境下保持结构完…

发送HTTP POST请求并处理响应

发送HTTP POST请求并处理响应是Web开发中的常见任务。在Go语言中&#xff0c;可以使用net/http包来发送HTTP POST请求并处理响应。 以下是一个示例代码&#xff0c;演示了如何发送HTTP POST请求并处理响应&#xff1a; go复制代码 package main import ( "b…

MessageBox:HubSpot x Facebook全方位对接!

在当今数字化营销的浪潮中&#xff0c;将多个业务系统高效整合成为推动企业成功的核心。HubSpot作为一体化的市场营销平台&#xff0c;与Facebook的整合通过强大的工具——MessageBox&#xff0c;为企业提供了更灵活、高效的整合方案。今天运营坛将深入探讨在HubSpot平台上整合…

Intel Processor Trace(一)

文章目录 前言一、Features and Capabilities1.1 Packet Summary 二、Intel Processor Trace Operational Model2.1 Change of Flow Instruction (COFI) Tracing2.1.1 Direct Transfer COFI2.1.2 Indirect Transfer COFI2.1.3 Far Transfer COFI 2.2 Software Trace Instrument…

PLC远程控制网关:实现智能化生产的关键

近年来&#xff0c;随着工业自动化的快速发展&#xff0c;越来越多的企业开始采用PLC远程控制网关来实现生产过程的智能化管理。这种创新的技术不仅能够提高生产效率&#xff0c;还可以降低成本&#xff0c;并且为企业带来更多的商业机会。 PLC远程控制网关是一种基于互联网的…

贵阳贵安持续打造面向全国的算力保障基地

作者&#xff1a;黄玉叶 当前&#xff0c;新一轮科技革命和产业变革正在重塑全球经济结构&#xff0c;算力作为数字经济的核心生产力&#xff0c;成为全球战略竞争的新焦点。2021年5月&#xff0c;国家发展改革委、中央网信办、工业和信息化部、国家能源局联合印发《全国一体化…

【昕宝爸爸小模块】深入浅出之JDK21 中的虚拟线程到底是怎么回事(二)

➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你&#x1f44d;点赞、&#x1f5c2;️收藏、加❤️关注哦。 本文章CSDN首发&#xff0c;欢迎转载&#xff0c;要注明出处哦&#xff01; 先感谢优秀的你能认真的看完本文&…

Linux------进程的fork()详解

目录 前言 一、fork()的使用 二、fork()的返回值 我们为什么要创建子进程&#xff1f; 父进程与子进程的分流 三、fork的一些难理解的问题 1.fork干了什么事情&#xff1f; 2.fork为什么会有两个返回值 3.fork的两个返回值&#xff0c;为什么会给父进程返回子进程pid…

Linux Mii management/mdio子系统分析之六 fixed-mii_bus分析(mac2mac分析)

&#xff08;转载&#xff09;原文链接&#xff1a;[https://blog.csdn.net/u014044624/article/details/130674908] (https://blog.csdn.net/u014044624/article/details/130674908) 前面几章我们介绍了MDIO模块的大部分内容&#xff0c;针对mii_bus、mdio_bus、phy_device、p…

鸿蒙开发的前景趋势及薪资水平展望

随着科技的迅猛发展和数字化转型的推进&#xff0c;鸿蒙系统作为国内领先的分布式操作系统&#xff0c;已经在市场中崭露头角&#xff0c;展现出独特的技术优势和广阔的应用前景。对于开发者而言&#xff0c;掌握鸿蒙开发技能不仅意味着拥有更多的职业发展机会&#xff0c;还预…