FFmpeg输入问题

FFmpeg输入问题,ffmpeg,exec,shell-exec,Ffmpeg,Exec,Shell Exec,我正在尝试重新调整一个不在PHP exec代码目录中的视频的大小,这是我的ffmpeg代码:但它也不起作用。我该怎么做才能解决这个问题呢?谢谢。总是用引号中的特殊字符括起路径更安全: ffmpeg.exe -i ../Gotten Movies/test.mp4 -s hd480 -c:v libx264 -crf 23 -c:a aac -strict -2 ../Gotten Movies/test2o.mp4 ffmpeg.exe -i "../Gotten Movies/test.mp4

我正在尝试重新调整一个不在PHP exec代码目录中的视频的大小,这是我的ffmpeg代码:但它也不起作用。我该怎么做才能解决这个问题呢?谢谢。

总是用引号中的特殊字符括起路径更安全:

ffmpeg.exe -i ../Gotten Movies/test.mp4 -s hd480 -c:v libx264 -crf 23 -c:a aac -strict -2 ../Gotten Movies/test2o.mp4
ffmpeg.exe -i "../Gotten Movies/test.mp4" -s hd480 -c:v libx264 -crf 23 -c:a aac -strict -2 "../Gotten Movies/test2o.mp4"
仅供参考: Windows对单引号和双引号的选择非常挑剔。 我在PHP中像这样输入我的文件(这会转义文件名和目录中的单词空间):

将它们分别传递给我的函数-然后执行以下操作:

$cmd = 'ffmpeg -i "'.$filePath.'"/"'.$fileName.'" 2>&1 | findstr Duration';
$data = exec($cmd, $output);

如果出现错误,$输出将包含带错误的完整响应-否则,$数据将给出我想要的项目(持续时间)

使用\而不是/显示
。\get:处理输入时发现无效数据现在:(感谢您的工作,现在将其作为答案:)
$filepath=$file->getPath();
$filepath=str_replace('\\',"/",$filepath);
$filename='abc.mpg';
$cmd = 'ffmpeg -i "'.$filePath.'"/"'.$fileName.'" 2>&1 | findstr Duration';
$data = exec($cmd, $output);