ffmpeg无法在Web托管服务器上运行

时间:2016-09-15 10:32:21

标签: php ffmpeg

这是我在本地系统中运行的代码,运行正常。

<?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";
    }

?>

我没有收到任何错误,但代码无效。它没有从视频文件中提取音频。

1 个答案:

答案 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或专用托管