2016-02-02 117 views
0

我一直在搜索互聯網3天以上,找不到任何有關如何安裝ffmpeg for php的清晰解釋。我目前在我的Mac命令行上正確安裝了ffmpeg,但是如何在我的php腳本中使用它卻超出了我的想象。我如何安裝ffmpeg for php?任何幫助都會很棒。謝謝。爲php安裝ffmpeg

+0

你可以使用'exec'或'shell_exec'或者你可以使用像https://github.com/PHP-FFMpeg/PHP-FFMpeg – cmorrissey

+0

這樣的庫我嘗試過'exec()'但它沒有工作。這是由MAMP造成的限制嗎? –

回答

0

ffmpeg是一組可執行程序,不是API。有一個我在過去知道的建立php擴展的項目,但它並不健壯,並且由於多種原因從未真正成爲可行的,其中最重要的是ffmpeg有許多不同的選項和構建。

幾年前,我的任務是爲社交網絡創業建立一個音頻和視頻編碼系統,利用PHP作爲中間件,所以我已經完成了這個確切的練習。

其中一個最具挑戰性的方面是與我們想要的所有編碼器一起使用ffmpeg的工作編譯版本。在我們的案例中,我們的託管環境是AWS,並且我們使用的是亞馬遜Linux服務器,因此一路上出現了一些小問題,我不得不追趕補丁。有可用的軟件包有ffmpeg,但它們絕望過時並缺少我們需要的關鍵功能。讓事情順利進行的唯一方法是獲取ffmpeg源代碼並編譯它,以及我們使用的各種編解碼器的源代碼,主要是爲了獲得mpeg4視頻和兼容音頻。如果你不習慣這樣做,你可能無法讓事情順利進行。

關於PHP的一面,我最終使用了上面評論中提到的PHP-FFMpeg庫,但是我做了fork並且做了很多定製,這些定製對我們很有用,但是沒有真正的可靠性上游。隨後,圖書館的維護人員已經解決了我所遇到的許多問題,現在它是一個更強大的圖書館,如果您要嘗試創建自己的包裝,應該可以爲您節省很多問題。

綜上所述服務器需要:

  • 的工作編譯的ffmpeg和這可能是需要根據你要什麼版本的相關輔助性
    方案是
    與媒體你正在做的生產。例如,有一個單獨的媒體自省程序(ffprobe),用於確定要編碼的媒體的特徵。
  • 兼容PSR-0/Composer的項目。我們建立在Symfony 2.x之上,但這不是必需的。我確實想提到它,因爲該項目真的推動了symfony組件的改進和穩定性,它將php'exec'函數包裝爲調用外部程序的核心。

按照說明並通讀API,您應該能夠獲得一個示例編碼以使用PHP,但請記住ffmpeg可以處理文件,並且您必須考慮很多與文件相關的問題通過(原始文件,渲染文件和命名,臨時文件位置),除非你做了一些微不足道的事情,否則你將不得不處理所有這些事情。在我們的例子中,這些程序是異步的命令行/批處理方式,需要花費大量的時間和精力來設法擴展和執行。毋庸置疑,編碼視頻需要花費很長時間,而且您不希望在單個php腳本中執行這些操作,最終用戶需要上傳,然後等待您在同一個腳本中完成所有處理。

我知道你正試圖在你的Mac上做到這一點。這真的是您的生產部署的目標環境嗎?這是一個挑剔和平臺依賴足夠的過程,我認爲這是不明智的嘗試在Mac上得到一個hacky版本,因爲獲取ffmpeg的過程,確切的版本和組件是高度可變的,對您的成功。