PHP - 使用 ffmpeg 将图像转换为视频

标签 php video ffmpeg

我擅长 php,但对 ffmpeg 和 exec 东西很陌生。现在我已经通过 ssh 成功安装了 ffmpeg。我提到了一些 stackoverflow here并在下面找到使用多个图像制作视频的代码。

<?php

echo exec('ffmpeg -f image2 -i image%d.jpg video.mpg');

?>

我在同一个文件夹中有 image1.jpg 和 image2.jpg。我运行了这个 php 代码,但什么也没发生...... video.mpg 保存在哪里?以及如何检查 exec 函数是否成功运行或如何调试它?任何帮助表示赞赏。

最佳答案

如果成功运行,video.mpg 将保存在您当前的工作目录中。如果需要,您可以将文件名更改为绝对路径。

检查是否 exec()函数运行成功,您可以传递第三个参数来获取退出状态:

exec('ffmpeg -f image2 -i image%d.jpg video.mpg', $output, $exit_status);

如果成功,$exit_status将得到 0值,所以:
if ($exit_status === 0) {
    // ran fine
} else {
    // failed...
}

如果它失败了,你可能想在 $output 上得到错误。 .您可以移动STDERRSTDOUT无视原文STDOUT这边走:
exec('ffmpeg -f image2 -i image%d.jpg video.mpg 2>&1 >/dev/null', $output, $exit_status);

然后你可以转储 $output看看你得到了什么STDERR :
if ($exit_status !== 0) {
    print implode("\n", $output);
}

如果 video.mpg 文件已经存在,命令会卡住,你可能想通过 -y标记为 ffmpeg覆盖任何现有文件:
exec('ffmpeg -y -f image2 -i image%d.jpg video.mpg 2>&1 >/dev/null', $output, $exit_status);

关于PHP - 使用 ffmpeg 将图像转换为视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19864706/

相关文章:

ffmpeg,转换为flv : how to get better quality?

使用 LIBAVCODEC 将原始图像缓冲区转换为 JPEG

java - 译者: pseudo-code to a concrete language (PHP, JAVA)库建议

javascript - SVG - 全局属性和事件列表?

video - DirectShow 中的负演示时间

iphone - 单击 html5 视频元素顶部在 iPhone 上的 Safari 中不起作用

php - 电子邮件中的 HTML 表格

php - 将 https 与 elasticsearch-php 客户端一起使用

javascript - Iframe 嵌入式 Youtube 视频事件跟踪 - Ensighten 标签管理器

ffmpeg - 如果输入失败,保持 FFMPEG 处理