2014-10-30 146 views
0

我不能得到())这个命令在EXEC工作ffmpeg的命令()

ffmpeg -i ../uploads/".$row['videoid'].".".$row['van']." -filter_complex \ 
"[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[vid]" -map "[vid]" -map 0:a \ 
-codec:v libx264 -crf 18 -preset fast -codec:a aac -strict -2 -b:a 192k ../uploads/mp4sd/".$row['videoid'].".mp4 

我如何把这个在EXEC(?

这不是工作:

exec(ffmpeg -i ../uploads/".$row['videoid'].".".$row['van']." -filter_complex \ 
"[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[vid]" -map "[vid]" -map 0:a \ 
-codec:v libx264 -crf 18 -preset fast -codec:a aac -strict -2 -b:a 192k ../uploads/mp4sd/".$row['videoid'].".mp4); 

enter image description here

+0

尝试这样做在命令提示符下工作的这个命令? – Developer 2014-10-30 11:50:36

+0

@Developer是的,它的工作原理 – Kevinkuijer 2014-10-30 11:55:52

+0

你是否检查exec是否启用 – Developer 2014-10-30 11:58:27

回答

2

有几个办法,找出问题。

  1. 首先通过直接在命令提示符下运行来检查命令及其参数是否正确。

如果它在运行上命令细提示它应该工作CLI

  • 如果安装和启用EXEC()命令其次检查。

    <?php 
    if(function_exists('exec')) { 
        echo "exec is installed"; 
    } 
    ?> 
    
  • <?php 
    function exec_enabled() { 
        $disabled = explode(',', ini_get('disable_functions')); 
        return !in_array('exec', $disabled); 
    } 
    ?> 
    
  • 如果已启用和安装。第三,你可以在网页中回显命令并复制并通过它以确保所有参数在网络中正确传递。
  • echo "ffmpeg -i ../uploads/".$row['videoid'].".".$row['van']." -filter_complex \ 
    "[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[vid]" -map "[vid]" -map 0:a \ 
    -codec:v libx264 -crf 18 -preset fast -codec:a aac -strict -2 -b:a 192k ../uploads/mp4sd/".$row['videoid'].".mp4"; 
    

    也与报价

    exec("ffmpeg -i ../uploads/".$row['videoid'].".".$row['van']." -filter_complex \ 
    "[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[vid]" -map "[vid]" -map 0:a \ 
    -codec:v libx264 -crf 18 -preset fast -codec:a aac -strict -2 -b:a 192k ../uploads/mp4sd/".$row['videoid'].".mp4"); 
    
    +1

    随着报价它的工作谢谢! – Kevinkuijer 2014-10-30 12:24:09