首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP exec()和反斜杠\

PHP exec()和反斜杠\
EN

Stack Overflow用户
提问于 2015-03-17 22:36:18
回答 1查看 1K关注 0票数 1

我试图在exec上运行以下命令:

代码语言:javascript
复制
ffmpeg -y -i video.mp4 \
 -ss 1067 -i video.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -t 32 tmp/cuts/6.ts \
 -ss 1215 -i video.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -t 32 tmp/cuts/7.ts

如果我复制这个命令并在shell上运行它

但是,运行低谷php,ffmpeg将返回以下错误:

代码语言:javascript
复制
[NULL @ 052a0060] Unable to find a suitable output format for '\'
\: Invalid argument

即使我像这样复制粘贴命令:

代码语言:javascript
复制
<?php
    $command = 'ffmpeg -y -i video.mp4 \
         -ss 1067 -i video.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -t 32 tmp/cuts/6.ts \
         -ss 1215 -i video.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -t 32 tmp/cuts/7.ts';

    echo $command.chr(10);

    $return = 0;
    $output = array();
    exec($command, $output, $return);

 ?>

我是不是遗漏了什么?我试过逃逸越狱,甚至双反斜杠来逃避反斜杠,什么都没有。

这在windows和Unix中都会发生,错误完全相同。

知道这是怎么回事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-17 22:47:54

在本例中,shell脚本中的反斜杠()仅用于使其忽略换行(参考文献)

因此,尝试在单行中运行不带反斜杠的命令:

代码语言:javascript
复制
<?php
    $command = 'ffmpeg -y -i video.mp4 -ss 1067 -i video.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -t 32 tmp/cuts/6.ts -ss 1215 -i video.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -t 32 tmp/cuts/7.ts';
    (...)
?>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29111014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档