【问题标题】:FFMPEG PHP - Converting gif to mpegFFMPEG PHP - 将 gif 转换为 mpeg
【发布时间】:2014-10-09 12:26:07
【问题描述】:

我想创建一个使用 FFMPEG PHP 将 gif 转换为 mpeg 的简单脚本。该脚本在终端中使用 FFMPEG 时有效。当我使用 FFMEG PHP 的类似脚本并将其托管在我的域上时,该脚本将 gif 转换为 mpeg,但仅转换其中的一帧。这很奇怪,因为负责转换的 FFMPEG 代码行本质上与之前在终端中使用的代码行相同。我已经确保我的网络主机(cirtex)在他们的服务器中安装了 FFMPEG。此外,我确保编辑我的 php.ini 文件以供 FFMPEG 使用。

我创建的脚本由两部分组成 - uploader.php 和 uploader_02.php。

uploader.php 是一个简单的提交表单,用户上传并提交一个 gif。

uploader_02.php 接收 gif 并将其复制到服务器上的另一个目录。然后,该脚本将 FFMPEG 转换应用于保存的 gif。

这是负责转换的 php 行:

<?php
// ffmpeg
$ffmpeg = "/usr/bin/ffmpeg";
$videoFile = "test_videos/" . $name;
$output = "test_videos/instagram.mpg";
$cmd = "$ffmpeg -i $videoFile -vb 5M -y $output";
exec($cmd);   
?>

由于某种原因,只有一帧 gif 被转换为 mpeg 格式。不知道是什么导致了这个问题。

有关此问题的任何信息都会有很大帮助。

【问题讨论】:

    标签: php ffmpeg gif file-conversion mpeg


    【解决方案1】:

    根据网上人们的说法,完成此任务的最佳方法是使用 imagemagic 将 gif 转换为一系列图像,然后使用 FFMPEG 将其重新组合在一起

    exec('convert test.gif test%05d.jpg');
    exec('ffmpeg -r 5 -i test%05d.jpg -y -an test.mpg');
    

    这是与此问题相关的另一个问题Animated gif to avi on linux

    不过,我可以看到帧之间的时间问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-20
      • 2012-06-06
      • 1970-01-01
      • 2014-12-16
      • 2016-09-30
      • 2014-06-01
      • 2013-06-05
      • 2016-04-18
      相关资源
      最近更新 更多