getID3獲取本地或遠程視頻時長

音頻文件也可使用,使用ffmeg安裝太復雜了

附ffmpeg方式:centos下安裝ffmpeg_yum安裝ffmpeg-CSDN博客

使用composer先安裝

composer require james-heinrich/getid3

獲取本地視頻

 //獲取本地視頻$video_path = $_SERVER['DOCUMENT_ROOT'].$params['video'];$getid3 = new getID3();$info = $getid3->analyze($video_path);var_dump($info);

獲取遠程視頻信息,也是生成臨時文件,再刪除,如果再上傳本地的時候直接使用本地獲取即可

//遠程視屏地址 
$remotefilename = 'https://vdept3.bdstatic.com/mda-qfvaqpnzzj3qf31w/cae_h264/1719738331410781347/mda-qfvaqpnzzj3qf31w.mp4?v_from_s=hkapp-haokan-hbf&auth_key=1743144763-0-0-fcab6e8d4022a8b4d186e26431dcc39b&bcevod_channel=searchbox_feed&pd=1&cr=0&cd=0&pt=3&logid=3163875783&vid=16648779981624158842&klogid=3163875783&abtest=';if ($fp_remote = fopen($remotefilename, 'rb')) {$localtempfilename = tempnam('', 'getID3');if ($fp_local = fopen($localtempfilename, 'wb')) {while ($buffer = fread($fp_remote, 8192)) {fwrite($fp_local, $buffer);}fclose($fp_local);$getID3 = new getID3();$ThisFileInfo = $getID3->analyze($localtempfilename);$second = floor($ThisFileInfo['playtime_seconds']) ?? 0; //秒數向下取整var_dump($ThisFileInfo);//打印信息unlink($localtempfilename);}fclose($fp_remote);}

打印出來的視頻信息

array(19) {["GETID3_VERSION"] => string(19) "1.9.23-202310190849"["filesize"] => int(8323282)["filepath"] => string(35) "C:/Users/PC-8625/AppData/Local/Temp"["filename"] => string(11) "getFCB0.tmp"["filenamepath"] => string(47) "C:/Users/PC-8625/AppData/Local/Temp/getFCB0.tmp"["avdataoffset"] => int(87891)["avdataend"] => int(8323282)["fileformat"] => string(3) "mp4"["audio"] => array(10) {["dataformat"] => string(3) "mp4"["bitrate"] => int(65622)["codec"] => string(19) "ISO/IEC 14496-3 AAC"["sample_rate"] => float(44100)["channels"] => int(2)["bits_per_sample"] => int(16)["lossless"] => bool(false)["channelmode"] => string(6) "stereo"["compression_ratio"] => float(0.046500850340136)["streams"] => array(1) {[0] => array(9) {["dataformat"] => string(3) "mp4"["bitrate"] => int(65622)["codec"] => string(19) "ISO/IEC 14496-3 AAC"["sample_rate"] => float(44100)["channels"] => int(2)["bits_per_sample"] => int(16)["lossless"] => bool(false)["channelmode"] => string(6) "stereo"["compression_ratio"] => float(0.046500850340136)}}}["video"] => array(8) {["dataformat"] => string(9) "quicktime"["rotate"] => int(0)["resolution_x"] => int(640)["resolution_y"] => int(360)["fourcc"] => string(4) "avc1"["fourcc_lookup"] => string(16) "H.264/MPEG-4 AVC"["frame_rate"] => float(25)["bitrate"] => float(291412.00549507)}["tags"] => array(1) {["quicktime"] => array(1) {["encoding_tool"] => array(1) {[0] => string(44) "Multimedia Cloud Transcode (cloud.baidu.com)"}}}["comments"] => array(1) {["language"] => array(1) {[0] => string(12) "Undetermined"}}["encoding"] => string(5) "UTF-8"["mime_type"] => string(9) "video/mp4"["quicktime"] => array(13) {["hinting"] => bool(false)["controller"] => string(8) "standard"["ftyp"] => array(7) {["hierarchy"] => string(4) "ftyp"["name"] => string(4) "ftyp"["size"] => int(32)["offset"] => int(0)["signature"] => string(4) "isom"["unknown_1"] => int(512)["fourcc"] => string(4) "isom"}["timestamps_unix"] => array(2) {["create"] => array(3) {["moov mvhd"] => int(-2082844800)["moov trak tkhd"] => int(-2082844800)["moov trak mdia mdhd"] => int(-2082844800)}["modify"] => array(3) {["moov mvhd"] => int(-2082844800)["moov trak tkhd"] => int(-2082844800)["moov trak mdia mdhd"] => int(-2082844800)}}["time_scale"] => int(44100)["display_scale"] => float(1)["video"] => array(5) {["rotate"] => int(0)["resolution_x"] => int(640)["resolution_y"] => int(360)["frame_rate"] => float(25)["frame_count"] => int(4613)}["stts_framecount"] => array(2) {[0] => int(4613)[1] => int(7947)}["audio"] => array(5) {["bitrate"] => int(65622)["codec"] => string(3) "mp4"["sample_rate"] => float(44100)["channels"] => int(2)["bit_depth"] => int(16)}["comments"] => array(1) {["encoding_tool"] => array(1) {[0] => string(44) "Multimedia Cloud Transcode (cloud.baidu.com)"}}["free"] => array(4) {["hierarchy"] => string(4) "free"["name"] => string(4) "free"["size"] => int(8)["offset"] => int(87875)}["mdat"] => array(4) {["hierarchy"] => string(4) "mdat"["name"] => string(4) "mdat"["size"] => int(8235399)["offset"] => int(87883)}["encoding"] => string(5) "UTF-8"}["playtime_seconds"] => float(184.529)["bitrate"] => float(357034.00549507)["tags_html"] => array(1) {["quicktime"] => array(1) {["encoding_tool"] => array(1) {[0] => string(44) "Multimedia Cloud Transcode (cloud.baidu.com)"}}}["playtime_string"] => string(4) "3:05"
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/74231.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74231.shtml
英文地址,請注明出處:http://en.pswp.cn/web/74231.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

10、Linux C 網絡編程(完整版)

1、網絡發展歷史和分層 1.1 Internet 的歷史 起源: 1957 年:蘇聯發射第一顆人造衛星 "Sputnik"。 1958 年:美國總統艾森豪威爾成立 DARPA(國防部高級研究計劃署)。 1968 年:DARPA 提出 "…

前端:開源軟件鏡像站 / 清華大學開源軟件鏡像站 / 阿里云 / 網易 / 搜狐

一、理解開源軟件鏡像站 開源軟件鏡像是指開源軟件在遠程服務器上的備份副本,允許用戶通過互聯網快速下載和安裝所需的軟件。在國內,有多個知名的開源軟件鏡像站,為開發者提供穩定、快速的開源軟件下載服務。 二、常見開源軟件鏡像站 序號…

Oracle 數據庫中優化 INSERT INTO 操作的性能

在 Oracle 數據庫中優化 INSERT INTO 操作的性能,尤其是在處理大批量數據時,可以通過以下方法顯著提升效率。 使用直接路徑插入(Direct-Path Insert) 通過 APPEND 提示繞過緩沖區緩存,直接寫入數據文件,減…

嵌入式硬件篇---嘉立創PCB繪制

文章目錄 前言一、PCB繪制簡介1.1繪制步驟1.1.1前期準備1.1.2原理圖設計1.1.3原理圖轉PCB1.1.4PCB布局1.1.5布線1.1.6布線優化和絲印1.1.7制版 1.2原理1.2.1電氣連接原理1.2.2信號傳輸原理1.2.3電源和接地原理 1.3注意事項1.3.1元件封裝1.3.2布局規則1.3.3過孔設計1.3.4DRC檢查…

ideal自動生成類圖的方法

在 IntelliJ IDEA 中,“**在項目資源管理器中選擇以下類**” 是指通過 **項目資源管理器(Project Tool Window)** 找到并選中你需要生成類圖的類文件(如 .java 文件),然后通過右鍵菜單或快捷鍵操作生成類圖…

【零基礎入門unity游戲開發——2D篇】2D物理關節 —— Joint2D相關組件

考慮到每個人基礎可能不一樣,且并不是所有人都有同時做2D、3D開發的需求,所以我把 【零基礎入門unity游戲開發】 分為成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要講解C#的基礎語法,包括變量、數據類型、運算符、流程控制、面向對象等,適合沒有編程基礎的…

在Vue 3 + TypeScript + Vite 項目中安裝和使用 SCSS

在Vue 3 TypeScript Vite 項目中安裝和使用 SCSS 1、安裝 SCSS 的相關依賴 npm install sass --save-dev2、配置 Vite 對于 Vue 3,Vite 已經內置了對 SCSS 的支持,通常不需要額外的配置。但是,如果需要自定義配置,可以在路徑…

【滲透測試】Vulnhub靶機-FSoft Challenges VM: 1-詳細通關教程

下載地址:https://www.vulnhub.com/entry/fsoft-challenges-vm-1,402/ 目錄 前言 信息收集 目錄掃描 wpscan掃描 修改密碼 反彈shell 提權 思路總結 前言 開始前注意靶機簡介,當第一次開機時會報apache錯誤,所以要等一分鐘后重啟才…

Redis 6.2.6 生產環境單機配置詳解redis.conf

文章目錄 Redis 生產環境配置詳解配置文件示例基礎網絡與進程管理RDB 持久化配置復制(主從同步)設置內存管理AOF 持久化性能優化設置限制與監控其他參數完整配置總結 Redis 生產環境配置詳解 在實際生產環境中,為了保障 Redis 的穩定性和高性…

SpringBoot實戰:Excel文件上傳、數據驗證與存儲全流程解析

一、需求場景與技術選型 在企業管理、數據中臺等系統中,Excel文件處理是常見需求。本文將基于SpringBoot實現以下核心功能: 支持.xls/.xlsx文件上傳數據完整性驗證(非空、格式等)業務數據驗證(關聯數據庫校驗&#x…

使用Java爬蟲按關鍵字搜索淘寶商品?

在電商領域,通過關鍵字搜索商品是獲取商品信息的常見需求。Java爬蟲技術可以幫助我們自動化地獲取這些信息,提高工作效率。本文將詳細介紹如何使用Java爬蟲按關鍵字搜索淘寶商品,并提供完整的代碼示例。 一、準備工作 1. 注冊淘寶開放平臺賬…

【Git】5 個分區的切換方式及示例

目錄 1. **工作區(Working Directory)**2. **緩存區(Stage/Index)**3. **本地倉庫(Local Repository)**4. **遠程倉庫(Remote Repository)**5. **貯藏區(Stash&#xff0…

【計算機視覺】YOLO語義分割

一、語義分割簡介 1. 定義 語義分割(Semantic Segmentation)是計算機視覺中的一項任務,其目標是對圖像中的每一個像素賦予一個類別標簽。與目標檢測只給出目標的邊界框不同,語義分割能夠在像素級別上區分不同類別,從…

MATLAB之數據分析圖系列:從二維到三維(直接套用)

MATLAB以其強大的矩陣運算和可視化功能,成為科研、工程領域的標配工具。本文提供從基礎二維圖形到復雜三維模型的即用代碼塊,涵蓋數據標注、多圖排版、動態演示等核心技巧 所有代碼均經過MATLAB 2023a實測,替換數據即可生成專業級圖表。” …

HTTP響應數據包全面解析:結構、原理與最佳實踐

目錄 HTTP響應概述 HTTP響應數據包結構 2.1 狀態行 2.2 響應頭 2.3 空行 2.4 響應體 HTTP狀態碼詳解 3.1 1xx信息響應 3.2 2xx成功響應 3.3 3xx重定向 3.4 4xx客戶端錯誤 3.5 5xx服務器錯誤 常見HTTP響應頭字段 響應體內容類型 緩存控制機制 實際HTTP響應示例分…

H.264編碼解析與C++實現詳解

一、H.264編碼核心概念 1.1 分層編碼結構 H.264采用分層設計,包含視頻編碼層(VCL)和網絡抽象層(NAL)。VCL處理核心編碼任務,NAL負責封裝網絡傳輸數據。 1.2 NALU單元結構 // NAL單元頭部結構示例 struc…

快速入手-基于Django-rest-framework的自身組件權限認證(九)

1、在對應的視圖函數里增加認證(局部起作用,不全局生效) 導入類: from rest_framework.authentication import ( BasicAuthentication, SessionAuthentication, ) from rest_framework.permissions import IsAuthentica…

受控組件和非受控組件的區別

在 React 中,?受控組件(Controlled Components)? 和 ?非受控組件(Uncontrolled Components)? 是處理表單元素的兩種不同方式,它們的核心區別在于 ?數據管理的方式 和 ?與 React 的交互模式。 受控組件…

邁向云原生:理想汽車 OLAP 引擎變革之路

在如今數據驅動的時代,高效的分析引擎對企業至關重要。理想汽車作為智能電動汽車的領軍企業,面臨著海量數據分析的挑戰。本文將展開介紹理想汽車 OLAP 引擎從存算一體向云原生架構演進的變革歷程,以及在此過程中面臨的挑戰,以及是…

ZLMediaKit 源碼分析——[3] ZLToolKit 中EventPoller之網絡事件處理

系列文章目錄 第一篇 基于SRS 的 WebRTC 環境搭建 第二篇 基于SRS 實現RTSP接入與WebRTC播放 第三篇 centos下基于ZLMediaKit 的WebRTC 環境搭建 第四篇 WebRTC學習一:獲取音頻和視頻設備 第五篇 WebRTC學習二:WebRTC音視頻數據采集 第六篇 WebRTC學習三…