PHP如何获取视频总时长与码率等信息
利用PHP中的FFmpeg读取视频播放时长与码率等信息
function
getVideoInfo(
$file
) {
define(
'FFMPEG_PATH'
,
'/usr/local/ffmpeg2/bin/ffmpeg -i "%s" 2>&1'
);
$command
= sprintf(FFMPEG_PATH,
$file
);
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
;
}
//用法
$video_info
= getVideoInfo(
'video.mp4'
);
print_r(
$video_info
);
PHP如何获取视频总时长与码率等信息的更多相关文章
- php使用ffmpeg获取上传的视频的时长,码率等信息
视频上传是程序员在很多时候需要用到的操作,然而上传完视频肯定要获得一些视频的详细信息,php本身是不支持信息获取的 ,所以采用ffmpeg第三方插件 首先你需要下载ffmpeg文件:官网地址:http ...
- windows 7 下,如何统计某文件夹下 视频总时长
由于项目需要,我需要给系统加权限,这真是一个让人头疼的问题,如果要每个业务方法都加上权限判断逻辑,那真的不敢想象是多么大的工作量,日后有变动的话,我会不会发疯? 所以我必须利用之前学到的AOP编程,在 ...
- 统计 flv视频总时长
在学习孟媛的视频课程.网上能下载的是flv格式.那我在学习之前,我要统计一下这个课程的数量,他会用多长时间,这样方便我在学习过程中不断的回顾,进行时间管理.我大概就可以统计出来这个视频多长时间可以学完 ...
- [原]通过配合ffmpeg.exe获取视频文件时长
import subprocess import os import time def getTime(flvpath,fid): #file_str = '1.flv' file_str = flv ...
- js 获取上传视频的时长、大小、后缀名
参考资料:获取时长 var fileName = $("#sectionfileUpload").val(); //C:\fakepath\3.jpeg var exts = fi ...
- 以springMVC为例获取上传视频文件时长
毕设项目是一个在线学习系统,教师用户有上传视频的功能,在答辩之前赶了一个demo出来,好多功能都写死了,比如课程学习进度就是被我写死在前端的一个变量,最近导师要我把项目打包发给他,这才心慌慌赶紧把这些 ...
- android获取mp4视频文件总时长和视频宽高<转>
android使用 MediaMetadataRetriever 获取视频文件的 总时长 和视频的分辨率. 根据该方式获取视频信息可以看出不仅仅可以获取时长和分辨率,还能获取到其他的一些视频信息,不错 ...
- 使用opencv统计视频库的总时长
统计视频库里的视频文件的总时长 废话不多说,直接上代码: /* * ================================================================== ...
- iOS:Gif动画功能(显示gif动画、获取gif动画时长、获取gif动画执行次数)
一.简单介绍 gif动画是iOS开发中很常用的一个功能,有的是为了显示加载视频的过程,更多的是为了显示一个结果状态(动画更直观). 那么如何执行gif动画,方法有很多.(这里只写一下方法三,前两种之前 ...
随机推荐
- RESTful基本概念
文章目录 01 前言 02 RESTful的来源 03 RESTful6大原则 1. C-S架构 2. 无状态 3.统一的接口 4.一致的数据格式 4.系统分层 5.可缓存 6.按需编码.可定制代码( ...
- 分布式id生成方案总结
本文已经收录自 JavaGuide (60k+ Star[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.) 本文授权转载自:https://juejin.im/post/ ...
- python中str.isdigit()用法
str.isdigit()中只包含数字返回true,包含其它则返回false
- 刷题翻车:python 布尔运算操作符的优先级
前两天在 xue.cn 体验答题挑战,我有道题做错了,却不明白错在哪里.题目大概如下,代码运行后将打印什么? if True or False and False: print('1') else: ...
- 14 Zabbix4.4.0系统实现监控checkpoint设备
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 14 Zabbix4.4.0系统实现监控checkpoint设备 1. 前期规划信息 2. 配置 ...
- java多线程与线程并发三:线程同步通信
本文章内容整理自:张孝祥_Java多线程与并发库高级应用视频教程. 有些时候,线程间需要传递消息,比如下面这道面试题: 子线程循环10次,然后主线程循环100次,然后又回到子线程循环50次,然后再回到 ...
- 正则表达式 第五篇:C# 正则元字符
本文整理C#正则表达式的元字符,正则表达式是由字符构成的表达式,每个字符代表一个规则,表达式中的字符分为两种类型:普通字符和元字符.普通字符是指字面含义不变的字符,按照完全匹配的方式匹配文本,而元字符 ...
- UML:类图关系总结
UML类图几种关系的总结,泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Reali ...
- 推荐算法之用矩阵分解做协调过滤——LFM模型
隐语义模型(Latent factor model,以下简称LFM),是推荐系统领域上广泛使用的算法.它将矩阵分解应用于推荐算法推到了新的高度,在推荐算法历史上留下了光辉灿烂的一笔.本文将对 LFM ...
- 破解网站二维码验证,Java实现,不调用任何平台api接口
package image.images; import java.io.File; import java.io.IOException; import java.io.InputStream; i ...