#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;
}
?