首頁  >  文章  >  後端開發  >  用 php 實作分析 mp4 影片檔的格式

用 php 實作分析 mp4 影片檔的格式

不言
不言原創
2018-04-20 11:24:072716瀏覽

這篇文章主要介紹了用php 實作分析mp4 影片檔的格式,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

最近工作中,在做小程式第三方開發時,遇到小程式video元件的問題,開發回饋由於video元件的層級太高,總在浮在最前面滾動時會擋住後面的元素,

於是開發說要改動一下方案,在原來的列表頁面放一張視頻的截圖,讓用記點擊這個截圖後跳到一個新的頁面觀看視頻,那個頁面只有一個video元件就不會因為它層級太高而導致其他問題。

這個新方案可行,但開發做完後,發現在蘋果上拍攝的影片是旋轉的,在截出來的圖片也是旋轉的(用的是阿里雲的OSS視訊截圖功能)。如下圖所示


這就帶來一個一新問題,前端開發需要知道這個影片旋轉了多少度,再反向把圖片旋轉同樣的度數,這樣用戶看到的效果就是不旋轉。

這就需要後端介面收到上傳過來的影片時,分析這個影片旋轉度數並存到DB。


現在的問題是,這個歷史遺留的業務系統是用PHP5.5開發,而且是當時的技術leader用源碼編譯安裝,but php-ffmpeg 插件在太舊沒有維護了,在php5.5上編譯有太多問題。

於是就有了用php分析 蘋果手機拍攝出來的 mp4 影片檔案格式的需求。



實作原理是,分析mp4 video trak box 的頭部tkhd 中的視訊變換矩陣,透過影片換矩陣判斷旋轉了多少度,如下圖。

#########



#mp4檔案格式的基本單位是atom(或稱為box),mp4 的檔案格式結構在這裡不貼了,可以網路搜尋。

實現後的效果如下:


測試結果,比較上上圖中的那個手機旋轉範例:


#https://gitee.com/clwu/IphoneMp4Probe

以上是用 php 實作分析 mp4 影片檔的格式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn