这是我在本地系统中运行的代码,运行正常。
<?php
$ffmpeg = "C:\\ffmpeg\\bin\\ffmpeg";
//$ffmpeg = "/home1/doitteco/public_html/bishal/ffmpeg/bin/ffmpeg";
echo $ffmpeg."<br>";
$videoFile = "C:\\xampp\\htdocs\\Wildlife.wmv";
$audioFile = "convert2Mp3.mp3";
$cmd = "$ffmpeg -i $videoFile $audioFile";
echo $cmd."<br>";
if (!shell_exec($cmd)) {
echo "success";
} else {
echo "fail";
}
?>
以下代码适用于服务器:
<?php
//$ffmpeg = "C:\\ffmpeg\\bin\\ffmpeg";
$ffmpeg = "/home1/doitteco/public_html/bishal/ffmpeg/bin/ffmpeg";
echo $ffmpeg."<br>";
$videoFile = "/home1/doitteco/public_html/bishal/small.mp4";
$audioFile = "convertMp3.mp3";
$cmd = "$ffmpeg -i $videoFile $audioFile";
echo $cmd;
if (!shell_exec($cmd)) {
echo "<br>"."success";
} else {
echo "fail";
}
?>
我没有收到任何错误,但代码无效。它没有从视频文件中提取音频。
答案 0 :(得分:-1)
有时出于安全原因,您的托管服务器已禁用exec_shell
命令,因此有时可能会在C面板中检查您的PHP配置设置。如果仍然无法执行此操作,请尝试更改URL图像文件使用相对路径,并用引号引起来。例如:
$ffmpeg="path/to/your/ffmpeg.exe";
$video="path/to/video.mp4";
$audio="path/to/audio.mp3";
$cmd="$ffmpeg -i \"$video\" \"$audio\"";
如果您仍然无法使用ffmpeg,则可能是因为您的托管公司不允许您使用的托管类型,为此您需要将托管类型从共享托管升级到VPS或专用托管