怎么在PHP中利用FFmpeg函数对视频播放的时长进行获取

发布时间:2020-12-18 16:02:20

来源:亿速云

阅读:96

作者:Leah

这篇文章给大家介绍怎么在PHP中利用FFmpeg函数对视频播放的时长进行获取,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

PHP<?php

define('FFMPEG_PATH', '/usr/local/ffmpeg2/bin/ffmpeg -i "%s" 2>&1');

function getVideoInfo($file) {

$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中利用FFmpeg函数对视频播放的时长进行获取就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

ffmpeg php 快速播放,怎么在PHP中利用FFmpeg函数对视频播放的时长进行获取相关推荐

  1. PHP中利用Ffmpeg获得flv视频缩略图和播放时间

    为什么80%的码农都做不了架构师?>>>    这里简单说一下:FFmpeg是用于录制.转换和流化音频和视频的完整解决方案,一套领先的音/视频编解码类库.官方正式版ffmpeg不支持 ...

  2. 在 Apache Spark 中利用 HyperLogLog 函数实现高级分析

    在 Apache Spark 中利用 HyperLogLog 函数实现高级分析 预聚合是高性能分析中的常用技术,例如,每小时100亿条的网站访问数据可以通过对常用的查询纬度进行聚合,被降低到1000万 ...

  3. Py之matplotlib:在matplotlib库中利用legend函数创建自定义图例(代码实现)

    Py之matplotlib:在matplotlib库中利用legend函数创建自定义图例(代码实现) 目录 matplotlib库中利用legend函数创建自定义图例 原始图像 在原始图像上创建自定义 ...

  4. Django模板中如何将函数的变量作为字典key并获取对应的value

    Django模板中如何将函数的变量作为字典key并获取对应的value 问题 现有一字典 mydict = {'abc': 123} key = 'abc' 传入到模板后 在模板html中你可能像下面 ...

  5. php中glob怎么用,如何在php中利用glob函数对文件进行遍历

    如何在php中利用glob函数对文件进行遍历 发布时间:2020-12-11 16:02:47 来源:亿速云 阅读:76 作者:Leah 如何在php中利用glob函数对文件进行遍历?相信很多没有经验 ...

  6. str split函数 php,怎么在php中利用str_split函数分割字符串

    怎么在php中利用str_split函数分割字符串 发布时间:2021-01-04 14:52:31 来源:亿速云 阅读:54 作者:Leah 今天就跟大家聊聊有关怎么在php中利用str_split ...

  7. php 输出数组第一个元素,怎么在php中利用reset() 函数输出数组中的第一个元素

    怎么在php中利用reset() 函数输出数组中的第一个元素 发布时间:2021-01-16 09:37:11 来源:亿速云 阅读:66 作者:Leah 本篇文章给大家分享的是有关怎么在php中利用r ...

  8. C语言中利用Swap函数交换变量a,b

    C语言中利用Swap函数交换变量a,b 常见错误写法 error1 void Sawp_error1(int a,int b) {int tmp;tmp=a;a=b;b=tmp; } int main ...

  9. c语言读取文件字节数,怎么在C语言中利用fstat函数获取文件的大小

    怎么在C语言中利用fstat函数获取文件的大小 发布时间:2021-01-22 17:03:17 来源:亿速云 阅读:110 作者:Leah 怎么在C语言中利用fstat函数获取文件的大小?针对这个问 ...

最新文章

  1. SpringBoot多线程环境下,解决多个定时器冲突问题
  2. 深度学习debug沉思录!
  3. java中正则表达式 ?=_Java中的正则表达式
  4. 设置 页面 内容并排平均显示
  5. android wifi RSSI达到阈值自动断开
  6. mysql删除记录后id不连续_小水玩转Mysql---Mysql跟踪sql记录
  7. 2.微型计算机系统的基本结构及计算机各个部件的功能
  8. 和catch的区别_面试刷题2:Exception和Error的区别?
  9. 190327每日一句
  10. java 时间戳 重复_在Java中创建一个唯一的时间戳
  11. android6.0原生brower_Android原生下载组件DownloadManager
  12. 人心是暖的,眼泪是苦的,杜鹃花真的很香
  13. 大学上计算机课要准备笔记本电脑吗,大一新生需要买笔记本电脑吗 有必要吗...
  14. xp系统禁止开机启动服务器,Window XP 开机启动超慢,哪些系统服务和进程可以禁用?...
  15. Azure-发布个人静态网站
  16. werfault进程使用CPU率高
  17. 2021第7届中国大学生程序设计竞赛CCPC广州站, 签到题4题
  18. 初识AI,ML和DL关系
  19. 干货丨Python常用的1000+库大盘点
  20. Electron-vue开发桌面应用调用TSCLIB.dll(tsc标签打印机连接库)

热门文章

  1. 从 webpack 到全面拥抱 Parcel #1 探索 Parcel
  2. day12-mysql 增删改查
  3. C#用DesignSurface实现一个简单的窗体设计器
  4. Const *ptr ptr
  5. 烂泥:ubuntu 14.04搭建Open***服务器
  6. 关于swing的一些看法
  7. 第四章 Lync server 2010的安装
  8. 从Google代码库找到的好东西
  9. vivado的ip核使用-pll
  10. html5 点击事件委托,jquery事件委托