1. 程式人生 > >windows下ThinkPhP5使用ffmpeg處理視訊檔案(php5.6)

windows下ThinkPhP5使用ffmpeg處理視訊檔案(php5.6)

此方案本質上就是php呼叫了另一個程式去處理視訊檔案。
1、準備
(1)tp環境
(2)ffmpge檔案
(3)我使用的是php版本是5.6
(4)伺服器環境是windows
(5)apache版本為2.4.x
2、誤區或者說我沒搞懂的,大家少走彎路,不需要php_ffmpeg.dll這個檔案,不需要這個檔案。這個很重要。我看到網上好多教程需要這個檔案,導致我花了12個小時在找這個,昨晚搞到2點,今天到這個點才弄明白。
3、具體操作方案
(1)首先你需要下載ffmpeg檔案:官網地址:https://ffmpeg.zeranoe.com/builds/
我使用的是官網的這個版本:https://download.csdn.net/download/u010481239/10763668


下載完檔案後解壓得到如圖檔案:
在這裡插入圖片描述
(2)thinkphp的vendor目錄下新建個資料夾,名字要英文,我起的是FFmpge。
在這裡插入圖片描述
把上面的檔案全部丟進這個新建的資料夾。
(3)配置環境變數
在這裡插入圖片描述
把剛才新建的那個目錄配置到環境變數裡面。
4、程式碼

        $name = '777.png';//圖片名字
        $from = "C:\\666.mp4";//檔案存放路徑
        $to = "C:\\";//生成圖片存放路徑
        $str = "ffmpeg -i " . $from . " -y -f mjpeg -ss 3 -t 1 -s 740x500 " . $to .
$name;//ffmpeg命令,具體啥意思可以百度 exec($str, $output);//執行上述語句

放在你的某個控制器裡面去訪問試試吧。
重點來了。exec這個執行沒有任何反應。
檢視apache日誌
發現問題為許可權不足啊好像是。在這裡插入圖片描述
網上說什麼許可權問題啊,亂七八糟的問題啊。具體解決方案請百度。
我嘗試了一種解決方案,把剛才解壓的檔案bin資料夾下面的ffmpeg.exe放一個到web目錄。試試吧。
這樣就可以處理視訊檔案按照幀數生成截圖了。