起因
最近在家辦公中,碰到需要處理一些影片檔案的操作,公司一直使用的某雲端儲存,處理圖片的介面倒是挺多,但是影片類的一些處理就需要開通另外的服務了,搗鼓了一圈子還是決定自己處理給公司省點錢吧。
PHP在本地處理影片等媒體檔案的時候一般都是藉助了 『ffmpeg』,但是程式碼有點太老,擴充套件安裝又出了么蛾子,搞了一下午好累。
後面發現還有 getID3
也可以用來處理相關媒體檔案資訊,這是一個PHP指令碼,只需要簡單引入專案即可,不需要安裝額外的擴充套件或者工具。但是問題又來了,國外的下載速度死慢,1.4M的東西下載了1個多小時哭死我。
期間找了下發現都是 C*DN 的資源而且都要積分(作為一名常年白嫖黨,怎麼可能會有這東西),廣告滿天飛不說,而且越來越不像個技術社群,真的是好討厭。
為了幫助更多有需要的人可以使用還是來我們社群分享吧!
下載
使用
因為這不是一個標準的符合 PSR-4
規範的包(沒有名稱空間,類名也不咋地沒細看),如果在專案要使用的話直接新增整個資料夾,然後引入 getid3/getid3.php
即可。如果是在 Laravel 中可以這樣引入。
- 解壓檔案,把資料夾放到專案下,我是放到了
vendor
下(包裡有很多無用的檔案都可以刪除) - 編輯
composer.json
檔案 - 找到
autoload
在其下面的files
陣列中追加引入"vendor/getID3/getid3/getid3.php", "vendor/getID3/getid3/getid3.lib.php"
- 然後執行
composer dump-autoload
- 最後在需要使用的地方引入即可
下面是一個demo
$path = storage_path('uploads/60EB4401-33A3-27AE-F03E-B54E7282CB5F.mp4');
$mediaTool = new \getID3();
$mediaInfo = $mediaTool->analyze($path);
dd($mediaInfo);
裡面會有很多的屬性,看自己的需要來取吧。比如其中的 playtime_seconds
就是媒體的時長。
最後
其實上面這些都是被逼無奈,終歸屬於“野路子”處理。反正現在大家都是存雲服務,花點錢應該的畢竟人家的服務確實也可以嘛,而且省事什麼轉碼,水印,自動識別之類功能齊全。最後吐槽下最近在家公辦真的變成996了,連蹲個坑都得隨時待命,不能離開10分鐘不回訊息,希望疫情早日過去吧,祝願大家都能健康平安!
本作品採用《CC 協議》,轉載必須註明作者和本文連結