如何获取ftp

时间:2016-09-29 05:15:05

标签: linux shell ftp synology

我使用由ftp复制的服务器(Synology NAS),来自CCTV系统录像机的视频片段。复制文件时,小脚本使用以下语句将其从DAV格式转换为AVI:

find ./ -type f -name "*.dav" -exec ffmpeg -y -i {} -vcodec copy -movflags +faststart {}.avi \;

问题是从CCTV录像机到Synology不断传输的剪辑很多。那就是许多片段同时从录音机传输到Synology。因此,上述声明将尝试转换传输尚未结束的剪辑。如何从转换中排除此类非完整剪辑?我不能使用“inotify”或“lsof”功能,因为Synology Linux中没有这样的功能(因为很多原因我无法在Synology上安装optware)。我认为有必要知道特定文件仍然可以写入并将其排除在外。不知道该怎么办?

1 个答案:

答案 0 :(得分:0)

最后我解决了我的问题。单个视频剪辑的大小不到10MB。因此,sigle文件的转换时间最短不超过1分钟。因为我添加了find命令,修改时间作为参数。它解决了我的问题。我遇到的所有问题都是因为Synology Linux的功能有限。请参阅新命令语法:

find ./ -type f -mmin +10 -name "*.dav" -exec ffmpeg -y -i {} -vcodec copy -movflags +faststart {}.avi \;

请注意,如果文件在过去10分钟内没有修改,这意味着传输过程已经结束,实际上我的应用程序(CCTV视频剪辑收集)没有必要检查文件是否打开。