MLT剪辑sample

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

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值