2017-11-29 20 views
2

10 분마다 스크립트를 실행하기 위해 cron 작업을 추가 한 후 스크립트는 새 파일이 디렉토리에 업로드되었는지 확인하고 새 파일이 있으면 비디오 파일을 변환합니다 내가 명령에 준 같은 작은 크기 .. 아래 매 10 분마다 파일 변환 cronjob

내가 시도했던 코드에 모든 것이 나뿐만 아니라 이메일 기능을 추가하려고 노력하고 그것은 작동하지만,는 FFmpeg 명령

$last = (int)file_get_contents('timestamp.txt'); 
file_put_contents('timestamp.txt', time()); 
$files = glob('videos/*.mp4'); 
$files = array_filter($files, function($file) { 
    return filemtime($file) > $last; 
}); 

if ($files) { 
    foreach ($files as $sfile) { 
     $sfile = str_replace('videos/', '', $sfile); 
     $video = 'videos/'.escapeshellcmd($sfile); 
     $sixty = "videos/250/".escapeshellcmd($sfile); 
     $cmdform = "ffmpeg -i $video -vf scale=250:140 $sixty"; 
     $do = `$cmdform`; 
    } 
} 
을 실행하지

한가지 더 말하면 "videos/1.mp4"처럼 정적 이름을 가진 파일을 변환하지만 foreach 루프에서는 작동하지 않습니다.

및 명령

은 크론 작업을

*/10 * * * * wget http://mywebsite.com/coding.php 

많은 감사를 설정합니다. 외부 명령을 실행하려면

+0

'foreach' 루프에서 반복을 확인하는 일부 echo는 응답을 확인하기 위해'$ do'를 출력합니다. –

+0

감사합니다 anythinks를 인쇄하지 않습니다. 그러나 해결책은 무엇입니까? – raman

+0

대신'echo'시도'error_log', 오류 로그를 확인하십시오. 첫 번째 반복에서 반복을 멈추는 무언가가 잘못되었다고 생각합니다. 먼저 문제를 찾아서 해결책을 생각해야합니다. –

답변

0

, u는

exec('cmd') 

예 CMD PHP를 우는 소리를 사용할 수있다 :

<?php  
echo exec('whoami'); 
?> 

출력 : 컴퓨터 이름 귀하의 경우에는

그것을

... 
... 
... 
$cmdform = "ffmpeg -i $video -vf scale=250:140 $sixty"; 
$do = exec($cmdform); 

이게 유용하길 바란다.

+0

나는 노력했지만 일하지 않았다. – raman

+0

오류가 발생 했습니까? 어떤 운영 체제를 통해 시도 하시겠습니까? –

+0

리눅스에서 파일에 오류가 없습니다. – raman