2011-12-21 6 views
3

ffmpeg를 사용하여 비디오 트랜스 코더를 만들었습니다. FTP를 통해 사용자가 업로드 한 RAW 비디오 - 약 20GB 크기.파일 업로드가 완료 될 때 알림을받는 가장 좋은 방법

현재 PHP 스크립트는 다음 전략으로 5 초마다 로컬 경로를 모니터링합니다.

  1. 로컬 파일 시스템을 찾습니다.
  2. '새 파일'이 나타나면 수정 된 시간과 크기로 데이터베이스에 추가하십시오.
  3. 5 초 후 다시 수정 된 시간과 크기를 확인하십시오.
    1. 변경되지 않음 : 상태를 [완료 (DONE)]로 설정하고 비디오를 './output'디렉토리로 인코딩하십시오. ('출력'은 명시 적으로 모니터링에서 제외됩니다.)
    2. 변경됨 : 5 초 동안 더 기다립니다.

그것은 매우 잘 작동하지만, '새 파일'을 찾기 위해 CPU 전력을 굽습니다. 파일 업로드가 완료되면 '정확한 타이밍'을 얻을 수있는 방법이 있습니까?

+0

@Iqez 무엇 당신의 OS가 그리고 그것은 PHP에서 수행 할 필요가 않습니다 PHP는 함께 inotify를 지원? 또한 "비디오를 './output'디렉토리로 인코딩하면 출력 디렉토리로 복사한다는 의미입니까? – Abbas

+1

가능하면 inotify를 bash 스크립트를 통해 쉽게 설치할 수 있습니다. 그렇지 않으면 bash 스크립트가 더 효율적일 수 있습니다. –

+0

@Abbas 리눅스에서 돌아가고 PHP 나 파이썬으로하고 싶습니다. '인코딩'은 동영상이 ffmpeg로 인코딩되고 그 결과가 './output'디렉토리에 저장됨을 의미합니다. 다시 인코딩 할 수 없습니다. – lqez

답변

1

당신이 떠들썩한 파티 스크립트를 통해 다음 inotify를 그것의 아주 쉽게 설치 할 수 있습니다. 그렇지 않으면 bash 스크립트가 더 효율적일 수 있습니다.

갱신 : php.net/manual/en/book.inotify.php

1

새로운 파일을 검사하는 perl 데몬을 만드십시오. 자원 집약도는 적을 것이라고 생각합니다. 또한 , 다른 많은 다른 같은 유닉스, 그리고 난 더 나은 전반적인 생각 : http://en.wikipedia.org/wiki/File_Alteration_Monitor

+0

도움을 주셔서 감사합니다! – lqez

관련 문제