MLT多媒体框架生产消费架构解析
- 前提
- 通过本文可以获取什么?
- 核心类解析
-
- Demon展示
- 为Producer(MP4)添加Filter(马赛克)效果
- 代码
- 附属代码下载链接
- 参考资料
前提
通过阅读【MLT】MLT多媒体框架生产消费架构解析(一)满足以下两点:
- 了解MLT的核心C++封装的层级关系
- 掌握使用MLT的Consumer(sdl)消费Producer(MP4)
通过本文可以获取什么?
本文将对【MLT】MLT多媒体框架生产消费架构解析(一)中提到的生产消费流程中的生产者加工环节如何添加视频滤镜做解析,如下图:
核心类解析
Service+Filter
【MLT】MLT多媒体框架生产消费架构解析(一)中只是简单演示了生产者(初始化了一个视频资源)被消费者(初始化为SDL)消费的简单过程。如上图所示,对生产者加工的过程引入了两个新的封装:Service(服务抽象基类)+ Filter(滤镜抽象服务类)。本节只对我们即将使用的方法做简单介绍,后续会完整对这两个封装作分析。
int attach( Filter &filter );
int detach( Filter &filter );
为生产者添加滤镜
Mlt::Filter *filter = new Mlt::Filter(profile, "frei0r.pixeliz0r");
producer.attach(*filter);
Demon展示
为Producer(MP4)添加Filter(马赛克)效果
代码
Profile profile;
Producer producer(profile, filename);
Consumer consumer(profile);
Mlt::Filter *filter = new Mlt::Filter(profile, "frei0r.pixeliz0r");
producer.attach(*filter);
consumer.set("rescale", "none");
consumer.set("terminate_on_pause", 1);
consumer.connect(producer);
consumer.run();
consumer.stop();
附属代码下载链接
源代码下载链接
参考资料
【1】MLT github链接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)