Автоматическое преобразование ffmpeg только завершенных, полностью загруженных файлов - PullRequest
0 голосов
/ 06 мая 2011

Может быть, лучше начать с описания сценария.

У нас есть сервер Debian с ffmpeg, который мы используем для преобразования различных видеофайлов в FLV.Файлы поставляются несколькими разными людьми по FTP и хранятся в папке «uploads».

Мне нужно написать скрипт PHP, который бы просматривал все файлы в папке uploads, выберите текоторые завершены (т.е. не загружаются в настоящее время или не содержат ошибок загрузки), а затем конвертируют их в FLV с помощью ffmpeg.

Я могу выполнить преобразование и все остальное, но как определить, завершен ли файл иполностью загружен?

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 08 февраля 2012

Есть еще один способ сделать это, что мы делали годами.

Большинство ftp-серверов (proftpd) выводит журнал, который сообщит вам, когда загрузка файла завершится успешно. Вы можете настроить ведение этого журнала на unix с именем pipe / fifo, а затем сделать так, чтобы демонизированный скрипт прочитал это, чтобы определить, какие файлы обрабатывать. Это прекрасно работает и обрабатывает файлы только после их полной и успешной загрузки.

0 голосов
/ 06 мая 2011

Afaik, вы не можете просто выяснить, загружается ли файл. Вы можете запускать cronjob каждую минуту, чтобы получить размеры файлов и сохранить их в базе данных или файле. Затем, если вы запустите cronjob во второй раз, а размер файла будет одинаковым: преобразуйте их, если нет .. подождите еще одну минуту, а затем повторите попытку.

Я не верю, что размер файла сохраняется вместе с файлом, размер которого должен быть после завершения загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...