2011-04-19 42 views
1

我想製作視頻縮略圖並將視頻轉換爲flv或mp4。 即時通訊使用的Windows7 64位,WAMP,警予1.1.7如何在yii中使用ffmpeg

我要讓縮略圖當文件被上傳並存儲在拇指DIR使用後

任何幫助,建議或替代

+0

你有什麼已經嘗試過,是行不通的? – random 2011-04-19 21:00:25

回答

0

我已經做了類似的yii和LAMP。我使用Yii uploadify擴展來上傳文件。上傳完成後,我將文件移動到控制器中的所需位置。 PHP控制器執行一個ffmpeg進程來查找文件的持續時間。然後它使用ffmpeg命令從持續時間的中間生成縮略圖。最後,我使用segmenter和ffmpeg命令創建ts分段流,以支持iOS流媒體。所有這些都可以自動化。

+0

我已經從朋友那裏得到了ffmpeg的編譯版本,並且我使用了控制器來執行ffmpeg命令並獲得了縮略圖,謝謝 – SAN 2011-04-22 05:39:06

+0

tommy,你有一些它的演示。 – 2015-01-13 12:32:41

0

這是一個最低運行ffmpeg的命令:

public function execFFmpegCommand($command) 
    { 
    $sCommand = CEnvConfig::$FFmpegPath." ".$command; 
    $buffer = CCommon::runExternal($sCommand); 

    return $buffer; 
    } 



    public static function runExternal($cmd) 
    { 
    $cmd = "{$cmd} 2>&1"; 
    exec($cmd, $buffer); 
    $buffer = implode("\r\n", $buffer); 

    return $buffer; 
    } 

要想從視頻劇照(縮略圖),你需要使用FFMPlayer:

  $sCommand = $videoFileURI." -ss ".$pointerTimeCode." -frames ".$frames." -vo jpeg:quality=100:optimize=0:smooth=0:noprogressive:nobaseline"; 

or 

      $sCommand = $videoFileURI." -ss ".$pointerTimeCode." -frames ".$frames." -vo png:z=0"; 

    public function execMPlayerCommand($command) 
    { 
    $sCommand = CEnvConfig::$MPlayerPath." -nosound ".$command; 
    $buffer = CCommon::runExternal($sCommand); 

    return $buffer; 
    } 
+1

偉大的代碼!但是......看起來像Yii無法找到或評估CEnvConfig。我也不能在文檔中找到它。最近有沒有變化? – m0rtimer 2011-09-10 17:32:56