【问题标题】:What is the better way to create thumbnails from video in PHP?在 PHP 中从视频创建缩略图的更好方法是什么?
【发布时间】:2010-11-30 23:41:35
【问题描述】:

我正在创建一个视频广播网站,我需要知道如何从视频中创建缩略图。请帮忙。任何建议或参考将不胜感激

【问题讨论】:

    标签: php image video thumbnails


    【解决方案1】:

    这是一个从视频中间抓取帧的 sn-p。这是我周围的旧代码,所以我确信它可以被简化。请务必调整第 1 行中的 ffmpeg 路径以匹配您的安装位置。

    $output = shell_exec("/usr/local/bin/ffmpeg -i {$path}");
    preg_match('/Duration: ([0-9]{2}):([0-9]{2}):([^ ,])+/', $output, $matches);
    $time = str_replace("Duration: ", "", $matches[0]);
    $time_breakdown = explode(":", $time);
    $total_seconds = round(($time_breakdown[0]*60*60) + ($time_breakdown[1]*60) + $time_breakdown[2]);
    shell_exec("/usr/local/bin/ffmpeg -y  -i {$input_filepath} -f mjpeg -vframes 1 -ss " . ($total_seconds / 2) . " -s {$w}x{$h} {$output_filepath}";
    

    【讨论】:

      【解决方案2】:

      您可以使用ffmpeg

      一旦它安装在您的服务器上,您就可以通过编写命令行并在其上调用exec 在PHP 中使用它。

      例如:

      exec('ffmpeg -i mymovie.mov -vcodec mjpeg -vframes 1 -an -f rawvideo -s 64x64 foo.jpg');
      

      【讨论】:

        【解决方案3】:

        我知道这个问题很老了。但是当我在寻找类似的解决方案时遇到了它。这是我的发现。我希望它可以帮助别人。

        【讨论】:

          【解决方案4】:

          我使用了 ffmpeg,使用 exec() 启动任务,并在命令中附加一个 & 符号,以便 php 脚本可以继续。如果我想让 ffmpeg 先完成,我没有 & 符号。

          来自常见问题解答:“如何将电影编码为单张图片?” http://ffmpeg.org/faq.html#SEC15

          ffmpeg -i movie.mpg movie%d.jpg
          

          这会生成许多图像。

          来自文档:“视频和音频文件格式转换”http://ffmpeg.org/ffmpeg-doc.html#SEC5

          ffmpeg -i foo.avi -r 1 -s WxH -f image2 -vframes 1 foo.jpeg
          

          将 W & H 替换为宽度/高度(请参阅 http://ffmpeg.org/ffmpeg-doc.html#SEC9 ),将 vframes 替换为所需的帧数,如果您正在制作多个图像,请在文件名中添加 %d 以获取序列号。要抓取视频中的某个点,请使用 -ss(请参阅http://ffmpeg.org/ffmpeg-doc.html#SEC8

          【讨论】:

          • 如何安装ffmpeg?请帮助
          • @Rajasekar:你使用的是什么操作系统?谷歌要么“安装 ffmpeg windows/osx/linux”,具体取决于你使用的是什么。
          • 我需要它用于 php。要安装 ffmpeg,他们要求编辑 php.ini 文件。我在我的本地系统中工作。我想知道托管时会出现什么问题?主机是否允许我们编辑 php.ini??。或者我们必须使用任何特殊类型的托管???@Derek Gathright
          • 取决于托管服务提供商 - 如果您支付的费用不高,不要指望被允许安装软件或更改 php.ini。
          • 我已经为您编辑了您的帖子以启用链接。希望这会有所帮助:-)
          猜你喜欢
          • 2012-06-05
          • 2021-04-24
          • 2011-04-24
          • 2014-02-06
          • 1970-01-01
          • 2018-05-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多