#include <framework/mlt.h>
int main(int argc, char **argv) {
// 初始化MLT
mlt_factory factory = mlt_factory_init(NULL);
// 加载素材(这里假设我们有一个名为"video.mp4"的视频文件)
mlt_profile profile = mlt_profile_init(NULL, NULL);
mlt_producer producer = mlt_factory_producer(factory, profile, "avformat", "video.mp4");
// 创建一个Filter(这里以亮度调整为例)
mlt_filter filter = mlt_factory_filter(factory, "brightness", NULL);
mlt_filter_set_double(filter, "brightness", 0.2); // 设置亮度为+20%
mlt_producer_attach_filter(producer, filter, 0); // 将Filter附加到Producer上
// 创建一个Consumer(这里假设我们输出到文件)
mlt_consumer consumer = mlt_factory_consumer(factory, profile, "avformat", "output.mp4");
mlt_consumer_connect(consumer, MLT_CONNECT_CONSUMER | MLT_CONNECT_PRODUCER, producer);
// 设置播放位置(如果需要的话)
// mlt_producer_seek(producer, 10.0); // 跳转到第10秒
// 运行并渲染剪辑
mlt_events_fire(consumer, "consumer-start", NULL, NULL);
while (mlt_consumer_is_stopped(consumer) == 0) {
mlt_consumer_put_frame(consumer, mlt_producer_get_frame(producer, NULL));
}
// 清理并关闭
mlt_consumer_close(consumer);
mlt_producer_close(producer);
mlt_filter_close(filter);
mlt_profile_close(profile);
mlt_factory_close(factory);
return 0;
}