【问题标题】:how can i use ffmpeg in yii我如何在 yii 中使用 ffmpeg
【发布时间】:2011-08-08 13:49:42
【问题描述】:

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

我想在文件上传时制作缩略图并将它们存储在缩略图目录中以供以后使用

任何帮助、建议或替代方案

【问题讨论】:

  • 您已经尝试过哪些不起作用的方法?

标签: video ffmpeg wamp yii thumbnails


【解决方案1】:

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

【讨论】:

  • 我从朋友那里得到了 ffmpeg 的编译版本,我用控制器执行了 ffmpeg 命令并得到了缩略图,谢谢
  • tommy,你有它的演示吗?
【解决方案2】:

运行 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;
  }

【讨论】:

  • 很棒的代码!但是... 似乎 Yii 无法找到或评估 CEnvConfig。我也无法在文档中找到它。最近有变化吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多