批处理的学习--ffmpeg命令行处理的进一步优化

ffmpeg可以通过命令行的方式进行视频格式转换,是一个不错的软件,在php下可以使用exec函数,但是由于该函数水土不服,在windows下极容易出现未知错误,比如无法执行,权限问题等等,所以采用批处理来在windows下实现还是比较明智的.

需求:上传视频后,用php写bat文件到子目录,一个视频转化任务生成一个bat,如果转换成功(存在目标文件),则删除自身;在bat子目录之上(父目录)写一个bat,这个bat将被设置为windows计划任务来调用,并且它将自动遍历子目录下的bat执行.

1.判断文件是否存在,存在则删除自身子bat文件,避免执行过多文件导致冗余:

if NOT exist E:/testvideo/1.jpg (
E:/ffmpeg/ffmpeg.exe -i E:/testvideo/1.flv -y -ss 00:00:09 -t 00:00:10 -s 320*240 -f mjpeg -vframes 10 E:/testvideo/1.jpg
)
ELSE(
del %0
)

del%0就是删除子bat自身.

2.父bat遍历子目录:

for /r E:/bat/child/ %%i in (*.bat) do call %%i

其中E:/bat/child/既是子bat所在目录.遍历并且执行,就可以了.

相关推荐