我如何在yii中使用ffmpeg

时间:2011-04-19 10:38:04

标签: video ffmpeg wamp yii thumbnails

我想制作视频缩略图并将视频转换为flv或mp4。 我使用的是windows7 64bit,wamp,yii 1.1.7

我希望在上传文件时制作缩略图并将其存储在拇指目录中以便以后使用

任何帮助,建议或替代

2 个答案:

答案 0 :(得分:0)

我和yii和LAMP做过类似的事情。我使用Yii uploadify扩展来上传文件。上传完成后,我将文件移动到控制器中的所需位置。 PHP控制器执行ffmpeg进程以查找文件的持续时间。然后使用ffmpeg命令从持续时间的中间生成缩略图。最后,我使用segmenter和ffmpeg命令创建ts分段流以支持iOS流。所有这些都可以自动化。

答案 1 :(得分: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;
  }