2010-06-30 2 views
3

저는 ffmpeg 명령을 사용하여 PHP에서 exec 함수로 비디오를 자릅니다. 그러나 비디오 파일을 만들지 않고 오류를 표시하지 않습니다. 아래에서 exec를 사용했습니다.exec 함수에서 명령의 오류를 어떻게 알 수 있습니까?

exec("ffmpeg -i input.flv -ss 00:00:30.0 -t 00:00:10.0 -acodec copy -vcodec copy -async 1 output.flv"); 

여기에서 발생한 오류를 알 수있는 도움을 얻을 수 있습니까?

exec("ffmpeg -i input.flv -ss 00:00:30.0 -t 00:00:10.0 -acodec copy -vcodec copy -async 1 output.flv",$output); 

시도해 보았습니다. 하지만 변수에 오류 메시지가 표시되지 않았습니다. $output

+0

매우 유사, 중복으로 투표 : http://stackoverflow.com/questions/2143006/php-execsvn-commit-is-not이 경우, 이전에 후자 단지 redirect에 안전 보인다 - 복귀 중 - 오류가 발생하지 않음 –

답변

5

일반적으로 반환 값을 확인해야합니다. 0이 아닌 값은 오류가 있음을 나타냅니다 (프로그램의 작성자가 지정한 경우). 실행은 표준을 준수합니다). 이 값은 exec()의 세 번째 인수에서 캡처됩니다.

두 번째로 많은 프로그램은 오류 메시지를 표준 출력으로 보내지 않습니다. 대신 표준 오류를 사용합니다.

exec("ffmpeg -i input.flv -ss 00:00:30.0 -t 00:00:10.0 -acodec copy -vcodec copy -async 1 output.flv 2>&1", $output, $return_value); 
관련 문제