MLT框架简介与部分命令解析

    本文仅仅做为一篇入门文章,带领大家认识一下MLT这个框架(库)。

一、简介

    MLT的英文全称为MLT Multimedia Frameword,翻译过来为MLT多媒体框架。该框架国内用的人比较少,也几乎没有中文资料,本文的目的是带大家简单认识一下这个功能强大的库。

    MLT的官网为:https://www.mltframework.org/, 可以在上面下载最新的源码,也可以下载到使用MLT做底层实现的ShotCut工具。

    那么,MLT到底是个什么东西呢?我们先来看一下官方的介绍(原文翻译):

 “创作、管理和运行多声道音频和视频的一套组件。能够用于多种类型app的非线性视频编辑器引擎,且不局限于桌面领域。MLT是一个开源的多媒体框架,为广播电视频而生。它给广播、视频编辑器、媒体播放器、转码器、网络流化等很多应用提供了一个底层工具。系统的功能是通过提供各式各样的工具集、XML编辑组件和一组基于可扩展插件的API来实现。“

    官方的解释可能不是太通俗易懂,大概意思就是这个框架可以用来对视频/音频做剪辑、合并、增加一些滤镜特效等,其提供的可以在视频上覆盖一个html页面的功能非常实用,可以用此法实现很多特效。

    MLT底层功能是通过多个第三方库实现的,其中主要有ffmpeg、freiOr和ladspa。其中,MLT只封装了一部分ffmpeg滤镜。

    更多的介绍可以参考官方的文档:https://www.mltframework.org/docs/

二、命令行参数示例

    MLT的二进制可执行程序跟ffmpeg类似,可以用命令来完成几乎所有支持的操作,可以用其SDK开发自己的程序。

    下面简单介绍几个命令,以供参考。

    播放视频:

melt a.mp4

    对视频添加灰度滤镜:

 

 

melt a.mp4 -filter greyscale -consumer avformat:o.avi acodec=libmp3lame vcodec=libx264

    按时间拆分视频:

 

 

melt a.mp4 in="00:00:50:00" out="00:01:30:00" -consumer avformat:o.mp3 acodec=libmp3lame

    按帧号拆分视频:

 

 

melt a.mp4 in=100 out=500 -consumer avformat:o.mp3 acodec=libmp3lame

    合并视频,其中的图片合并后播放5秒:

 

 

melt a.mp4 in="00:00:01:00" out="00:00:55:00" b.jpg out="00:00:05:00" c.mp4 in="00:00:00:00" out="00:01:30:00" -consumer avformat:o.mp4 acodec=libmp3lame vcodec=libx264

    添加水印并控制其位置:

 

 

melt a.mp4 in=0 out=1000  -filter watermark:/home/logo.png composite.geometry=30%/50%:50%x100%:50

    添加字幕并控制其位置:

 

 

melt a.mp4 -attach dynamictext:hello#frame# geometry=10%/50%:50%x100%:30

    混音两个音频:

 

 

melt a.mp3 -track b.mp3 -attach transition:mix start=0.5

 

 

 

先简单介绍这么多吧,后续有时间的话再多写一些关于MLT的更多用法。
 

 

 

你可能感兴趣的:(流媒体)