资讯专栏INFORMATION COLUMN

<php学习>读取视频文件来获取视频属性的信息

JowayYoung / 1908人阅读

摘要:定义的路径,最好在网站的全局配置文件里定义好另外,重定向符号在等系统中为通过使用输出缓冲,获取到所有输出的内容。提取出播放时间转换为秒开始时间码率单位编码格式视频格式分辨率音频编码音频采样频率实际播放时间文件大小调用方法输出的结果

& define("KC_FFMPEG_PATH", "/usr/local/ffmpeg/bin/ffmpeg -i "%s" 2>&1"); function video_info($file) { ob_start(); passthru(sprintf(KC_FFMPEG_PATH, $file)); $info = ob_get_contents(); ob_end_clean(); // 通过使用输出缓冲,获取到ffmpeg所有输出的内容。 $ret = array(); // Duration: 01:24:12.73, start: 0.000000, bitrate: 456 kb/s if (preg_match("/Duration: (.*?), start: (.*?), bitrate: (d*) kb/s/", $info, $match)) { $ret["duration"] = $match[1]; // 提取出播放时间 $da = explode(":", $match[1]); $ret["seconds"] = $da[0] * 3600 + $da[1] * 60 + $da[2]; // 转换为秒 $ret["start"] = $match[2]; // 开始时间 $ret["bitrate"] = $match[3]; // bitrate 码率 单位 kb } // Stream #0.1: Video: rv40, yuv420p, 512x384, 355 kb/s, 12.05 fps, 12 tbr, 1k tbn, 12 tbc if (preg_match("/Video: (.*?), (.*?), (.*?)[,s]/", $info, $match)) { $ret["vcodec"] = $match[1]; // 编码格式 $ret["vformat"] = $match[2]; // 视频格式 $ret["resolution"] = $match[3]; // 分辨率 $a = explode("x", $match[3]); $ret["width"] = $a[0]; $ret["height"] = $a[1]; } // Stream #0.0: Audio: cook, 44100 Hz, stereo, s16, 96 kb/s if (preg_match("/Audio: (w*), (d*) Hz/", $info, $match)) { $ret["acodec"] = $match[1]; // 音频编码 $ret["asamplerate"] = $match[2]; // 音频采样频率 } if (isset($ret["seconds"]) && isset($ret["start"])) { $ret["play_time"] = $ret["seconds"] + $ret["start"]; // 实际播放时间 } $ret["size"] = filesize($file); // 文件大小 return array($ret,$info); } // 调用方法: print_r( video_info("cuepoints.flv")); ?>
//输出的结果:
Array (
[duration] => 00:00:16.33
[seconds] => 16.33
[start] => 0.000000
[bitrate] => 568
[vcodec] => vp6f
[vformat] => yuv420p
[resolution] => 320x213
[width] => 320
[height] => 213
[acodec] => mp3
[asamplerate] => 44100
[play_time] => 16.33
[size] => 1161290 )

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20816.html

相关文章

  • Python Opencv中基础知识点

      怎么从0到1学习Python呢?Python中的知识点,涉及到内容主要是Python Opencv,用于人工智能,机器学习模拟相关的数据,那么,里面的一些较为基础的知识点,涉及到的内容是什么呢?下面就给大家详细解答下。  OpenCV是一个流行的开源计算机视觉库,可用于不同的编程语言,例如Python、C++和JavaScript。它提供了一套丰富的工具来处理和分析图像和视频,让你可以从调整单...

    89542767 评论0 收藏0
  • Python运用VideoCapture读取录像或监控摄像头然后进行储存

      此篇文章主要是给大家介绍一下OpenCV中cv2.VideoCapture函数的应用,并通过cv2.VideoCapture读取录像或监控摄像头及其开展储存帧图象或者视频,感兴趣的朋友可以看看。  一、词法:cap=cv2.VideoCapture(0)  表明:主要参数0表明默认笔记本电脑的内嵌第一位监控摄像头,必要时载入已经有的小视频则主要参数改成录像所属途径途径,比如:cap=cv2.V...

    89542767 评论0 收藏0
  • Python迅速从短视频获取视频办法详细说明

      本文给大家介绍一类从视频里获取视频帧的办法,因为单核获取视频帧速率比较慢,因而接下来我们增强了线程同步的办法,感兴趣的朋友能够出手试一试  Python迅速获取视频帧(线程同步)  现在详细介绍一下一类从视频里获取视频帧的办法,因为单核获取视频帧速率比较慢,因而接下来我们增强了线程同步的办法。  1、获取视频帧  获取视频帧关键用了Opencv控制模块。  在其中:  camera=cv2.V...

    89542767 评论0 收藏0
  • 如何用Python实现景区安防系统

      本设计的时候,应用YOLO目标检测算法、Openpose姿势检测算法、deepsort跟踪算法、MSCNN群体密度估计技术实现了火灾监测、抽烟数据监测、行为表现安全监控、人群密度数据监测、防护口罩率数据监测、人员定位系统数据监测六个基本要素,对Python完成旅游景点安防监控系统感兴趣的小伙伴一起了解一下吧  本设计的时候,应用YOLO目标检测算法、Openpose姿势检测算法、deepsor...

    89542767 评论0 收藏0
  • python图像处理之图象批量编辑

      此篇文章主要是给大家介绍了python图像处理之图象的批量编辑实例详细解读,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,愿大家多多的发展,尽快涨薪  文章正文  有的时候,不仅需要对一张照片予以处理,可能也会对一大批照片处理。此刻,我们通过循环系统去执行解决,还可以启用程序流程带有的照片结合去处理。  照片结合函数公式  skimage.io.ImageCollection(load...

    89542767 评论0 收藏0

发表评论

0条评论

JowayYoung

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<