我尝试在php中执行此操作:
$cmd = 'ffmpeg.exe -rtbufsize 1500M -f dshow -i video="Microsoft® LifeCam Studio(TM)" full-video.webm';
$shell = new \COM("WScript.Shell");
$shell->Run($cmd, 0, false);
如果我在命令行(cmd)中运行命令它正在运行,但是从php无效。如果我尝试回显命令,结果是:
ffmpeg.exe -rtbufsize 1500M -f dshow -i video="Microsoft® LifeCam Studio(TM)" full-video.webm
我认为是关于字符串enconding的事情,但我不知道。
答案 0 :(得分:0)
听起来你真的想在这里使用exec:http://php.net/manual/en/function.exec.php
输出的差异是因为你输入的是utf-8字符,而不是告诉你的浏览器你希望它在输出时被解释为utf-8。
答案 1 :(得分:0)
我需要使用此命令使shell了解UTF-8。
chcp 65001
为了使这个永久化,我需要做以下事情:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command
Processor\Autorun
] chcp 65001
https://superuser.com/questions/269818/change-default-code-page-of-windows-console-to-utf-8
$shell = new \COM("WScript.Shell");
$shell->Run(utf8_decode($cmd), 0, false);