터미널에서 ffmpeg 명령을 실행하면 원하는 결과가 나타납니다.
ffmpeg -i src.mp4 -ar 22050 -ab 32 -f flv -s 320x240 video.flv
터미널의 출력
... 비디오 : 3404kB 오디오 : 1038kB 글로벌 헤더 : 0kB 멀티플렉싱 오버 헤드 2.966904 %
그리고 video.flv가 올바르게 생성됩니다 .
그런 다음 PHP exec를 통해 호출되는 경우 :
exec("ffmpeg -i src.mp4 -ar 22050 -ab 32 -f flv -s 320x240 video.flv", $o, $v);
var_dump($o);
var_dump($v);
출력은 다음과 같습니다
배열 (0) {} int (1)
그리고 파일이 생성되지 않습니다 .
이것에 접근하는 방법에 대한 생각이 있습니까?
나는 exec('whoami')
아무 문제없이 할 수 있습니다.
ffmpeg 전체 경로도 사용했습니다. /usr/local/bin/ffmpeg
FFmpeg는 매우 이상한 출력을 생성합니다. 모든 AFAIK를 가져 오려면 stdout과 stderr을 모두 리디렉션해야합니다.
—
slhck
원하는 flv 파일을 만들지 못하므로 뭔가 def입니다. 작동 안함. 이 시점에서
—
확실히
output
stderr가 아닌 in stdout 만 캡처합니다 .