0

我在本地 xamp 中使用 FFmpeg,它工作正常。但是在我的服务器(安装了 FFmpeg)exec上不起作用,并且 FFmpeg 不会创建输出文件。

这是我的代码:

<?php

extension_loaded('ffmpeg') or die('Error in loading ffmpeg');

$vid = realpath('test.mp4');

$ffmpegInstance = new ffmpeg_movie($vid);
echo "getDuration: " . $ffmpegInstance->getDuration() . "<br />".
"getFrameCount: " . $ffmpegInstance->getFrameCount() . "<br />".

$cmd = "ffmpeg -i $vid -s 640x360 -vcodec libx264 -preset medium -crf 23 -acodec libmp3lame -ar 44100 -q:a 5 out.flv  1> block.txt 2>&1";

//$cmd = "ffmpeg -i $vid -vcodec libvpx -cpu-used -5 -deadline realtime out.mp4 1> block.txt 2>&1";

exec($cmd);
?>
4

1 回答 1

0

我不确定你为什么要加载扩展 ffmpeg 但调用 shell 来运行 ffmpeg。如果您想在 php 中调用 ffmpeg 或使用 exec/shell,您可能会混淆。

你可以先做一个echo system('which ffmpeg');验证 ffmpeg 可以在服务器上找到吗?也以类似的方式检查 ffmpeg 的版本。请使用systemandexec命令的输出和返回值来看看真正的问题是什么。有关详细信息,请参阅exec()system()

于 2015-04-11T13:32:15.353 回答