当前位置:网站首页>【MLT】MLT多媒体框架生产消费架构解析(二)
【MLT】MLT多媒体框架生产消费架构解析(二)
2022-08-09 04:45:00 【一二三o-0-O】
MLT多媒体框架生产消费架构解析
前提
通过阅读【MLT】MLT多媒体框架生产消费架构解析(一)满足以下两点:
- 了解MLT的核心C++封装的层级关系
- 掌握使用MLT的Consumer(sdl)消费Producer(MP4)
通过本文可以获取什么?
本文将对【MLT】MLT多媒体框架生产消费架构解析(一)中提到的生产消费流程中的生产者加工环节如何添加视频滤镜做解析,如下图:
核心类解析
Service+Filter
【MLT】MLT多媒体框架生产消费架构解析(一)中只是简单演示了生产者(初始化了一个视频资源)被消费者(初始化为SDL)消费的简单过程。如上图所示,对生产者加工的过程引入了两个新的封装:Service(服务抽象基类)+ Filter(滤镜抽象服务类)。本节只对我们即将使用的方法做简单介绍,后续会完整对这两个封装作分析。
// 服务抽象基类
/** * @brief attach 注册滤镜服务的方法 * @param filter 要注册的滤镜服务 * @return 返回注册的错误码 */
int attach( Filter &filter );
/** * @brief detach 反注册滤镜服务的方法 * @param filter 要反注册的滤镜服务 * @return 返回反注册的错误码 */
int detach( Filter &filter );
为生产者添加滤镜
// 创建马赛克滤镜
Mlt::Filter *filter = new Mlt::Filter(profile, "frei0r.pixeliz0r");
// 使用从父类Service中继承的订阅能力添加滤镜
producer.attach(*filter);
Demon展示
为Producer(MP4)添加Filter(马赛克)效果
代码
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");
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链接
边栏推荐
- npm package.json
- 单元测试覆盖率怎么算?
- 2022 High Voltage Electrician Exam Questions and Answers
- Understanding ML Cross Validation Fast
- Construction and practice of full stack code test coverage and use case discovery system
- MySQL:已提交读和可重复读的实现原理 | MVCC(多版本并发控制)——笔记自用
- 阿里云天池大赛赛题(机器学习)——工业蒸汽量预测(完整代码)
- pr22.5最新版下载地址
- 【ITRA】2022年ITRA赛事注册流程 从0-1
- mysql内容不存在的报错
猜你喜欢
随机推荐
Introduction to JVM garbage collection mechanism
2022年低压电工练习题及模拟考试
B. Arrays Sum
P1163 银行贷款
基于ABP和Magicodes实现Excel导出操作
npm package.json
配置网络接口的“IP“命令
2022高处安装、维护、拆除考试练习题及模拟考试
【开发者必看】【push kit】推送服务服务典型问题合集2
软件质效领航者 | 优秀案例•国金证券DevOps建设项目
钉钉与RStudio快捷方式冲突--钉钉快捷键设置
2022-08-08 mysql慢SQL-Q18-10GB数据量-mysql/innodb测试
pr22.5最新版下载地址
杰理之SD卡切回蓝牙没有作用【篇】
Golang 常见知识点整理
simple math formula calculation
MySql.Data.MySqlClient.DBNull
杰理之一拖二 另一台手机超距 通话会无声【篇】
2022年安全员-A证特种作业证考试题库及在线模拟考试
抖音直播新号怎么起号?抖音直播间不进人怎么办?