89550492 2011-05-08
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所在目录.遍历并且执行,就可以了.