2011-05-06 51 views
0

也许最好从描述场景开始。只完成,完全上传的文件的自动ffmpeg转换

我们有一个ffmpeg的Debian服务器,用于将各种视频文件转换为FLV。 这些文件由许多不同的人通过FTP提供,并保存在“上传”文件夹中。

我需要编写一个PHP脚本,通过上传文件夹中的所有文件,选择完整的文件(即当前没有上传或没有任何上传错误),然后使用ffmpeg将它们转换为FLV。

我可以做转换和其他一切,但是如何确定文件是否完整并完全上传?

非常感谢!

+0

用户是否使用任何脚本将文件上传到ftp位置或手动完成? – Kit 2011-05-06 16:33:05

+0

恐怕他们没有脚本。他们使用各种ftp客户端 – Shmoyko 2011-05-12 06:56:54

回答

0

Afaik你不能只知道一个文件是否仍在上传。您可以每分钟运行一次cronjob获取文件大小并将它们存储在数据库或文件中。然后,如果您第二次运行cronjob,并且文件大小相同:则转换它们,如果不是,请等待另一分钟,然后重试。

我不相信有一个文件存储与一个文件,包含它应该是上传完成后的大小。

+0

我很害怕这种情况。感谢您的输入。 – Shmoyko 2011-05-12 06:57:15

0

还有另一种方法可以解决这个问题,我们多年来一直这样做。

大多数ftp服务器(proftpd都会)会输出一个日志,告诉你文件上传何时成功完成。您可以将此日志记录设置为unix命名管道/ fifo,然后让守护进程脚本读取此文件以确定要处理的文件。这很好,只有在完成并成功上传后才能处理文件。