MLT多媒体框架生产消费架构解析
- 前提
- 通过本文可以获取什么?
- 核心类解析
- Properties
- 为生产者添加滤镜
- Demon展示
- 修改Filter(马赛克)效果
- 代码
- 附属代码下载链接
- 参考资料
前提
- 通过阅读【MLT】MLT多媒体框架生产消费架构解析(一)满足以下两点:
- 了解MLT的核心C++封装的层级关系
- 掌握使用MLT的Consumer(sdl)消费Producer(MP4)
- 通过阅读【MLT】MLT多媒体框架生产消费架构解析(二)满足以下两点:
- 了解Service(服务抽象基类)与 Filter(滤镜抽象服务类)
- 掌握为Producer(生产者)添加Filter(滤镜)
通过本文可以获取什么?
本文将在【MLT】MLT多媒体框架生产消费架构解析(二)的基础上对给生产者attach的滤镜做宽高属性的变换,如下图:
核心类解析
Properties
代码
Profile profile; // defaults to dv_pal Producer producer(profile, filename); Consumer consumer(profile); // defaults to sdl Mlt::Filter *filter = new Mlt::Filter(profile, "frei0r.pixeliz0r"); filter->set(qUtf8Printable("0"), 0.300); filter->set(qUtf8Printable("1"), 0.300); producer.attach(*filter); // Prevent scaling to the profile size. // Let the sdl consumer do all scaling. consumer.set("rescale", "none"); // Automatically exit at end of file. consumer.set("terminate_on_pause", 1); consumer.connect(producer); consumer.run(); consumer.stop();
附属代码下载链接
源代码下载链接
参考资料
【1】MLT github链接