XWorker封装了ffmpeg调用接口,可以通过模型使用ffmpeg。
1.封装ffmepg的调用模型
ffmpeg的调用模型的路径是xworker.tools.ffmpeg.FFmpeg,模型可以在XWorker中查看,这里只是简单说明。
如上图:
- ffmpegPath是ffmpeg的安装路径,可以在这里设置,也可以从配置模型中获取。
- ffmpeg动作的原理是获取commands,commands参数是ffmpeg调用的参数,最后通过exec起一个进程。
- 点击run方法节点,可以通过菜单打开源码,本文就不详细说明了。
2.使用ffmpeg模型
2.1.通过向导来生成参数
ffmpeg有很多参数,如何使用它们呢?可以通过向导来帮助使用ffmpeg。
选择一个向导。
通过向导可以生成执行的commands参数。
生成了参数之后,就可以执行ffmepg动作模型了。
2.2.批处理示例
把ffmpeg封装为动作模型后,就可以在动作模型中来调用它了。
<?xml version="1.0" encoding="utf-8"?>
<FileIterator descriptors="xworker.io.FileUtilActions/@FileIterator" dir="./"
includePattern=".*mp4">
<ChildAction>
<FFmpeg name="thumbnail" _xmeta_id_="FFmpeg" descriptors="xworker.tools.ffmpeg.FFmpeg">
<commands><![CDATA[template:-i
${file.getPath()}
-ss
30
-y
-vframes
1
-an
.\${file_index}.png]]></commands>
</FFmpeg>
</ChildAction>
</FileIterator>
上面使用FileIterator模型来遍历当前目录和子目录下的mp4文件,然后调用FFmpeg模型生成mp4的第30秒的图像保存为png。
3.经验和知识
通过本文希望大家可以对动态模型有更多的了解。
- 通过模型可以封装各种API和功能模块,模型封装后就可以和其它模型一起使用了。
- 动态模型可以保存经验和知识,比如每一个人都可以为ffmpeg模型添加向导,通过向导可以更方便的使用模型。除了向导,还可以添加文档等等。
通过模型保存经验和知识是XWorker和动态模型的目的,希望你能够了解并加入我们。