2015-01-16 3 views
0

확장명이 .mov 인 비디오를 .mp4 형식으로 변환하려고합니다. 다음은 사용하려고하는 명령입니다..mov를 .mp4로 변환 할 때의 문제

$file_name = "abc.mov"; 

$mp4_file = "abc.mp4"; 

$cmd = 'sudo /usr/bin/ffmpeg -i /path_to_file' . $file_name . ' -strict experimental -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -preset slower -crf 18 -vf "scale=trunc(in_w/2)*2:trunc(in_h/2)*2" /destination_path/' . $mp4_file; 
exec($cmd, $out, $res); 

그러나 원하는 파일 (.mp4 포함)은 생성되지 않습니다. 명령을 복사하여 터미널에 붙여 넣으면 원하는 형식의 파일이 만들어집니다. 그러나 동일한 내 PHP 코드에서 exec 명령으로 작동하지 않습니다.

이상한 것으로 보였으므로 실제 문제의 원인을 파악할 수 없습니다. 어떤 도움도 인정 될 것입니다. 사전에 감사 나를 위해

+0

오류 메시지에 대해'exec()'s 반환 값을 확인 했습니까? – Sirko

+0

명령을'exec'하려고하는'user'는'sudo' 명령을 사용할 권한이 없습니다. –

+0

심지어 sudo 명령을 사용하지 않으면 여전히 작동하지 않습니다. 또한 exec 명령은 아무 것도 반환하지 않습니다. – Inventillect

답변

-1

사용이 코드는 그 일의 :

ffmpeg -i input.mov -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -preset slow -crf 22 -movflags +faststart output.mp4 

가 당신을 도와 바랍니다.

+0

코드가 없습니다. 이것은 ffmpeg의 명령 행 호출입니다. ffmpeg는 OP에서 말했듯이 그를 위해 작동합니다. PHP에서 exec를 호출하여 원하는 결과를 얻지 못합니다. – SirDarius

+0

exec() 대신 system()을 사용할 수 있습니다. –

+0

시스템이 외부 프로그램을 실행하고 출력을 표시합니다 ... 이것은 exec와 실제로 같지 않습니다. ffmpeg의 출력을 사용자에게 표시하는 것은 종종 바람직하지 않습니다. – SirDarius

0

exec 끝에 '2 &> 1'을 입력 해보십시오.

관련 문제