這篇文章主要介紹了用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中文網其他相關文章!