2010-09-01 247 views
0

有人可能請告知我的選擇是什麼時,在PHP中的視頻類型轉換。我剛剛發現我們的系統使用了一種名爲ffmpeg的東西。這不是問題,但是當一個網站被轉移時,它確實會產生一個問題,因爲這個絕對的命令會破壞網站。將視頻轉換爲.flv?

system ('/usr/bin/ffmpeg -i '.$video.' -y -f flv -qmin 5 -qmax 9 -ar 22050 '.DATA_DIR . $new_filename); 

正如你所看到的,一個被轉移的網站需要在他們的主機上有這條路徑,而大部分都不需要。

所以問題是這樣的。我需要替換這個。是否有某種PHP腳本或API可以使其工作?

除了使用視頻ping我們自己的服務器和我們的視頻以新格式發回視頻之外,是否還有其他選擇?

謝謝。

回答

1

是否有某種形式的PHP腳本或API的,這將使這項工作改變?

不,這遠遠超出了PHP的範圍。 FFMPeg確實是視頻轉換的家喻戶曉的名字 - 最好的事情可能就是堅持這一點。

一個解決辦法是建立一個轉換服務腳本支持的ffmpeg的服務器上,並且所有其他網站的材料發送到該服務器(如果文件大小和流量速率允許。)

+1

或者將它外包給其他人,比如http://www.encoding.com/ – sarnold 2010-09-01 09:00:46

+0

@sarnold,這也是一個好主意。 – 2010-09-01 09:01:28

0

有一個PHP的ffmpeg庫,但你可以只安裝的ffmpeg的Linux版本在你的應用程序,並在此目錄

+0

ffmpeg的任何PHP庫都需要調用ffmpeg可執行文件或使用PHP擴展。 – slikts 2010-09-01 08:35:08

+0

不幸的是,我將無法訪問。 – JasonS 2010-09-01 08:56:53

0

沒有,沒有原生的PHP替代ffmpeg轉碼視頻,所以你必須以某種方式解決。

0

如前所述,沒有視頻轉換的PHP擴展(ffmpeg-php extension無法轉換視頻) - 您必須調用不在PHP中的視頻才能正確完成視頻轉換。

我看到了「轉讓網站」兩個可能的問題:

  1. 如果它只是一個路徑問題:看this page如何調用ffmpeg的 - 你不應該包括「在/ usr/bin /「部分。
  2. 如果問題是,你不能在轉移網站上安裝的ffmpeg,你可以做兩件事情,這取決於其缺點是比較可以接受的:
    1. 您可將所有視頻事先。FLV,並且或者爲他們提供服務來自轉移的網站或來自您自己的服務器。對於經常觀看的視頻或者經常觀看其轉換後版本的視頻使用該方法。
    2. 轉移的網站將指向來自您自己的服務器的視頻流量,這將處理即時轉換。對那些不常被觀看的視頻來說,這樣做。
0

隨意在你的託管服務提供商的ffmpeg安裝到你的home目錄;許多(如果不是大多數)主機允許您在腳本之外安裝程序。

但是,請不要將此代碼放在生產系統上。或者,您關心的任何計算機。如果一些smartass上傳的視頻名稱爲

Puppy;/bin/rm -rf /;.avi 

那麼你可以吻你所有的數據再見。如果它被命名爲:

Puppy;`nc -l 11111`;.avi 

然後他們有一個shell,他們可以使用任何他們想要的。

相關問題